arduino dsp platform - codec shield

Started by g_u_e_s_t, November 07, 2011, 10:38:07 AM

Previous topic - Next topic

g_u_e_s_t

i finished an arduino shield a while back
that i thought might be of interest to folks here
its a 44k/16b stereo codec shield for arduino and maple

http://www.openmusiclabs.com/projects/codec-shield/

we have libraries for both arduino and maple
and you can do a fair bit with the maple platform
some quick examples here

http://www.youtube.com/watch?v=FI1iq03zbVM

it can take an instrument level straight in
and with a bit of rework the shield can fit in a hammond case
making a pretty easy reprogrammable effects pedal

alparent


DrBoogey


No Input buffer  :(
You need to buffer passiv pickup first, otherwise you loose tone.
it would have taken only one opamp stage  :(
Otherwise cool idea

g_u_e_s_t

the input impedance is around 12k
so it is a bit low for a hi fi instrument pickup
there also arent any feedback or gain knobs
its meant more as an inexpensive starter kit

we did a higher end version last year called the MICrODEC
with 6s of sample time and 3 pole anti aliasing filters
http://www.openmusiclabs.com/projects/microdec/
it works with arduino now as well

DrBoogey


Your projects looks cool and shows whats possible with 8-bit machines!
Yes, you are right, keep it simple, but one TL072 does not cost the world.

edvard

VERY interesting....
My son and I are getting into the Arduino scene, and DSP is something I've always wondered about.

As far as buffering, even a JFET source-follower stage would do handily, takes up less space than a op-amp, would only require two resistors (one for bias, one for source load), and a capacitor on input and output.

Thanks for the link, I'm going to look into this further.
All children left unattended will be given a mocha and a puppy

nexekho

#6
Quote from: edvard on November 09, 2011, 12:53:00 PM
VERY interesting....
My son and I are getting into the Arduino scene, and DSP is something I've always wondered about.

As far as buffering, even a JFET source-follower stage would do handily, takes up less space than a op-amp, would only require two resistors (one for bias, one for source load), and a capacitor on input and output.

Thanks for the link, I'm going to look into this further.

Check this out:
http://www.instructables.com/id/Lo-fi-Arduino-Guitar-Pedal/
It has stereo in/out but I'd not bother (go mono) because it uses the slow inbuilt ADC and mono doubles your sample rate.  I've got a reasonable chorus/flanger on there.  Sound quality is not supreme.  You also need to add a low pass filter on the end to filter out the PWM frequency.

I was looking into adding a pre/post amp maybe also with a buffered bypass with an output on the Arduino so it can control the volume of the bypass so you can get tremolo/noise gate/swell without the quality loss inherent with the hardware.

Currently loaded down with work but in my spare time I'm slowly writing a multi-effects system with generalised LFO/etc systems and support for chaining effects because you can do quite a bit between ADC updates.

Code: http://pastebin.com/thP70QFj
Sample: http://soundcloud.com/nexekho/much-much-smoother

This is a smaller version of what he built with no LEDs, two pots and a Nano instead of the larger board he has.
I made the transistor angry.

g_u_e_s_t

the aliasing always bugged me
when i went directly into my arduino
which is why i decided to use a codec

the fastest the arduino can sample is 9.6k
and thats at 10b

nexekho

Quote from: g_u_e_s_t on November 10, 2011, 06:10:31 PM
the aliasing always bugged me
when i went directly into my arduino
which is why i decided to use a codec

the fastest the arduino can sample is 9.6k
and thats at 10b

I'm fairly certain it can go faster than that, there's lots of registers you can adjust to get far higher speed at the cost of a little noise/distortion when pushed to extremes.
I made the transistor angry.

g_u_e_s_t

thats true
it can go as fast as 615khz
but the usable bit depth drops pretty fast

the people over at leaflabs
have done some good work with the adc on their maple platform
which also comes in a mini version
i think they claimed 12b resolution at 1mhz
although im a bit skeptical of that
http://leaflabs.com/2010/07/audio-and-guitar-effects-on-maple/

g_u_e_s_t

hey nexekho
sorry for the delay on this
but it kept bugging me that i didnt know exactly what the tradeoff was
for overclocking the adc on the atmega
i just knew that everyone said it got worse the faster you went

so i sat down and figured it out
http://www.openmusiclabs.com/learning/digital/atmega-adc/

it turns out you were right
you can go pretty fast without much data loss

nexekho

That's pretty cool, thanks for doing the research.  I didn't, I just made a button cycle the prescalers and print the prescaler in use over serial and went by ear. 
I made the transistor angry.