Giter Site home page Giter Site logo

aidadsp's Introduction

Aida DSP

Aida DSP is an audio shield for Arduino

Salient specs

  • Compact design size (Arduino shield form factor)
  • Low noise design for audio applications
  • 2 mono inputs 4 mono outputs
  • 24 bits, 48/96/192kHz
  • Dedicated crimpable connectors to host encoder, buttons and pots
  • Expansion connector with available signals from DSP
  • Available open source examples for Arduino boards
  • Available open source low level libraries for Arduino Uno/Mega/Due/Zero

How it works

DSP firmware is developed in Sigma Studio, a intuitive graphical design tool. From Sigma Studio you can generate an .xml file which contains DSP firmware and then with our Java tool you can generate a C header file to be used in the Arduino IDE.

Now you're ready to code a sketch that communicates with the DSP in real time to control its algorithm using Aida DSP official Arduino API library.

Basically you can manage your UI (user interface: buttons, faders, etc.) with Arduino and then let the DSP do the whole hard work of processing audio with superb quality. For example you can use the DSP to generate a sine tone and change its frequency and amplitude with a pot wired to Arduino's analog input. Check out our examples on Github!

Typical applications

  • 1st and 2nd order equalizers with adjustable f, Q, gain
  • Processors with peak or rms detection for monochannel and multichannel dynamics
  • Mixers and splitters
  • Tone and noise generators
  • Fixed and variable gain
  • Loudness
  • Delay
  • Stereo enhancement
  • Dynamic bass boost
  • FIR & IIR filters
  • Level detectors
  • GPIO control and conditioning
  • Special function to update DSP parameters in real-time without clicks and pops
  • More...

Audio enthusiasts and audio makers, this board is for you!

More info

paypal

aidadsp's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

aidadsp's Issues

WireMod libraries are no longer compatible with newer arduino bsps (AVR)

The current version of the WireMod library, which add the blockWrite feature to the
standard arduino Wire/Twi library is no longer compatible.

The latest version of Arduino IDE tested by me which works with my WireMod libraries is 1.6.0.
Since this version Arduino changes the low level libraries adding methods so I have 3-4 choices

  1. re-write and re-test WireMod with new bsp (until a new one is realeased, and I'm back at the start)
  2. remove dependencies from low-level stuff as suggested by user MCUdude. Doing so will increase program load time into DSP during startup, since
    instead of a single block write I will need to iterate through 4-5 bytes at a time.
  3. submit my patch into official Arduino bsp and wait until is reviewed/accepted
  4. create my own bsp as a derivative of Arduino (but I'm again in a similar situation with 1) when new version of the Wire library is released)

NOTE: need to measure the increase in time during dsp program load with solution 2) and compare it with actual implementation

Feature request: switching to C++ style library

Altought it integrates perfectly with Arduino, AidaDSP isn't written with C++ in mind, but it's rather C stuff. Move the library to a C++ class would allow users to use multiple instances of a class, communicating with different dsps with different sampling rates and settings with minimal code impact.

AidaDSP

I really appreciate your work
i have one question :
-what is the purpose from adding writeBlock function since i am facing problems in porting your work to esp32

Write block with original Wire library

Hi!
I'm working on a new SigmaDSP library that's based on the incredible work you have put into this library. The library I'm working on will be open source and published when ready.

I want the library to support the Arduino platform, and architecture independent. Personally I'll use my new library with ESP8266, but I have an issue I'd like to discuss.

You have provided a separate i2c library (WireMod), but I want to use the original Wire library that everyone uses. Is it possible to re-create the writeblock functionality using the stock wire library. I'm sure lots of users would prefer not to install another library for i2c communication.

Thanks!

Compressor algorithm

Hi, thanks for a great library. I have a question regarding the "CompressorRMS" algorithm, as far as I understand this for the "Post Gain" block in Sigma Studio, while I'm trying to use the "Standard RMS" block
image

I can't find much information about how to generate the parameters for this block, so I was wondering whether you had any pointers on that or what changes I would have to make to the "CompressorRMS" function to generate those.

Feature request: DSP type selection

Now to switch between DSP types you need to include different version of the library, so for adau170x AidaDSP.h and for adau144x AidaDSP2.h. Should be possible to move back to one library only and supporting both DSP with one library since many methods are in common.

Wrong SR definition

Referring to page 82 of the datasheet, it is necessary to wait at least 1 sampling period so SR, which in reality should be SP, should result

#define SP (uint32_t) (1000000.0 / FS)

#define SR (uint32_t) 1 / FS
it is always 0 due to the casting and in any case they are seconds and not microseconds.

Ciao Max....

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.