Wavetable synthesis: scanning single-cycle frames for evolving timbre
Learning objectives
- learner can explain wavetable mechanics — single-cycle frames, index increment, interpolation, and pitch control
- learner can create evolving timbres by scanning, crossfading, and morphing between wavetable frames
- learner can avoid wavetable aliasing with band-limited, per-octave harmonic scaling
Capstone — one whole task that evidences the objectives
Build a wavetable oscillator patch that morphs from a hollow to a bright timbre over a note by scanning its frames, keep it alias-free across a two-octave range, and describe the index-increment and interpolation math involved.
Prerequisite modules
Wavetable oscillators are the workhorse of modern electronic sound design — the moving, breathing pads of melodic techno, the snarling basses of bass music, the animated leads a live coder sweeps mid-set. This module builds one whole skill: making a note’s timbre travel from hollow to bright by scanning frames, on a rig you actually own — Surge XT or Serum for knob-driven work, Pure Data or SuperCollider when you want the algorithm under your fingers on stage.
The arc starts supported. First, hear the core idea concretely: a wavetable as a flipbook of single-cycle frames, and pitch as nothing more than the step size through a stored cycle. A guided first exercise wires “a wavetable oscillator scales a phasor by the table size” in Pd, then turns the morph knob in Surge (“scanning frames via a Morph parameter”) to feel timbral motion before doing any math. The middle of the module drills the machinery until it is automatic — the fL/fs index increment, the full signal-flow chain from increment through fmod wrap to lookup, and the interpolation strategies that tame the fractional index. The final stretch removes the scaffolding: aliasing at high pitches is diagnosed by ear, then fixed with per-octave band-limited tables and pitch-scaled harmonic counts — exactly what the capstone demands across its two-octave range.
The required atoms are the gate: without frame scanning, crossfading, increment math, and band-limiting, the capstone patch either sits static or aliases. Supporting atoms widen the craft — SuperCollider’s Osc/VOsc route for live coders, Serum warp tricks and Surge’s Window and Twist oscillators for color, variants like static position-as-tone and multi-cycle concatenation, table-sizing conventions, and the sampling and hearing-limit connections that place wavetables in the broader synthesis map.
Runnable examples
Generated from the context/ instrument corpus by concept (redistributable idioms only). Do not edit — regenerate with gen-module-examples.mjs.
saturation-drive
d1 $ sound "bd*2" # shape 0.4
tidal-0033 · CC0
{ (SinOsc.ar(110) * 5).tanh * 0.2 }.play
supercollider-0009 · 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
additive-synthesis
{ Klang.ar(`[[100, 200, 300, 400], [0.4, 0.3, 0.2, 0.1]]) * 0.1 }.play
supercollider-0022 · 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 — The synthesis palette — FM, additive, wavetable, granular, drums required