Stomp Shield for Arduino
About the Stomp Shield
This shield is the the simplest setup for doing decent quality audio effects with an Arduino. The system is based our MiniArDSP library, which is in turn based on both our PWM tutorial and our ATmega ADC tutorial. The basic setup is a 10 bit value read in from ADC2, and played out via 16 bit, Dual PWM on pins 9 and 10. there is a rotary encoder with pushbutton, which can be used to modify parameters. The reason for buttons and not knobs, is that the ADC is already completely consumed with the analog audio signal coming in. This is a more focused version of our basic Arduino PWM setup, targetted at effects pedals.
To give more flexibility in sound creation, and to minimize the amount of processing done on the Arduino, there is analog support circuitry on the Stomp Shield to accomplish common tasks. These include 3-pole anti-aliasing filters for the inputs and outputs (10kHz cutoff), a gain knob with variable gain from 1 to 50, a mix knob from full wet to full dry, a feedback knob, and an output volume knob. It is also designed to fit inside of a Hammond 1590BB case, for complete stompability.
To give an idea of what is possible with this minimal setup, here is a sound sample. The signal was taken directly off a guitar, into the Stomp Shield, and recorded into a computer. The first 2 sound bits demonstrate the noise level and frequency response of a direct pass through of the signal. The last sound chunk is a flanger effect.
The following is the Arduino library for the Stomp Shield. It has some fast multiply functions, and a sinewave table which is helpful for certain effects. It also contains a lot of programming examples, including stomp_delay_fast.pde, which shows how to eek extra performance out of your Arduino. Download the zipped file, and uncompress it. The entire folder needs to be placed in your libraries folder in your user directory. If you are not sure where this is, check out our description in the CodecShield Wiki.