top of page

Digital Suboctave

An idea that came to me after inhaling too many solder fumes. The video explains it all but I'll type it out again underneath...

I think this pedal is called "Underthunk".

This is an idea for radical waveshaping using a microcontroller, where we can get "bitcrushed" or low-res sub-octaves from a guitar signal.

First of all the guitar signal is converted into a square wave (red in the diagram below). Then we use a simple program to detect when the input state changes from high to low, or low to high (light blue lines below).

Every time this change happens, our output will increment through a small array, in this instance {0, 128, 255, 128};

This outputs a very low resolution triangle wave that is precisely an octave beneath the original square wave input.

If we increase the array to 8 numbers, eg. {0, 64, 128, 192, 255, 192, 128, 64}; we get two octaves down with slightly better resolution. 3 octaves down pushes it a bit too far, and any low notes played will output an LFO.

Image of the 2 octaves down waveform, from Audacity

Because the hi/lo or lo/hi changes happen at twice the frequency of the input signal, This gives us additional harmonics of an octave up, which can be smoothed over with a tone pot, if you wish.

I also tried this with ramp waves, but didn't get a noticeably different sound at the output.

Radical waveshaping with 1s & 0s reminded me of Freppo's work at Parasit Studio (who i'm sure sure you're already aware of if you've spent any time rooting through online pedal schematics!) I emailed him to see if this method is something he's already done, and sure enough he replied...

"For the Multiwave MEGA (and another upcoming project that i'm working on) I'm using a method similar to your idea. :)

I'm using a pinchange interrupt to cycle through an array that controls a pwm output. However, I'm using a Phase Locked Loop to multiply the input frequency by 64, to be able to run through longer more complex arrays that makes up various waveshapes.

It also allowed me to detune the oscillator by making the arrays shorter (for example 54 steps etc.) to go up in frequency as well as down."

So it's possible to expand on this idea to get very interesting results, if you're any good at tuning PLLs!

.

Recent Posts
Search By Tags
Glowfly_Logo_RGB_inv.png
bottom of page