FM synthesis: carriers, modulators, ratios, and index
Learning objectives
- learner can explain FM from the carrier/modulator relationship, and predict a spectrum from the C:M ratio (harmonic vs inharmonic) and modulation index (brightness/density)
- learner can articulate an FM tone over time by enveloping the modulation index instead of a filter
- learner can build basic FM voices, including a metallic/bell inharmonic patch and a brightening harmonic patch
Capstone — one whole task that evidences the objectives
Design two FM patches from a two-operator setup: a bright harmonic bass (small integer C:M with an index envelope) and a metallic bell (inharmonic ratio with a decaying index), and explain each spectrum in terms of ratio and index.
Prerequisite modules
FM is the sound designer’s shortcut to two families of tones a subtractive rig struggles with: punchy, brightening basses for electro and neuro-adjacent styles, and inharmonic bells, keys, and metallic percussion that cut through a dense live-coded mix. In a performance setting — a Surge XT patch under TidalCycles, or a two-line PMOsc SynthDef in SuperCollider — you rarely have time to stack partials or automate filters; you need two operators and two numbers that predictably shape a whole spectrum. That predictive skill is the whole task here.
The arc starts supported: sweep a modulator from LFO rate into the audio band and hear vibrato become timbre (the “raising a modulator into the audio range” atom is the first-hour exercise). From there the learner builds the mental model in two independent axes, following Chowning’s summary rule — the C:M ratio decides where sidebands land (integer ratios lock them to a harmonic series; irrational or non-integer ratios scatter them into bell territory), while the modulation index decides how many carry energy, i.e. brightness. Mid-module exercises make each axis concrete: predict a spectrum before playing it, then check by ear and analyzer. The final move is temporal — enveloping the modulator’s amplitude so the index, not a filter, articulates the tone, which is exactly what the harmonic-bass half of the capstone demands.
The required atoms gate the capstone directly: you cannot explain either patch without sideband placement, the index definition, harmonic-vs-inharmonic ratio rules, and the index-envelope-replaces-filter principle. Supporting atoms enrich rather than gate — Bessel amplitudes and reflected sidebands for those who want the math, keyboard scaling, velocity, and mod-wheel routings for playable patches, and the Surge XT and SuperCollider atoms as just-in-time pointers for whichever rig the learner performs on.
Runnable examples
Generated from the context/ instrument corpus by concept (redistributable idioms only). Do not edit — regenerate with gen-module-examples.mjs.
amplitude-lfo
osc 440 * lftri 1 >> audio
punctual-0003 · CC0-1.0
s("bd*4").gain(sine.range(0.5,1).fast(4))
strudel-0040 · CC0
fm-timbre
note("c3").s("sine").fm(4).fmh(2).fmi(3)
strudel-0204 · CC0
osc (midicps 24 * (1 ~~ 4 $ osc 110)) >> audio
punctual-0006 · CC0-1.0
vibrato
saw (midicps $ 24 +- 0.03 $ osc 6) >> audio
punctual-0005 · CC0-1.0
{ SinOsc.ar(SinOsc.kr(6).range(430, 450), 0, 0.2) }.play
supercollider-0006 · 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 — Clock everything and jam a synced groove recommended
- Electronic Music Producer — from raw sound to a released track — Design your palette — synthesis and groove required
- Synthesist / Sound Designer — deep DSP to a performed live synth rig — The synthesis palette — FM, additive, wavetable, granular, drums required
Unlocks — modules that require this one