home/ atoms/ sc-pbind-event-pattern

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.

“Pbindisamemb erofthePatternfamilyinSup erCollider.ThecapitalPinPbindand PseriesstandsforPattern”
corpus · a-gentle-introduction-to-supercollider-bruno-ruviaro · chunk 3
“Pbindis a member of the Pattern family in SuperCollider. The capital P inPbindandPseries stands forPattern; we’ll meet other members of the family soon.”
corpus · a-gentle-introduction-to-supercollider-ruviaro-archive-org-c · chunk 4
“Patterns describe calculations without explicitly stating every step”
“The Pbind pattern generates Event objects, which contain names and values describing how the note is supposed to sound.”
“Pbind( *[ dur: 0.2, freq: Pseq([100, 200, 300, 400, 500, 600, 700, 800]) ] );”
corpus · the-supercollider-book-official-code-examples-scbookcode-gpl · chunk 145