Granular synthesis constructs sounds from thousands of short grains (10–100 ms) with independent parameters
Granular synthesis treats audio as a stream of microsounds called grains, each 10–100 ms long. Each grain is an enveloped snippet of either a synthesized tone or a sampled buffer fragment. Parameters like pitch, playback position, amplitude, pan, and grain duration can vary per grain, producing textures impossible from continuous synthesis. In SuperCollider, granular clouds are constructed by defining a SynthDef for one grain (including doneAction:2) and scheduling many Synths in a Routine at a controlled rate. Density, tendency masks, and time-varying parameter ranges govern cloud evolution. Built-in UGens (TGrains, GrainSin, GrainFM, GrainBuf, Warp1) encapsulate the grain engine. Technique originated with Xenakis (1959), developed computationally by Curtis Roads and Barry Truax.
Examples
SynthDef(\grain, {arg freq=440, amp=0.1, pan=0, dur=0.05;
var env = EnvGen.ar(Env.perc(0.005, dur), doneAction:2);
Out.ar(0, Pan2.ar(SinOsc.ar(freq) * env * amp, pan))
}).add;
Assessment
Build a simple granular cloud from a loaded sample: vary startPos across the buffer over time and observe textural evolution. Reduce grain duration below 20 ms and describe the pitch-smearing effect.