2 summary:: isolate a pattern by restricting it to a bus
3 related:: Classes/Pfx, Classes/Pfxb, Classes/Pgroup
4 categories:: Streams-Patterns-Events>Patterns>Server Control
8 Starts a new group and plays the pattern in this group, on a private bus. The group and the bus is released when the stream has ended.
10 This is useful in order to isolate a link::Classes/Pfx::.
17 delay to allow inner patterns to decay.
20 fading out the inner pattern after dur over this time.
23 number of channels of the bus (should match the synthdef).
32 SynthDef(\echo, { arg out=0, maxdtime=0.2, dtime=0.2, decay=2, gate=1;
34 env = Linen.kr(gate, 0.05, 1, 0.1, 2);
36 XOut.ar(out, env, CombL.ar(in * env, maxdtime, dtime, decay, 1, in));
37 }, [\ir, \ir, 0.1, 0.1, 0]).add;
39 SynthDef(\distort, { arg out=0, pregain=40, amp=0.2, gate=1;
41 env = Linen.kr(gate, 0.05, 1, 0.1, 2);
42 XOut.ar(out, env, (In.ar(out, 2) * pregain).distort * amp);
43 }, [\ir, 0.1, 0.1, 0]).add;
45 SynthDef(\wah, { arg out=0, gate=1;
47 env = Linen.kr(gate, 0.05, 1, 0.4, 2);
49 XOut.ar(out, env, RLPF.ar(in, LinExp.kr(LFNoise1.kr(0.3), -1, 1, 200, 8000), 0.1).softclip * 0.8);
55 p = Pbind(\degree, Prand((0..7),12), \dur, 0.3, \legato, 0.2);
57 q = Pfx(p, \echo, \dtime, 0.2, \decay, 3);
59 r = Pfx(q, \distort, \pregain, 20, \amp, 0.25);
64 [p, q, r, o].collect(Pbus(_)); // play each in a different bus.
70 // compare to playing them together on one bus.
73 p = Pbind(\degree, Prand((0..7),12), \dur, 0.3, \legato, 0.2);
75 q = Pfx(p, \echo, \dtime, 0.2, \decay, 3);
77 r = Pfx(q, \distort, \pregain, 20, \amp, 0.25);
81 Ppar([p, q, r, o]).play;