I haven't built any effects pedals for a long time, and wanted to make something a bit more unusual than the regular distortion / delay / etc. pedals. There aren't many bitcrusher pedal designs around, and the few that exist seem to be based around sample-and-hold circuits clocked at audio rates, which is more of a sample rate reducer than a bitcrusher. This is a true digital bitcrusher, and is one of the only occasions I can think of where 8-bit sampling is a selling point rather than a drawback!
I designed this around what I wanted from a bitcrusher pedal – adjustable sample rate / resolution, adjustable wet / dry mix, a low-pass filter for the effected signal and true bypass. I also wanted some kind of data readout on the front for visual appeal.
The pedal uses true bypass switching, provided by an onboard relay, eliminating the need for the typical clunky 3PDT stomp switch often used in pedals (as well as all of the tedious off-board wiring this involves). Incoming audio goes through a preamp, which i) gets it to the right level, and ii) biases it to the right range for the microcontroller's ADC. There is also some light filtering to roll off a bit of the high end, reducing distortion caused by sampling frequencies above the Nyquist rate.
The preamp is designed to work best with line-level signals, although I found it to work fine with electric guitars. If your input signal is a bit weak, try running a clean boost or overdrive pedal before the Digitizer.
As with most of my projects, it is based around an Atmel Atmega328P microcontroller, with code built on the Arduino framework. This does all of the signal processing; which basically consists of sampling an analogue input, sending it straight back out again to a DAC and waiting a short amount of time to provide the sample rate reduction.
The output from the DAC has adjustable filtering, provided by a simple RC network, as well as a wet/dry mixer for a wider variety of possible sounds.
The microcontroller program has several functions:
- Sample the audio input – as fast as possible
- Output this data to the DAC, with an adjustable pause to drop the sample rate
- Mask off bits in the sample reading to drop the resolution, according to the switch
- Also output the sample reading to the LEDs, updating at a slower rate than the DAC
- Read the state of the switches and sample value of rate potentiometer
- Debounce bypass switch and keep track of bypass state
The circuitry is all contained on a double-sided PCB, which is designed to fit comfortably inside a Hammond 1590BB enclosure or similar. It will fit in either portrait or landscape orientation, so you can build it how you like. I decided to keep the input / output jacks, power connector and bypass switch off board, as not to restrict the choice of parts that can be used. As the design includes onboard relay-based true bypass, the bypass switch need only be a simple momentary type.
Here are the specific parts that the PCB requires:
- The relay is a miniature DPDT, with a 5V coil. I used the Tianbo HJR1-2C L-05V, although you could use something else.
- The R-2R resistor network used for the DAC is a Bourns 4310R-R2R-103LF.
- The potentiometers are 9mm Alpha types, with metal shaft and threaded bushing. They're all 10K linear.
- The toggle switch is a miniature SPDT centre-off type.