fork schedules time-ordered Pbind launches using .wait calls inside a Routine running on a TempoClock
The {...}.fork construct runs a function in a Routine on a clock, pausing at each .wait(beats) call. This is SC’s idiomatic tool for launching multiple Pbinds sequentially with precise timing delays — for example, starting a melody 2 beats after the kick pattern. Unlike Pbind’s internal sequencing, fork operates at the ‘director’ level: it schedules when each score is handed to a player. The fork block takes an optional clock argument so all timed waits align to the same TempoClock.
Examples
t = TempoClock(76/60);
{
Pbind(\note, Pseq([60,62,64],4), \dur,0.25).play(t);
2.wait;
Pbind(\note, Pseq([48,50,52],4), \dur,0.25).play(t);
}.fork(t);
Assessment
Write a fork block that starts a hi-hat pattern immediately, adds a bass line 1 beat later, and adds a melody 4 beats after the bass. All share one TempoClock at 120 BPM.