Explicitly include a boost "windows" folder even on linux
[supercollider.git] / HelpSource / Classes / Pbindf.schelp
blob3777892a3c731f3780c37ee9b7bb74355d2796cd
1 class:: Pbindf
2 summary:: bind several value patterns to one existing event stream by binding keys to valueskeys to values
3 related:: Classes/Pattern, Classes/Event, Classes/Pbind, Classes/Pchain
4 categories:: Streams-Patterns-Events>Patterns>Composition
6 description::
8 Pbindf adds several value streams into one existing event stream. Each value stream is assigned to one or more keys in the resulting event stream, overriding any values from the input stream.
10 The patterns bound to keys are referred to as value patterns and the Pbindf itself is termed an emphasis::event pattern::.
12 ClassMethods::
14 method::new
15 The arguments to Pbindf is the initial pattern followed by an alternating sequence of keys and patterns. A pattern can also be bound to an array of keys. In this case, the pattern must specify a sequence whose elements are arrays with at least as many elements as there are keys.
17 Examples::
19 code::
21 a = Pbind(\x, Pseq([1, 2, 3]), \zzz, 9000); // input stream
22 b = Pbindf(a, \y, Prand([100, 300, 200], inf), \zzz, 99);
23 x = b.asStream;
26 x.next(()); // pass in an event ()
27 x.next(());
28 x.next(());
29 x.next(()); // end: nil
33 // sound examples
35 // using the default synth def
36 a = Pbind(\dur, 0.1);
37 Pbindf(a, \freq, Prand([300, 500, 231.2, 399.2], inf)).play;
38 Pbindf(a, \freq, Prand([1, 1.2, 2, 2.5, 3, 4], inf) * 200).play;
42 // a SynthDef
43 SynthDef(\test, { | out, freq = 440, amp = 0.1, nharms = 10, pan = 0, gate = 1 |
44         var audio = Blip.ar(freq, nharms, amp);
45         var env = Linen.kr(gate, doneAction: 2);
46         OffsetOut.ar(out, Pan2.ar(audio, pan, env) );
47 }).add;
50 a = Pbind(\instrument, \test, \dur, 0.1);
52 Pbindf(a, \freq, Prand([1, 1.2, 2, 2.5, 3, 4], inf) * 200).play;