Articles/← Part 2 of 2
EN/TW

Sub Sound! Turning Pitch into an Octave: Building One

Cover

This time I built a sub octave for bass, designed around three goals:

  1. Keep the dynamics of fingerstyle playing
  2. A clean, tight sound
  3. Intuitive to use

While designing it I tested several of the algorithms above, and they all ran into the same problem: digital signals capture too much, so noise and harmonics can be mistaken for a cycle. So the real focus of the implementation turned out to be rejecting these false detections and keeping only the true periods.

True periods and false triggers on a bass waveform
(Placeholder) False triggers caused by harmonics and noise

Rejection Methods

These are the methods I tried. I'd suggest testing each one on its own first, and only chaining them together once you've confirmed each does what you want. Keep in mind that all of these reduce dynamics; overdo them and the sound starts to feel very "digital."

  • Low-pass / Band-pass: placed at the very front of the signal to filter out high harmonics and noise first.
    • Pros: the lower the cutoff, the more cleanly harmonics are blocked.
    • Cons: high notes trigger less sensitively. But their periods are short anyway, so the latency isn't very noticeable.
  • Gate: ignore the signal when it's too quiet, so silence and string noise don't trigger false cycles.
    • Pros: the higher the threshold, the cleaner the silence.
    • Cons: tails get cut off earlier, and lightly played notes may be missed.
  • Compression / AGC: narrows the gap between loud and soft, reducing extreme dynamics.
    • Pros: the heavier the compression, the more even the levels.
    • Cons: the noise floor gets raised too, so the gate threshold has to go up with it.
  • Adaptive Threshold: the trigger threshold follows recent peaks — high when loud, low when quiet.
    • Pros: the higher the ratio, the fewer false detections; the slower the peak memory releases, the more stable it is.
    • Cons: the first cycle triggers later; it struggles to keep up as notes decay.
  • Hysteresis: set one threshold above and one below; the waveform has to complete a full swing to count as a cycle, so small jitter around zero isn't miscounted.
    • Pros: the farther apart the two thresholds, the more stable it is.
    • Cons: the smaller the signal, the harder it is to complete a full swing.
  • Holdoff: after one trigger, ignore the next one for a short time; intervals that are too short are treated as noise.
    • Pros: the longer it is, the more false triggers it blocks.
    • Cons: it caps the highest note you can track, which doesn't matter much for bass.
  • Consistency Check: if a newly measured period differs too much from the last one, don't use it yet; only apply it once it's the same several times in a row.
    • Pros: the more confirmations required, the more reliable note changes are.
    • Cons: every note change has to wait a few extra cycles.

For bass, I think the first combination to try is Low-pass > Gate > Hysteresis. Bass has a low range, so trying a few combinations of low-pass and gate settings narrows down most false detections. Also, digital design is very flexible: parameters can change with the state. For example, I tried giving the gate a different ratio during the attack and the sustain — something that's harder to do in an analog circuit.

Trigger points before and after Low-pass, Gate and Hysteresis
(Placeholder) Before and after Low-pass → Gate → Hysteresis

Tone Design

Once tracking is stable, tone design becomes much more open. Whether it's -1 oct or -2 oct, the principle is the same: build a separate signal and layer it back under the dry sound. If you don't have a direction yet, start by comparing whatever octave pedals you have on hand. The sub octaves of the BOSS OC-2 and EHX POG, for example, have clearly different harmonic series; put them through a spectrum visualizer and you'll quickly find a direction.

Sub-octave spectra of the BOSS OC-2 and EHX POG compared
(Placeholder) OC-2 vs POG sub-octave harmonic series

You can also try emulating a synth. Since tracking already gives you the timing of every cycle, you can use it to directly drive different waveforms, and mixing them together gives yet another tone. In the end, it's just about using these ingredients to find a sound you like.

Square, sine and triangle sub-octave waveforms
(Placeholder) Driving different waveforms from the period timing

Testing Notes

I find effects like octaves and envelope filters harder to test than most, so here are a few of the methods I use:

  1. Keep knobs and presets

    During development, expose as many internal parameters on the interface as you can, and save the settings you like. Your ears go numb quickly when tuning tracking; having a few presets lets you switch back and compare at any time.

  2. Play while you tweak

    It directly affects how the instrument feels to play. Running a loop through the effect and playing live give completely different results. I suggest using a loop to quickly find the range that needs adjusting, then switching back to testing inside the plugin.

  3. Try different basses

    At first I only tested with a Mustang strung with flatwounds. Once I was happy with the response, I switched to a P Bass with roundwounds, and long low notes started breaking up. Remember to test every version with different basses: fast passages, octave jumps and long notes.

Fender Mustang and P Bass
(Placeholder) A Mustang with flatwounds and a P Bass with roundwounds

After trying each approach once, you'll have a good sense of where the limits of a sub octave are. And along the way you'll accidentally dial in the flavor of some brand's pedal, which is half the fun.