Skip to content

Build: Channel Vocoder

A 10-band channel vocoder. Mic input is split into 10 analysis bands matching the VODER patent geometry; each band’s amplitude envelope (rectified + smoothed by an envelope follower) controls the corresponding synthesis band fed by a MIDI-driven sawtooth carrier. The result: speech spectral envelope of the mic, melodic pitch of the MIDI keyboard. Band 9 (6.36 kHz) doubles as a sibilance detector — its envelope opens a white-noise side-chain so consonants like /s/, /sh/, /f/ stay intelligible despite the harmonic carrier. Final output goes through a safety compressor.

The mic node captures the modulator (your voice), the MIDI node provides the carrier pitch. A mul node scales raw MIDI pitch by 1x (unison) — change to 2x for an octave up.

Nodes added: vc-mic, vc-midi, vc-pmul

Connections: 1 new

A sawtooth oscillator at 110 Hz (~A2) provides the harmonic-rich carrier. Sawtooth has strong harmonics across the spectrum — exactly what the filter bank needs to colour with the mic’s formants. Pitch-bend hits detune directly for vibrato.

Nodes added: vc-osc

Connections: 2 new

Step 3: Build the analysis chain (mic to 10 bands to envelope followers)

Section titled “Step 3: Build the analysis chain (mic to 10 bands to envelope followers)”

For each band: two cascaded bandpass filters (24 dB/oct rolloff) split the mic signal by frequency, then an envelope follower rectifies and smooths the band’s amplitude. Default env: 3 ms attack / 30 ms release — fast enough for consonants, slow enough to bridge glottal pulses without buzz.

Nodes added: vc-a-bp-0a, vc-a-bp-0b, vc-env-0, vc-a-bp-1a, vc-a-bp-1b, vc-env-1, vc-a-bp-2a, vc-a-bp-2b, vc-env-2, vc-a-bp-3a, vc-a-bp-3b, vc-env-3, vc-a-bp-4a, vc-a-bp-4b, vc-env-4, vc-a-bp-5a, vc-a-bp-5b, vc-env-5, vc-a-bp-6a, vc-a-bp-6b, vc-env-6, vc-a-bp-7a, vc-a-bp-7b, vc-env-7, vc-a-bp-8a, vc-a-bp-8b, vc-env-8, vc-a-bp-9a, vc-a-bp-9b, vc-env-9

Step 4: Build the synthesis chain (carrier to 10 bands to per-band VCAs)

Section titled “Step 4: Build the synthesis chain (carrier to 10 bands to per-band VCAs)”

Same band geometry as analysis, but fed by the sawtooth carrier and ending in an amp node whose gain is the modulation target. Each VCA starts at 0 — silent until its analysis envelope opens it. This is where the vocoder magic happens.

Nodes added: vc-s-bp-0a, vc-s-bp-0b, vc-s-amp-0, vc-s-bp-1a, vc-s-bp-1b, vc-s-amp-1, vc-s-bp-2a, vc-s-bp-2b, vc-s-amp-2, vc-s-bp-3a, vc-s-bp-3b, vc-s-amp-3, vc-s-bp-4a, vc-s-bp-4b, vc-s-amp-4, vc-s-bp-5a, vc-s-bp-5b, vc-s-amp-5, vc-s-bp-6a, vc-s-bp-6b, vc-s-amp-6, vc-s-bp-7a, vc-s-bp-7b, vc-s-amp-7, vc-s-bp-8a, vc-s-bp-8b, vc-s-amp-8, vc-s-bp-9a, vc-s-bp-9b, vc-s-amp-9

Step 5: Wire each envelope follower to its corresponding VCA

Section titled “Step 5: Wire each envelope follower to its corresponding VCA”

The vocoder move: env-N’s rectified-and-smoothed amplitude drives s-amp-N’s gain. Band N of the carrier now speaks only when band N of the mic has energy. Ten parallel chains, one shared structure.

Step 6: Add sibilance side-chain (auto-detected from band 9)

Section titled “Step 6: Add sibilance side-chain (auto-detected from band 9)”

Sawtooth carriers can’t reproduce noisy consonants like /s/, /sh/, /f/ — they’re harmonic, fricatives aren’t. Solution: band 9’s envelope (6.36 kHz, where sibilants live) opens a white-noise gate via vc-sib-mul (default scale x8, tune via Sibilance Mix). When you say ‘sssss’, the noise opens; when you sing ‘aaaa’, it stays shut.

Nodes added: vc-noise, vc-sib-mul, vc-sib-amp

Connections: 3 new

All 10 synthesis VCAs plus the sibilance channel sum into a single amp (gain 12 as make-up — env followers output small values). A safety compressor at -12 dB / 4:1 catches simultaneous band peaks. Output level is exposed as a tunable param.

Nodes added: vc-sum, vc-comp

Connections: 1 new

Select all 69 nodes and press g. Expose vc-comp’s audio-out as the source, plus MIDI Channel, Carrier Wave, Pitch Scale, Sibilance Mix, Noise Color, and Output Level as parameters.

A reusable Channel Vocoder module with 6 exposed parameters and 1 exposed port.

Select it in the Module Library (SPC m) to add one to any patch.