New Product: Audio Hacker shield

nootropic design is very happy to announce the Audio Hacker shield! The Audio Hacker allows you to perform realtime digital signal processing: record audio samples into memory and play them back. Mix samples, manipulate audio, build audio effects, or synthesize entirely new sounds.

It has 256K of serial SRAM, a 12-bit ADC, and 12-bit DAC. All the product details are at Audio Hacker: Arduino shield for realtime audio processing

The Audio Hacker library makes it easy to build your own projects and comes with great examples: Audio Hacker Projects


The optional DJ Shield gives you 5 buttons and 3 pots to use for your audio projects:

interesting!
Could it be used as a 12 bit oscilloscope (with sample memory)?
Is it easy to get the data from the shield to the Arduino and back?
-- edit--
it would be cool if the gain could be controlled from Arduino (I2C digital pot meter?)

  • bookmarked

interesting!
Could it be used as a 12 bit oscilloscope (with sample memory)?

Interesting idea, yes. The sample rate would be limited to around 30 kHz I think.

Is it easy to get the data from the shield to the Arduino and back?

Yeah, just normal serial communication. The library API makes it easy to read from the SRAM chips into a buffer.

it would be cool if the gain could be controlled from Arduino (I2C digital pot meter?)

The incoming data can also be modified to apply a gain programatically. Your code has complete control over the data. The main constraint is the time required to do a floating point operation (over 300 clock cycles on an int), but it can be done if the sample rate is low enough.

The sample rate would be limited to around 30 kHz I think.

not too bad

The main constraint is the time required to do a floating point operation (over 300 clock cycles on an int), but it can be done if the sample rate is low enough.

if the float is a constant there might be some tricks to speed it up. E.g. multiply by PI

uint32_t mulPI(uint32_t in)
{
  // -1,0,3,6,11,12,13,14,15,16,18,19,21,23
  // 11,12,13,14,15,16, == +10 -16
  uint32_t q = (in<<1) + in + (in>>3) + (in>>6) + ((in>>2) - (in>>8))>>8;
  return q;
}

see also - divu5() and divu3(). Fast replacements for unsigned division by 3, 5, 6, 10, 15 - Libraries - Arduino Forum - and - divmod10() : a fast replacement for /10 and %10 (unsigned) - Libraries - Arduino Forum - if you are interested in optimizing

Hi, I think Audio Hacker is a great project and I appreciate you providing your designs on the website.

I have a question: in an audio project I'm building I'm aiming to store up to 1 minute of decent quality sound (12bit 22kHz is decent). Do you have experience with larger memory ICs? Are there any which could work in place of the SRAM chips on Audio Hacker?

I've been looking into AT45DB series. Do you have any experience with those?

@czak,
Thx for your compliments. I'm not familiar with the AT45DB flash chips. I wonder how fast they'd be, as speed is critical for decent sampling rates.

cool, excellent, that stackable design!