supernova: allocators - fix construct method
[supercollider.git] / Help / Streams-Patterns-Events / Patterns / Pbindf.html
blobf14783d4b71f917a69f5d88802f2ae7802e4955c
1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
2 <html>
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5 <meta http-equiv="Content-Style-Type" content="text/css">
6 <title></title>
7 <meta name="Generator" content="Cocoa HTML Writer">
8 <meta name="CocoaVersion" content="1038.25">
9 <style type="text/css">
10 p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica}
11 p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Helvetica; min-height: 22.0px}
12 p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #0000ee}
13 p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px}
14 p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Helvetica}
15 p.p6 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 9.0px Monaco; min-height: 12.0px}
16 p.p7 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 12.0px Helvetica}
17 p.p8 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 12.0px Helvetica; min-height: 14.0px}
18 p.p9 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; min-height: 12.0px}
19 p.p10 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco}
20 p.p11 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #bf0000}
21 p.p12 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #0000bf}
22 p.p13 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #007300}
23 span.s1 {font: 18.0px Helvetica}
24 span.s2 {color: #000000}
25 span.s3 {color: #0021e7}
26 span.s4 {color: #0000ff}
27 span.s5 {text-decoration: underline}
28 span.s6 {text-decoration: underline ; color: #0000ee}
29 span.s7 {color: #0000bf}
30 span.s8 {color: #007300}
31 span.s9 {color: #bf0000}
32 span.Apple-tab-span {white-space:pre}
33 </style>
34 </head>
35 <body>
36 <p class="p1"><span class="s1"><b>Pbindf<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></b></span><b>bind several value patterns to one existing event stream by binding keys to values</b></p>
37 <p class="p2"><b><span class="Apple-tab-span"> </span></b></p>
38 <p class="p3"><span class="s2"><b>Inherits from: </b><a href="../../Core/Object.html"><b>Object</b></a><b> : </b><a href="../../Core/Kernel/AbstractFunction.html"><b>AbstractFunction</b></a><b> : </b><a href="Pattern.html"><b>Pattern</b></a></span><span class="s3"><b> : </b><a href="FilterPattern.html"><span class="s4"><b>FilterPattern</b></span></a></span></p>
39 <p class="p4"><br></p>
40 <p class="p1"><b>Pbindf</b> 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.<span class="Apple-converted-space"> </span></p>
41 <p class="p4"><br></p>
42 <p class="p1">The patterns bound to keys are referred to as <i>value patterns</i> and the Pbindf itself is termed an <i>event pattern.</i></p>
43 <p class="p4"><br></p>
44 <p class="p3"><span class="s2">see also <a href="Pbind.html"><span class="s5">Pbind</span></a></span><span class="s4">, <a href="Pchain.html"><span class="s6">Pchain</span></a></span></p>
45 <p class="p4"><span class="Apple-tab-span"> </span></p>
46 <p class="p5"><b>Creation / Class Methods</b></p>
47 <p class="p6"><br></p>
48 <p class="p7"><b><span class="Apple-tab-span"> </span>*new (pattern, key1, pattern1, key2, pattern2 ...)</b></p>
49 <p class="p7"><b><span class="Apple-tab-span"> </span></b><span class="Apple-tab-span"> </span>The arguments to Pbindf is the initial pattern followed by an alternating sequence of keys and patterns.</p>
50 <p class="p7"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>A pattern can also be bound to an array of keys.<span class="Apple-converted-space">  </span>In this case, the pattern must specify</p>
51 <p class="p7"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>a sequence whose elements are arrays with at least as many elements as there are keys.</p>
52 <p class="p4"><br></p>
53 <p class="p1"><b>Examples</b></p>
54 <p class="p8"><br></p>
55 <p class="p9"><br></p>
56 <p class="p10">(</p>
57 <p class="p10">a = <span class="s7">Pbind</span>(<span class="s8">\x</span>, <span class="s7">Pseq</span>([1, 2, 3]), <span class="s8">\zzz</span>, 9000); <span class="s9">// input stream</span></p>
58 <p class="p10">b = <span class="s7">Pbindf</span>(a, <span class="s8">\y</span>, <span class="s7">Prand</span>([100, 300, 200], <span class="s7">inf</span>), <span class="s8">\zzz</span>, 99);</p>
59 <p class="p10">x = b.asStream;</p>
60 <p class="p10">)</p>
61 <p class="p9"><br></p>
62 <p class="p11"><span class="s2">x.next(()); </span>// pass in an event ()</p>
63 <p class="p10">x.next(());</p>
64 <p class="p10">x.next(());</p>
65 <p class="p10">x.next(()); <span class="s9">// end: nil</span></p>
66 <p class="p9"><br></p>
67 <p class="p9"><br></p>
68 <p class="p9"><br></p>
69 <p class="p11">// sound examples</p>
70 <p class="p9"><br></p>
71 <p class="p11">// using the default synth def</p>
72 <p class="p10">a = <span class="s7">Pbind</span>(<span class="s8">\dur</span>, 0.1);</p>
73 <p class="p10"><span class="s7">Pbindf</span>(a, <span class="s8">\freq</span>, <span class="s7">Prand</span>([300, 500, 231.2, 399.2], <span class="s7">inf</span>)).play;</p>
74 <p class="p10"><span class="s7">Pbindf</span>(a, <span class="s8">\freq</span>, <span class="s7">Prand</span>([1, 1.2, 2, 2.5, 3, 4], <span class="s7">inf</span>) * 200).play;</p>
75 <p class="p9"><br></p>
76 <p class="p9"><br></p>
77 <p class="p10">(</p>
78 <p class="p11">// a SynthDef</p>
79 <p class="p12">SynthDef<span class="s2">(</span><span class="s8">\test</span><span class="s2">, { </span>| out, freq = 440, amp = 0.1, nharms = 10, pan = 0, gate = 1 |</p>
80 <p class="p10"><span class="Apple-tab-span"> </span><span class="s7">var</span> audio = <span class="s7">Blip</span>.ar(freq, nharms, amp);</p>
81 <p class="p10"><span class="Apple-tab-span"> </span><span class="s7">var</span> env = <span class="s7">Linen</span>.kr(gate, doneAction: 2);</p>
82 <p class="p10"><span class="Apple-tab-span"> </span><span class="s7">OffsetOut</span>.ar(out, <span class="s7">Pan2</span>.ar(audio, pan, env) );</p>
83 <p class="p10">}).add;</p>
84 <p class="p10">);</p>
85 <p class="p9"><br></p>
86 <p class="p13"><span class="s2">a = </span><span class="s7">Pbind</span><span class="s2">(</span>\instrument<span class="s2">, </span>\test<span class="s2">, </span>\dur<span class="s2">, 0.1);</span></p>
87 <p class="p9"><br></p>
88 <p class="p10"><span class="s7">Pbindf</span>(a, <span class="s8">\freq</span>, <span class="s7">Prand</span>([1, 1.2, 2, 2.5, 3, 4], <span class="s7">inf</span>) * 200).play;</p>
89 <p class="p9"><br></p>
90 </body>
91 </html>