supernova: allocators - fix construct method
[supercollider.git] / Help / Streams-Patterns-Events / Patterns / Pdfsm.html
blob21894704912eb3ccff3873e04ec1e43e151ffa29
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: 12.0px Helvetica; min-height: 14.0px}
12 p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #ad140d}
13 p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; min-height: 12.0px}
14 p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco}
15 p.p6 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #ad140d}
16 p.p7 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #2c7014}
17 p.p8 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #001bb9}
18 span.s1 {font: 18.0px Helvetica}
19 span.s2 {font: 11.0px Helvetica}
20 span.s3 {color: #001bb9}
21 span.s4 {color: #000000}
22 span.s5 {color: #2c7014}
23 span.s6 {color: #ad140d}
24 span.Apple-tab-span {white-space:pre}
25 </style>
26 </head>
27 <body>
28 <p class="p1"><span class="s1"><b>Pdfsm<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></b></span><b>deterministic finite state machine</b></p>
29 <p class="p2"><br></p>
30 <p class="p1"><b>superclass: </b>ListPattern<span class="s2"><b><span class="Apple-converted-space"> </span></b></span></p>
31 <p class="p2"><br></p>
32 <p class="p2"><br></p>
33 <p class="p1">Pdfsm is a deterministic finite state machine with signal input (written by by ccos).</p>
34 <p class="p2"><br></p>
35 <p class="p1"><b>list <span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></b>a list consisting of the stream which gives input signals to determine state<span class="Apple-converted-space"> </span></p>
36 <p class="p1"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>transitions, and then dictionary entries, one for each state, mapping the destinattion</p>
37 <p class="p1"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>state and yield streams to those input signals.</p>
38 <p class="p2"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p>
39 <p class="p1"><b>startState</b><span class="Apple-tab-span"> </span>an integer index for the state to start with. defaults to 0.</p>
40 <p class="p2"><br></p>
41 <p class="p1"><b>repeats</b> <span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>an integer giving the number of times the pattern should cycle.</p>
42 <p class="p1"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>a cycle ends when the <b>signal stream</b> ends or <span class="s3">nil</span> is given for the destination<span class="Apple-converted-space"> </span></p>
43 <p class="p1"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>state to a signal value, see below. defaults to 1</p>
44 <p class="p2"><br></p>
45 <p class="p2"><br></p>
46 <p class="p2"><br></p>
47 <p class="p2"><br></p>
48 <p class="p1"><b>list structure:</b></p>
49 <p class="p2"><br></p>
50 <p class="p1"><span class="Apple-tab-span"> </span>[</p>
51 <p class="p1"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><b>signal stream <span class="Apple-tab-span"> </span></b>can be a stream of anything<b> </b>which can serve as a key for</p>
52 <p class="p1"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>an associative collection. integers, symbols, etc...</p>
53 <p class="p1"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>asStream is called on this for each repeat.</p>
54 <p class="p1"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><b>states <span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></b>states should be an instance of <a href="../../Collections/IdentityDictionary.html"><span class="s3">IdentityDictionary</span></a>, <a href="../../Collections/Event.html"><span class="s3">Event</span></a></p>
55 <p class="p1"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>or some other associative collection</p>
56 <p class="p1"><span class="Apple-tab-span"> </span>]</p>
57 <p class="p2"><br></p>
58 <p class="p1"><b>list syntax:</b></p>
59 <p class="p2"><br></p>
60 <p class="p1"><span class="Apple-tab-span"> </span>[<span class="Apple-tab-span"> </span></p>
61 <p class="p1"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><b>signal stream,</b><span class="Apple-tab-span"> </span></p>
62 <p class="p3"><span class="s4"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>( </span>// state 0,<span class="Apple-converted-space"> </span></p>
63 <p class="p1"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><b>signal value</b><span class="Apple-converted-space">  </span>:<span class="Apple-converted-space">  </span>[<b>destination state, return stream or pattern</b>],</p>
64 <p class="p1"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><b>signal value</b><span class="Apple-converted-space">  </span>:<span class="Apple-converted-space">  </span>[<b>destination state, return stream or pattern</b>]</p>
65 <p class="p1"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>),</p>
66 <p class="p3"><span class="s4"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>... </span>// state 1 ... N</p>
67 <p class="p1"><span class="Apple-tab-span"> </span>]</p>
68 <p class="p2"><span class="Apple-tab-span"> </span></p>
69 <p class="p1">Any number of states can be given, and are indexed by the order in which they are given.</p>
70 <p class="p2"><br></p>
71 <p class="p1">If the fsm is in state x and it receives a <b>signal value</b> y it looks up y in the state dictionary<span class="Apple-converted-space"> </span></p>
72 <p class="p1">supplied for x, if there is no y entry, it looks for a <span class="s5">\default</span> entry and uses that.<span class="Apple-converted-space"> </span></p>
73 <p class="p2"><br></p>
74 <p class="p1">The next state is then set to <b>destination state</b>, and the stream yielded is given by <b>return stream or pattern.</b></p>
75 <p class="p1">that is unless the <b>destination state</b> is given as <span class="s3">nil</span>, or if a <b>destination state</b> is given for which you have<b> </b>not<span class="Apple-converted-space"> </span></p>
76 <p class="p1">supplied a dictionary - in both cases the current cycle ends and any remaining repeats are executed.</p>
77 <p class="p1">If there is no <b>signal value</b> given for a particular signal, and no <span class="s5">\default</span> is supplied then one will get a runtime error.</p>
78 <p class="p4"><br></p>
79 <p class="p5">(</p>
80 <p class="p5"><span class="Apple-tab-span"> </span>p = <span class="s3">Pdfsm</span>(</p>
81 <p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>[</p>
82 <p class="p6"><span class="s4"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span><span class="s3">Pseq</span><span class="s4">( [</span><span class="s5">\foo</span><span class="s4">,</span><span class="s5">\bar</span><span class="s4">], 2 ), </span>// foobar signals<span class="Apple-tab-span"> </span></p>
83 <p class="p6"><span class="s4"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>( </span>// state 0</p>
84 <p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s5">\foo</span> : [ 1, <span class="s3">Pseq</span>([ 0, 1 ], 2 ) ]</p>
85 <p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>),</p>
86 <p class="p6"><span class="s4"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>( </span>// state 1</p>
87 <p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s5">\bar</span> : [ 0, 3 ]</p>
88 <p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>)</p>
89 <p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>],</p>
90 <p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>0,<span class="Apple-converted-space">   </span></p>
91 <p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>2</p>
92 <p class="p5"><span class="Apple-tab-span"> </span>).asStream;</p>
93 <p class="p4"><span class="Apple-tab-span"> </span></p>
94 <p class="p5"><span class="Apple-tab-span"> </span>11.do({ p.next.postln });</p>
95 <p class="p5">)</p>
96 <p class="p2"><br></p>
97 <p class="p5">(</p>
98 <p class="p7"><span class="s3">SynthDef</span><span class="s4">(</span>\help_Pdfsm1<span class="s4">,<span class="Apple-converted-space"> </span></span></p>
99 <p class="p5"><span class="Apple-tab-span"> </span>{ <span class="s3">arg</span> out=0, freq=440, sustain=0.05;</p>
100 <p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s3">var</span> env;</p>
101 <p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>env = <span class="s3">EnvGen</span>.kr(<span class="s3">Env</span>.perc(0.01, sustain, 0.2), doneAction:2);</p>
102 <p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s3">Out</span>.ar(out, <span class="s3">SinOsc</span>.ar([freq, freq + 0.1.rand2], 0, env))</p>
103 <p class="p5"><span class="Apple-tab-span"> </span>}).add;</p>
104 <p class="p5">)</p>
105 <p class="p4"><br></p>
106 <p class="p5">(</p>
107 <p class="p5"><span class="s3">var</span> p;</p>
108 <p class="p5">p = <span class="s3">Pdfsm</span>(</p>
109 <p class="p5"><span class="Apple-tab-span"> </span>[</p>
110 <p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s3">Prand</span>([0,1,2],<span class="s3">inf</span>), <span class="Apple-tab-span"> </span><span class="s6">// signalStream</span></p>
111 <p class="p4"><span class="Apple-tab-span"> </span></p>
112 <p class="p8"><span class="s4"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span>IdentityDictionary<span class="s4">[ <span class="Apple-tab-span"> </span></span><span class="s6">// state 0</span></p>
113 <p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>0 -&gt; [ 2, <span class="s3">Pseq</span>([67,68,69], 2) ],</p>
114 <p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>1 -&gt; [ 0, 66 ],</p>
115 <p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>2 -&gt; [ 1, 65 ]</p>
116 <p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>],</p>
117 <p class="p8"><span class="s4"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span>IdentityDictionary<span class="s4">[ <span class="Apple-tab-span"> </span></span><span class="s6">// state 1</span></p>
118 <p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>1 -&gt; [ 1, <span class="s3">Pseq</span>([69,68,67],2) ],</p>
119 <p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s5">\default</span> -&gt; [ 0, 70 ]</p>
120 <p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>],</p>
121 <p class="p8"><span class="s4"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span>IdentityDictionary<span class="s4">[</span></p>
122 <p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>0 -&gt; [ 0, 71 ],</p>
123 <p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>1 -&gt; [ 0, 72 ],</p>
124 <p class="p6"><span class="s4"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>2 -&gt; [ </span><span class="s3">nil</span><span class="s4"> ]<span class="Apple-converted-space">  </span></span>// signalStream is infinitely long,</p>
125 <p class="p6"><span class="s4"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span>// so the fsm only ends because of this nil</p>
126 <p class="p6"><span class="s4"><span class="Apple-tab-span"> </span></span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>// 2 -&gt; [nil, nil] is also fine</p>
127 <p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>]</p>
128 <p class="p5"><span class="Apple-tab-span"> </span>],</p>
129 <p class="p6"><span class="s4"><span class="Apple-tab-span"> </span>1, <span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span>// startState</p>
130 <p class="p6"><span class="s4"><span class="Apple-tab-span"> </span>1 <span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span>// repeats<span class="Apple-converted-space"> </span></p>
131 <p class="p5">).asStream;</p>
132 <p class="p4"><br></p>
133 <p class="p8">Routine<span class="s4">({</span></p>
134 <p class="p5"><span class="Apple-tab-span"> </span><span class="s3">var</span> freq;</p>
135 <p class="p5"><span class="Apple-tab-span"> </span>while({ (freq = p.next.postln).notNil },{</p>
136 <p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s3">Synth</span>(<span class="s5">\help_Pdfsm1</span>, [ <span class="s5">\freq</span>, freq.midicps ]);</p>
137 <p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>0.1.wait;</p>
138 <p class="p5"><span class="Apple-tab-span"> </span>})</p>
139 <p class="p5">}).play;</p>
140 <p class="p5">)</p>
141 <p class="p4"><br></p>
142 <p class="p5">(</p>
143 <p class="p7"><span class="s3">SynthDef</span><span class="s4">(</span>\help_Pdfsm2<span class="s4">,<span class="Apple-converted-space"> </span></span></p>
144 <p class="p5"><span class="Apple-tab-span"> </span>{ <span class="s3">arg</span> freq, gate=1;</p>
145 <p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s3">var</span> n=8, env, osc;</p>
146 <p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>env = <span class="s3">Linen</span>.kr( gate, 0.01, 1, 0.03, 2 );</p>
147 <p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>osc = {<span class="s3">Mix</span>.fill( n, { <span class="s3">arg</span> i;</p>
148 <p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s3">FSinOsc</span>.ar(freq + <span class="s3">Rand</span>(-2.0,2.0), <span class="s3">Rand</span>(0, 0.05pi)) ring4:</p>
149 <p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s3">FSinOsc</span>.ar(freq * (i+1));</p>
150 <p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>})}.dup * <span class="s3">FSinOsc</span>.kr(<span class="s3">Rand</span>(1.5,4.5),{<span class="s3">Rand</span>(-0.1pi,0.1pi)}.dup,0.6,env*0.4);</p>
151 <p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s3">Out</span>.ar(0, env * osc / (n*4)<span class="Apple-converted-space">  </span>)</p>
152 <p class="p5"><span class="Apple-tab-span"> </span>}).add;</p>
153 <p class="p5">)</p>
154 <p class="p4"><br></p>
155 <p class="p5">(</p>
156 <p class="p5"><span class="s3">var</span> n=3, base, penult;</p>
157 <p class="p4"><br></p>
158 <p class="p5">base = [3,4,4,0];</p>
159 <p class="p4"><br></p>
160 <p class="p5">for( 1, n, { <span class="s3">arg</span> i;</p>
161 <p class="p5"><span class="Apple-tab-span"> </span>penult = <span class="s3">Pbind</span>( <span class="s5">\degree</span>, <span class="s3">Pshuf</span>(base - (i*5), 2), <span class="s5">\dur</span>, <span class="s3">Pseq</span>([0.2],2) );</p>
162 <p class="p8"><span class="s4"><span class="Apple-tab-span"> </span></span>Pset<span class="s4">(</span></p>
163 <p class="p7"><span class="s4"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span>\instrument<span class="s4">, </span>\help_Pdfsm2<span class="s4">,</span></p>
164 <p class="p8"><span class="s4"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span>Pdfsm<span class="s4">(</span></p>
165 <p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>[</p>
166 <p class="p6"><span class="s4"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span><span class="s3">Pseq</span><span class="s4">([<span class="Apple-tab-span"> </span></span>// signalStream</p>
167 <p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s3">Pn</span>(1,22 + i),</p>
168 <p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s3">Pn</span>(0,4),</p>
169 <p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s3">Pn</span>(1,8),</p>
170 <p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s3">Pseq</span>([<span class="Apple-converted-space"> <span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span></p>
171 <p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s3">Pn</span>(0,3),<span class="Apple-converted-space"> </span></p>
172 <p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s3">Prand</span>([0,1],8),<span class="Apple-converted-space"> </span></p>
173 <p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s3">Pn</span>(1,8)<span class="Apple-converted-space"> </span></p>
174 <p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>], 3 ),</p>
175 <p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s3">Pn</span>(2,2)</p>
176 <p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>], 1 ),<span class="Apple-converted-space"> </span></p>
177 <p class="p6"><span class="s4"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>(<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span>// state 0</p>
178 <p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>0 : [ 0, <span class="s3">Pbind</span>( <span class="s5">\degree</span>, <span class="s3">Pseq</span>(base - i, 1), <span class="s5">\dur</span>, <span class="s3">Pxrand</span>([0.2,0.3],4) ) ],</p>
179 <p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>1 : [ 1, <span class="s3">Pbind</span>(<span class="Apple-converted-space"> </span></p>
180 <p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s5">\degree</span>, <span class="s3">Pseq</span>(base.reverse - (i*2), 2),<span class="Apple-converted-space"> </span></p>
181 <p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s5">\dur</span>, <span class="s3">Pseq</span>([0.2,0.21],1)<span class="Apple-converted-space"> </span></p>
182 <p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>)<span class="Apple-converted-space"> </span></p>
183 <p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>],</p>
184 <p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>2 :<span class="Apple-tab-span"> </span>[ 2, penult ]</p>
185 <p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>),</p>
186 <p class="p6"><span class="s4"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>(<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span>// state 1</p>
187 <p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>0 : [ 0, <span class="s3">Pbind</span>( <span class="s5">\degree</span>, <span class="s3">Pshuf</span>(base * i.neg, 8), <span class="s5">\dur</span>, <span class="s3">Pseq</span>([0.08],8) ) ],</p>
188 <p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>1 : [ 0, <span class="s3">Pbind</span>( <span class="s5">\degree</span>, <span class="s3">Pseq</span>(base - (i*3),3+i), <span class="s5">\dur</span>, <span class="s3">Pseq</span>([0.11],3+i) ) ],</p>
189 <p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>2 : [ 2, penult ]</p>
190 <p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>),</p>
191 <p class="p6"><span class="s4"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>(<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span>// state 2</p>
192 <p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s5">\default</span> : [ 2, <span class="s3">Pbind</span>(<span class="Apple-converted-space"> </span></p>
193 <p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s5">\degree</span>, <span class="s3">Prand</span>(base - (i*7), 5),<span class="Apple-converted-space"> </span></p>
194 <p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s5">\dur</span>, <span class="s3">Prand</span>([0.6,0.8],5)<span class="Apple-converted-space"> </span></p>
195 <p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>)<span class="Apple-converted-space"> </span></p>
196 <p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>]</p>
197 <p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>)</p>
198 <p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>],</p>
199 <p class="p6"><span class="s4"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>i % 2 <span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span>// startState</p>
200 <p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>)</p>
201 <p class="p5"><span class="Apple-tab-span"> </span>).play;</p>
202 <p class="p5">})</p>
203 <p class="p5">)</p>
204 <p class="p4"><br></p>
205 <p class="p4"><br></p>
206 </body>
207 </html>