Main Content

This Arduino-powered vocal effects box pitch shifts and distorts incoming audio signals to produce a wide variety of vocal effects. This project is my first experiment with real-time digital signal processing using Arduino. It samples an incoming microphone signal at a rate of about 40kHz, manipulates the audio digitally, and then outputs 8 bit audio at 40kHz. To minimize the amount of computation required by the Arduino, I used a technique called granular synthesis to manipulate the incoming audio signal. Essentially, as audio comes into the Arduino it gets cut up and stored as small (millisecond or microsecond sized) samples called “grains.” These grains are then individually manipulated and played back; they may be lengthened or shortened, stretched or compressed, played back in reverse, copied several times, or mixed with other grains. You can hear a (somewhat creepy) audio sample from the effects box below:

Granular synthesis creates a unique type of distortion caused by discontinuities between individual grains in the outgoing signal. Sometimes this distortion creates an effect I can only describe as a “ripping” sound, other times it introduces new frequencies into the audio that were not present before. Here is an example by Aphex Twin, the granular synthesis is especially prominent in the bridge at around 3min in. Another example of granular synthesis, this time applied to vocals for pitch shifting and textural effects, is from Paul Lansky. My favorite thing to do with this effects box is to use subtle pitch shifting to achieve an androgynous vocal sound, I got the idea for the project after listening to copious amounts of Fever Ray this past winter, you can hear how she pitch shifts her voice to sound somewhat masculine at times.

PARTS LIST

(1x) Arduino Uno REV 3
(7x) 10K Ohm 1/4-Watt Carbon Film Resistor (2 packages)
(9x) 20K Ohm 1/4-Watt Carbon Film Resistor (2 packages)
(1x) 1K Ohm 1/4-Watt Carbon Film Resistor
(1x) 50K-Ohm Linear-Taper Potentiometer
(1x) 10KOhm Audio Control Potentiometer with SPST Switch Radioshack #271-215 (this will be used to control volume and turn the device on/off)
(5x) 0.25” Knurled Knob
(2x) 9V Alkaline Battery
(2x) Heavy-Duty 9V Snap Connectors
(1x) PC Board with Copper
(1x) SPST PC-Mountable Submini Toggle Switch
(2x) Male Header Pins
(3x) 8 pin socket
(1x) TL082 Wide Dual JFET Input Op Amp
(3x) 100K Ohm 1/4-Watt Carbon Film Resistor (1 package)
(1x) 10uF electrolytic capacitor
(1x) 47nF capacitor
(3x) 0.1uf capacitor
(2x) 1M-Ohm Linear Taper Potentiometer
(1x) 1MOhm logarithmic potentiometer
(1x) 2kOhm 1/4-Watt Carbon Film Resistor
(1x) male header pins
(1x) 10K-Ohm Linear-Taper Potentiometer
(1x) DPDT Flatted Metal Lever Toggle Switch
(2x) 1/4” stereo jack Radioshack 274-141 or
(2x) 5mm High-Brightness White LED (1 package)
(2x) 100 ohm 1/4W 5% Carbon Film Resistor
(2x) TS922IN Dual Op Amp

Additional Materials:
22 Gauge Wire
Solder
sand paper
plywood
wood glue
hot glue
screws

Download Arduino IDE

Link to article