Voice and formant synthesis: the source-filter model
Learning objectives
- learner can model vocal timbre with the source-filter approach and formant resonances
- learner can synthesize vowels and voice-like textures with formant, FOF, and VOSIM techniques
Capstone — one whole task that evidences the objectives
Synthesize a sung vowel that morphs from 'ah' to 'ee' by moving formant resonances over a glottal source, and reproduce it with a second technique (FOF or VOSIM) for comparison.
Prerequisite modules
The whole task here is conjuring a voice out of nothing — no samples, no vocalist — the signature move behind choir pads in ambient sets, talking-bass leads, and the eerie half-human textures live coders drop into a set to make an audience lean in. On a live rig this matters because a synthetic vowel is fully parametric: you can sweep it from “ah” to “ee” with one mapped controller or one pattern line, which a sample never gives you.
The arc starts supported: build a static vowel by parking a handful of high-Q bandpass filters at published formant frequencies over a buzzy sawtooth “glottis.” The atom on modeling the vocal tract as source plus formant resonances is your map; the one on bandpass Q versus bandwidth is the JIT how-to for making each resonance narrow enough to read as vocal without ringing into whistle territory. Next, animate it — crossfade filter centers between vowel tables — before switching paradigms: the atoms on FOF grain-burst streams and VOSIM’s decaying sin-squared pulse trains show how the same formants emerge from time-domain grains rather than filters, which is why granular foundations are a prerequisite. The capstone is the unsupported version: a morphing sung vowel realized twice, once per paradigm, and compared by ear.
The three required atoms gate the capstone directly — no source-filter mental model, no FOF or VOSIM realization, no comparison. The supporting atoms enrich: vocoder banks and Surge XT’s Window oscillator offer alternate rig-ready routes to formant color, while critical-band awareness explains why closely spaced formants can turn rough.
Runnable examples
Generated from the context/ instrument corpus by concept (redistributable idioms only). Do not edit — regenerate with gen-module-examples.mjs.
resonant-filter
SinOsc s => LPF f => dac; 400 => f.freq;
chuck-0002 · MIT
play :e2, cutoff: 90, res: 0.9, release: 0.3
sonicpi-0022 · CC0
formant-vowel
note("<c3 e3 g3>").vowel("<a e i o>")
strudel-0036 · CC0
d1 $ note "c e g" # sound "supersquare" # vowel "a e i"
tidal-0035 · CC0
Atoms in this module
Required — these gate the capstone
Supporting — enrichment, not gating
Part of curricula
- Synthesist / Sound Designer — deep DSP to a performed live synth rig — Deep DSP — advanced operators, spectral, physical, formant, procedural required