State-variable filter

ATMOSYNTH built-in module

A filter with four shapes on one knob, built as the Oberheim SEM's is: two poles in a loop, which hold a low-pass, a band-pass and a high-pass at once, and a notch that is the low-pass and the high-pass added. Mode is which of them is heard — low-pass at nothing, band-pass at one, high-pass at two and the notch at three — and between two of them it is a mix of both, so turning it while a note sounds moves the sound through the shapes rather than switching from one to the next. Twelve decibels an octave, gentler than the ladder's twenty-four, and full where the ladder goes thin: turning Resonance up takes nothing away from below the cutoff. The high-pass resonates and sings as the low-pass does, so this is the resonant high-pass as well. Below one Resonance emphasises what is at the cutoff; at one the filter rings on at the cutoff for as long as it is left; above one it holds a tone of its own with nothing played into it at all. The tone is round, close to a sine, louder the further Resonance is turned, and held at that level by the filter itself rather than clipped. At the notch the tone it sings is the one it takes out, so a singing filter falls quiet there. Cutoff and Cutoff depth work as they do on the ladder, in cents and negative to invert, eight octaves either way, so an envelope can open a filter set low all the way to the top; Key tracking moves the cutoff with the note played, which needs the note routed here. Drive is how hard the sound is pushed into the filter: at one gently, and above it its input and both of its integrators saturate, as a transistor filter's do, so a driven filter thickens and compresses and a resonance pushed into it is held down. It is kept out of the resonance, so driving the filter does not move the point at which it starts to sing. What its curves leave off centre on a sawtooth or a narrow pulse is taken off below any note, so what comes out sits on centre. Resonance is an input as well, and its depth how far a signal there moves it — an envelope into it makes the filter sing at the start of a note and settle as it decays. However far it is pushed, it stays inside the knob's own range. Mode is an input too, and its depth how far a signal there moves it — an LFO into it sweeps the sound from one shape to the next and back, and an envelope or an automation lane walks it through them over a note or a phrase. However far it is pushed, it stays between the low-pass and the notch. This module carries code: nothing in the vocabulary can be fed back into itself a sample at a time, and a biquad's resonance rings after something excites it and then stops.

Four notes played on Keys, passing through it on their way out.

What it is made of

Ports: note input ‘Note’, audio input ‘In’, audio input ‘Cutoff’, audio input ‘Resonance’, audio input ‘Mode’, audio output ‘Out’.

  • ‘in’: audio input · port in · into ‘gen’
  • ‘gen’: Worklet (your own code) · processor name atmosynth-sem · inputs 1 · outputs 1 · runs its author’s code · into ‘trim’ · frequency turned by ‘Cutoff (Hz)’ · resonance turned by ‘Resonance (sings above one)’ · mode turned by ‘Mode (0 low-pass, 1 band-pass, 2 high-pass, 3 notch)’ · drive turned by ‘Drive’
  • ‘cutoffin’: audio input · port cutoff · into ‘cutoffdepth’
  • ‘cutoffdepth’: Gain · modulates the detune of ‘gen’ · level turned by ‘Cutoff depth (cents)’
  • ‘note’: note input · port midi · into ‘trackdepth’
  • ‘trackdepth’: Gain · modulates the frequency of ‘gen’ · level turned by ‘Key tracking’
  • ‘trim’: Gain · into ‘out’ · level turned by ‘Level’
  • ‘out’: audio output · port out
  • ‘resonancein’: audio input · port resonance · into ‘resonancedepth’
  • ‘resonancedepth’: Gain · modulates the resonance of ‘gen’ · level turned by ‘Resonance depth’
  • ‘modein’: audio input · port mode · into ‘modedepth’
  • ‘modedepth’: Gain · modulates the mode of ‘gen’ · level turned by ‘Mode depth’
  • ‘Cutoff (Hz)’: knob, 20 to 18000
  • ‘Resonance (sings above one)’: knob, 0 to 1.2
  • ‘Mode (0 low-pass, 1 band-pass, 2 high-pass, 3 notch)’: knob, 0 to 3
  • ‘Drive’: knob, 0.1 to 10
  • ‘Cutoff depth (cents)’: knob, -9600 to 9600
  • ‘Key tracking’: knob, 0 to 2
  • ‘Level’: knob, 0 to 2
  • ‘Resonance depth’: knob, -1.2 to 1.2
  • ‘Mode depth’: knob, -3 to 3

Patches built on it

1 published patch