SuperCollider's PMOsc implements phase modulation synthesis, producing FM-like timbres with modulator-as-ratio control
PMOsc is SC’s phase-modulation oscillator. Like classic FM, it produces sidebands but expresses the modulator as a ratio of the carrier frequency, so the harmonic relationship is preserved across pitch changes. The pmindex argument controls modulation depth: higher index = more sidebands = brighter timbre. EnvGen applied to pmindex creates a brightness envelope (typically decaying for metallic, bell, or percussion sounds). The figure 1.7 PMCrotale SynthDef is a canonical worked example: perc envelope on both pmindex and amplitude, with a randomised modulator ratio for organic variation.
Examples
SynthDef(“PMCrotale”, { arg midi = 60, tone = 3, art = 1; var freq = midi.midicps; var mod = 5 + (1/IRand(2, 6)); Out.ar(0, PMOsc.ar(freq, mod*freq, pmindex: EnvGen.kr(Env.perc(0, art), levelScale: tone), mul: EnvGen.kr(Env.perc(0, art), levelScale: 0.3))) }).add;
Assessment
Implement a PMOsc-based bell patch with a decaying brightness index envelope. Describe the spectral change as pmindex decays from 8 to 0. How does changing the modulator ratio shift the harmonic series?