Filters: types, cutoff, resonance, and rolloff
Learning objectives
- learner can choose the right filter type (LP/HP/BP) and set cutoff, resonance/Q, and slope for a spectral shaping goal
- learner can explain filter behavior from first principles — poles, half-power point, self-oscillation, keytracking — and predict its effect on a rich source
Capstone — one whole task that evidences the objectives
Route a sawtooth through a resonant filter and produce four distinct results — a warm bass, an airy chord voice floating above the sub, a whistling self-oscillation tone, and a keytracked timbre-preserving patch — describing the cutoff/Q/slope settings for each.
Prerequisite modules
The filter is the single most-touched control in subtractive synthesis and in a live-coded set alike: whether you are carving a techno bassline in SuperCollider, keeping a dub chord from fighting the sub, or riding a cutoff sweep as the one gesture the crowd can hear evolving, everything hinges on knowing what a filter will do before you turn the knob. This module builds toward exactly that fluency — one raw sawtooth, four deliberately different sonic outcomes, each justified in terms of type, cutoff, Q, and slope.
The arc starts fully supported. You first internalise the map — the idea that a filter selectively attenuates frequency ranges, and the basic response shapes — then anchor the vocabulary that makes settings predictable rather than guessed: the half-power (−3 dB) definition of cutoff, Q and its reciprocal rq, and the 6 dB-per-octave-per-pole rule for slope. Guided exercises then pull in the procedural atoms as just-in-time how-to pointers: murking a bright oscillator into a low-end bass with a mid-cutoff LPF, tightening sub-bass with a highpass below ~40 Hz, and thinning a chord into an airy voice by highpassing instead of lowpassing. Extreme resonance behaviour (self-oscillation) and keytracking close the set, so that by the capstone you patch all four targets unassisted.
Every required atom gates a capstone deliverable — you cannot describe the whistling tone without self-oscillation, nor the airy chord voice without knowing when to reach for a highpass, nor the timbre-preserving patch without keytrack. Supporting atoms deepen the picture: Surge XT’s filter configurations, offset mode, and scene highpass give a concrete rig to practise in, while ladder topology and the resonance-edge patch show where character and expressivity live beyond the numbers. The two bread-and-butter procedures — LPF bass definition and sub-bass highpassing — recur in nearly every session, so drill them inside real patches until they are automatic.
Walkthrough
A filter is the single most-used shaping tool in electronic music: it decides which frequencies of a raw wave you keep. You’ll build four distinct voices from one sawtooth, then stack them. At strudel.cc, Ctrl-Enter plays, Ctrl-. stops. Each step is a complete, playable program. (A sawtooth has all the harmonics — the perfect raw material for a filter to carve.)
1 — low-pass darkens (lpf). A low-pass filter passes frequencies below its cutoff and attenuates the rest. Drop the cutoff on a bright saw and it turns from buzzy to warm — the definition of a bass sound. Cutoff is the “brightness” knob ([[filter-spectral-shaping]], [[low-pass-filter-cutoff]], [[low-pass-filter-bass-definition]]).
setcpm(120/4)
note("c2 eb2 g2 c3").sound("sawtooth").lpf(600)
2 — resonance emphasises the cutoff (lpq). Q (resonance) boosts a narrow band right at the cutoff, adding a vocal, whistling peak. A little makes the filter sing; too much and it dominates. Here lpq(12) puts a clear resonant edge on the bass ([[filter-q-resonance]], [[resonant-filter-rq]]).
setcpm(120/4)
note("c2 eb2 g2 c3").sound("sawtooth").lpf(600).lpq(12)
3 — sweep the cutoff with a signal. The live-coding move: replace the static cutoff with a continuous signal. sine.range(300, 2200).slow(4) sweeps the filter open and shut over four cycles — a filter that breathes, no automation lane needed ([[filter-poles-rolloff]]).
setcpm(120/4)
note("c2 ~ eb2 g2").sound("sawtooth").lpf(sine.range(300, 2200).slow(4)).lpq(8)
4 — high-pass for air (hpf). A high-pass does the opposite: it removes the lows and keeps the highs. Use it to thin a chord into an airy voice that floats above the bass without fighting it for low-end space — the classic “pad up top” trick ([[high-pass-filter-sub-bass-tightness]], [[highpass-filter-airy-chord]]).
setcpm(120/4)
note("<[c3,eb3,g3] [g3,bb3,d4]>").sound("sawtooth").hpf(900).gain(0.7)
5 — self-oscillation (the whistle). Push resonance to the extreme and the filter feeds back into a pure sine tone at the cutoff — it “self-oscillates,” becoming an oscillator in its own right. lpq(28) on a low cutoff gives a whistling sine you can play ([[filter-self-oscillation]]).
setcpm(120/4)
note("c3 c3 c3 c3").sound("sawtooth").lpf(500).lpq(28).gain(0.5)
6 — four filter voices in one groove (the capstone). All the moves layered: a filter-swept warm bass, an airy high-passed chord above it, a resonant self-oscillation accent, over a 909 kick — each voice defined by how it’s filtered, not what note it plays ([[filter-types-frequency-response]]):
setcpm(120/4)
$: sound("bd*2, ~ sd").bank("RolandTR909")
$: note("c2 ~ eb2 g2").sound("sawtooth").lpf(sine.range(300, 900).slow(4)).lpq(6).gain(0.9)
$: note("<[c4,eb4,g4] [d4,g4,bb4]>").sound("sawtooth").hpf(1200).gain(0.4)
$: note("c6 ~ ~ ~").sound("sawtooth").lpf(700).lpq(26).gain(0.22)
What good sounds like. Each voice should own its own frequency band: the low-passed bass warm and round with no fizz, the high-passed chord airy and out of the bass’s way, the resonance singing without swamping the mix. The beginner failure is everything low-passed to the same dull cutoff, so voices mask each other — reach for the high-pass to carve space, not just more low-pass. Sweep slowly; a filter opening over 8 bars is a whole arrangement move. (Keytracking — cutoff following pitch so timbre stays constant up the keyboard — has no direct Strudel control; it lives in soft-synths like Surge.) (Skill map: live-coder Domain A4/B2 — the signal chain and carving space with filters.)
Now make it yours. Widen the sweep range for a bigger arc. Trade lpf for hpf on the bass and hear it vanish. Pattern the resonance: .lpq("<4 20>"). Add .room(0.3) to the airy chord for space. Drive the cutoff from the drums’ energy by matching the sweep’s .slow() to your phrase length.
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
sub-bass
osc 27.5 >> audio
punctual-0002 · CC0-1.0
synth :subpulse, note: :e1, sustain: 0.4, amp: 1.4
sonicpi-0016 · CC0
Atoms in this module
Required — these gate the capstone
Supporting — enrichment, not gating
Part of curricula
- Dawless Performer — hardware jam to recorded live take — Signals, voices, and the DAWless mindset required
- Electronic Music Producer — from raw sound to a released track — Design your palette — synthesis and groove required
- Live Coder — zero to performing live-coded music — Patterns, Grooves & Voices required
- Synthesist / Sound Designer — deep DSP to a performed live synth rig — Hearing sound as spectrum, shaping a first voice required
Unlocks — modules that require this one
- Advanced filter design: biquads, allpass, and phase response
- Delay lines, comb filters, and modulation effects
- Drum synthesis: kicks, snares, hats, claps, and toms from scratch
- Envelopes, LFOs, and modulation routing
- Ring modulation, AM, frequency shifting, and vocoding
- Physical modeling: Karplus-Strong, waveguides, and instrument models
- Procedural audio and creative sound-design practice
- Subtractive synthesis: from raw wave to shaped voice
- Voice and formant synthesis: the source-filter model