#250 pedalShieldUno/AudioDSP
Test and develop the AudioDSP library for programming the pedalSHIELD Uno.
Notes
When I built the AudioDSP pedalSHIELD UNO clone to investigate its operation, I started collecting my code in a class library AudioDspDriver.
I’m liking the encapsulation and reuse it provides over just hacking sketches based on the pedalSHIELD examples, but I wouldn’t say it’s ready to be raised in status as a published library yet.
So this project is an exercise in putting the (private) AudioDspDriver library though its paces by first testing how it can be used to implement the equivalent of all the pedalSHIELD UNO examples.
The scope traces below are all captured with a 600mV 1kHz input signal on CH1. CH2 is the output.
bit_crusher
Sketch: bit_crusher.ino
This effect boosts the signal into overdrive (level determined by the pushbuttons). The implementation here is pretty much identical to the pedalSHIELD example.
pedalSHIELD UNO example:
AudioDSP version:
booster
Sketch: booster.ino
A simple volume boost (level determined by the pushbuttons). The implementation here is pretty much identical to the pedalSHIELD example.
pedalSHIELD UNO example:
AudioDSP version:
clean
Sketch: clean.ino
A simple identity transformation. Input == output. The implementation here is pretty much identical to the pedalSHIELD example.
pedalSHIELD UNO example:
AudioDSP version:
daft_punk_octaver
Sketch: daft_punk_octaver.ino
Effectively downsamples the input (level determined by the pushbuttons). The implementation here is pretty much identical to the pedalSHIELD example.
pedalSHIELD UNO example:
AudioDSP version:
delay
Sketch: delay.ino
Mixes a delayed signal with the input in equal proportions (delay depth determined by the pushbuttons). The implementation is a little different to the pedalSHIELD example (which appears a little broken).
Because of memory limitations in the Uno, the delay depth is pretty short, so the effect is more like a light reverb.
distortion
Sketch: distortion.ino
Performs an asymmetrical clipping (top-side) to a level determined by the pushbuttons. The implementation here is pretty much identical to the pedalSHIELD example.
pedalSHIELD UNO example:
AudioDSP version:
fuzz
Sketch: fuzz.ino
Performs a symmetrical clipping and boost to a level determined by the pushbuttons - signals above the threshold are thrown to the upper/lower rail. The implementation here is pretty much identical to the pedalSHIELD example.
pedalSHIELD UNO example:
AudioDSP version:
metronome
Sketch: metronome.ino
Generates a metronome tone, at a frequency determined by the pushbuttons. The implementation here is pretty much identical to the pedalSHIELD example.
pedalSHIELD UNO example:
monitor
Sketch: monitor.ino
Performs a clean transform of the guitar signal, and logs the settings to the serial port. The implementation here varies from the pedalSHIELD example, in the logging to serial is not done inside the interrupt routine. this ensures that the guitar sounds gets through to the interrupt, but at the expense of not logging every sample.
AudioDSP version:
signal_generator
Sketch: signal_generator.ino
Generates a tone described in a provided dataset. The implementation here is pretty much identical to the pedalSHIELD example.
tremelo
Sketch: tremelo.ino
Modulates the signal volume at a speed governed by the pushbutton setting. The implementation here is similar to the pedalSHIELD example.
Credits and References
- pedalShieldUno - project
- AudioDSP - project
- ..as mentioned on my blog