FORMANT filter 1


Vowel — parallel formant filter bank

Vowel

A parallel bank of five resonant bandpass formant filters, driven by a glottal source.

Summed magnitude response of the bank, 50 Hz to 10 kHz

Drag to move between vowels and voice parts. Scroll on the pad to shift the formants, double-click to put them back.

110 Hz
4.0 %
0 %
0 %
5.0 Hz
1.00 x
1.000 x
60 %
Live formant values written into the bank
FilterFreqGainBWQ

How this maps to the C

The filter runs in an AudioWorklet as a direct port of formant_filter_tick: the same s-plane bandpass prototype, the same bilinear transform, the same second-order difference equation, five instances summed in parallel and scaled by 0.2. Coefficients are recomputed only when frequency, gain or Q change, exactly as the original does.

The formant tables are the Csound Book measurements verbatim — five vowels across five voice parts. sk_vowel_set_phoneme‘s conversion is kept: gain comes from DB2LIN, and Q is frequency divided by bandwidth.

Two deviations worth knowing. The morph scales vowel position by four rather than size - 2, so the pad reaches a full U instead of stopping short of it. And a tanh soft clip sits after the output gain, because a parallel bank at high resonance can produce a very loud signal into headphones. Resonance and formant shift are additions, not part of the original.

The source is naive and will alias at high pitch. That is the classic behaviour for an impulse train, and it also gives the buzz much of its character.

https://pbat.ch/sndkit/vowel


Leave a Reply

Your email address will not be published. Required fields are marked *