Pbind maps keyword-value pairs into a timed stream of playable musical events
Pbind is SuperCollider’s central sequencing abstraction and a member of the Pattern family (the capital P). It takes a flat list of keyword/value pairs — keys are Event keys naming musical parameters (\instrument, \degree, \note, \freq, \dur, \amp, \legato, \pan) — and generates a stream of Event objects. Each value can be a fixed number or itself a pattern that yields a stream (Pseq walks a list, Pwhite draws uniform random, Prand picks at random, Pbrown random-walks). At each step Pbind pulls the next value from every sub-pattern, assembles one Event describing how that note should sound, and plays it via the default synth or a named SynthDef. This makes music declarative: you state what should happen, not the step-by-step procedure. Calling .play creates an EventStreamPlayer that realizes the events in time. Pbind stops when its shortest sub-pattern runs out. The key misconception: Pbind is not a UGen and not the player — it is the score; the EventStreamPlayer is the performer.
Examples
Pbind(\degree, 0, \dur, 0.5).play; // middle C every 0.5 beats
Pbind(\degree, Pseq([0,1,2,3,4,5,6,7],1), \dur, 0.2).play; // ascending C-major scale
Pbind(
\instrument, \default,
\freq, Pseq([300,400,500,600], inf),
\dur, Pseq([0.5,0.5,1,0.5], inf),
\amp, 0.3
).play;
Assessment
Write a Pbind that plays a C-major scale (degrees 0–7) once, each note 0.2 s, at half amplitude; then modify it to repeat 3 times. State the units of \dur. Identify which sub-pattern controls duration in a given Pbind, and explain why Pbind is the score rather than the player.