sclang: ServerShmInterface - try to avoid multiple destructor calls
[supercollider.git] / HelpSource / Classes / PbindProxy.schelp
blob9aede30d2c55e1d5d3bc97f0373e85250f228a19
1 class:: PbindProxy
2 summary:: incremental event pattern reference
3 categories:: Libraries>JITLib>Patterns
4 related:: Classes/Pbindef, Classes/Pdef
6 description::
7 keeps a reference to a link::Classes/Pbind:: in which single keys can be replaced. It plays on when the old stream ended and a new stream is set and schedules the changes to the beat.
9 ClassMethods::
11 method::new
12 create a new instance of PbindProxy with the given patternpairs
14 InstanceMethods::
16 method::source
17 returns the wrapper for the Pbind
19 method::set
20 set the given patternpairs.
22 method::at
23 return a pattern at that key. this can be used to set quant value individually, so different elementary patterns can be quantized differently.
24 code::
25 x.at(\freq).quant = 2;
28 method::quant
29 set the quant of all elementary patterns, or return the quant value of the source pattern.
31 Examples::
33 code::
35 SynthDef("Pdefhelp", { arg out, freq, sustain=1, amp=1, pan;
36         var env, u=1;
37         env = EnvGen.kr(Env.perc(0.03, sustain), 1, doneAction:2);
38         5.do { var d; d = exprand(0.01, 1); u = SinOsc.ar(d * 300, u, rrand(0.1,1.2) * d, 1) };
39         Out.ar(out, Pan2.ar(SinOsc.ar(u + 1 * freq, 0, amp * env), pan));
40 }).add;
42 s.boot;
45 x = PbindProxy.new;
46 x.set(\instrument, \Pdefhelp);
48 x.play;
50 x.set(\degree, Pseq([0, 2, 5b, 1b], inf));
51 x.set(\dur, 0.1);
52 x.set(\degree, Pseq([1b, 5, 3, 1b, 6, 2, 5, 0, 3, 0, 2], inf));
53 x.set(\legato, Prand([1.0, 2.4, 0.2], inf), \mtranspose, -3);
54 x.set(\mtranspose, nil); // remove key
56 x.set(\degree, Pseq([1, 2, 3, 4, 5, 6], 1));
57 x.play;
59 x.set( \degree, Pseq([1, 2, 3, 4, 5, 6], 3), \dur, 0.02);
60 x.play;
62 x.set(\degree, Pseq([1, 2, 3, 4, 5, 6], 3), \dur, 0.1);
63 x.play;
66 // embed in other patterns:
68 x.set(\degree, Pseq([1b, 5, 3, 1b, 6, 2, 5, 0, 3, 0, 2], inf));
69 Ppar([
71 Pbindf(x, \ctranspose, 4)
72 ]).play;
76 x.set(\degree, Pseq([1b, 5, 1b, 4, 0], inf), \dur, 0.4);