The StompByte uses the PCM.h library running on an ATMega328p to output a duty-cycle-modulated square wave on pin 11 at 8kHz, which is connected to a 1/4" jack. Clock source is a crystal resonator, and LM7805 is used to provide a stable 5V power supply. Stomping the button triggers a sound. Holding the button for two seconds cycles through different sounds. There are 10 samples and 3 patterns:
- muted kick
- rock kick
- tr808 kick
- woodblock
- cross stick
- tambourine
- handclap
- mario bump
- mario fireball
- mario jump
- pattern: rock kick – woodblock – tambourine – woodblock
- pattern: tr808 kick – tambourine – handclap – tambourine
- pattern: mario bump – mario fireball – mario jump – mario fireball
Three additional options are actually 4-step patterns. Steps 1 and 3 are triggered when the button is pressed, and 2 and 4 when the button is released.
Sounds are sampled to 8-bit PCM files, then converted to lists of 8-bit values and stored in program memory using the PROGMEM macro, using up most of the 32kb of the 328. A detailed explanation of the method can be found at MIT Media Lab's High-Low Tech blog - many thanks!
Code was written in the Arduino IDE, then the .hex file from compilation was flashed to the ATMega328p using the SPI interface on a Raspberry Pi, with the help of avrdude's linuxspi programmer option.
Science!