1 <!DOCTYPE html PUBLIC
"-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
4 <meta http-equiv=
"Content-Type" content=
"text/html; charset=UTF-8">
5 <meta http-equiv=
"Content-Style-Type" content=
"text/css">
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: 9.0px Monaco
; min-height: 12.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
; min-height: 17.0px}
15 p
.p6
{margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Helvetica
}
16 p
.p7
{margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco
}
17 p
.p8
{margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco
; color: #cd1612}
18 p
.p9
{margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 9.0px Monaco
; min-height: 12.0px}
19 p
.p10
{margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 12.0px Helvetica
}
20 p
.p11
{margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 12.0px Helvetica
; min-height: 14.0px}
21 p
.p12
{margin: 0.0px 0.0px 0.0px 85.0px; text-indent: -85.0px; font: 12.0px Helvetica
}
22 p
.p13
{margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 9.0px Monaco
; color: #cd1612}
23 p
.p14
{margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 9.0px Monaco
}
24 p
.p15
{margin: 0.0px 0.0px 0.0px 85.0px; text-indent: -85.0px; font: 12.0px Helvetica
; min-height: 14.0px}
25 p
.p16
{margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco
; color: #bf0000; min-height: 12.0px}
26 p
.p17
{margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 9.0px Monaco
; color: #cd1612; min-height: 12.0px}
27 p
.p18
{margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 14.0px Helvetica
}
28 p
.p19
{margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 12.0px Helvetica
; color: #0a26c0; min-height: 14.0px}
29 p
.p20
{margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 13.0px Helvetica
; min-height: 16.0px}
30 p
.p21
{margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco
; color: #00831c; min-height: 12.0px}
31 p
.p22
{margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco
; color: #0b28c5}
32 p
.p23
{margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco
; color: #bf0000}
33 p
.p24
{margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Futura
; min-height: 15.0px}
34 p
.p25
{margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco
; color: #007300}
35 span
.s1
{font: 18.0px Helvetica
}
36 span
.s2
{font: 18.0px Futura
}
37 span
.s3
{color: #000000}
38 span
.s4
{text-decoration: underline
}
39 span
.s5
{color: #0000bf}
40 span
.s6
{color: #0000ee}
41 span
.s7
{color: #0a25b9}
42 span
.s8
{text-decoration: underline
; color: #1032ee}
43 span
.s9
{color: #1135f9}
44 span
.s10
{color: #0a26c0}
45 span
.s11
{color: #0b28c6}
46 span
.s12
{color: #00831b}
47 span
.s13
{color: #cd1612}
48 span
.s14
{font: 12.0px Helvetica
; color: #000000}
49 span
.s15
{color: #0b28c5}
50 span
.s16
{font: 12.0px Helvetica
}
51 span
.s17
{text-decoration: underline
; color: #0a26c0}
52 span
.s18
{color: #007300}
53 span
.s19
{color: #606060}
54 span
.s20
{color: #bf0000}
55 span
.Apple-tab-span
{white-space:pre
}
59 <p class=
"p1"><span class=
"s1"><b>NodeProxy
</b></span><span class=
"s2"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></span><b>a reference on a server
<span class=
"Apple-converted-space"> </span></b></p>
60 <p class=
"p2"><br></p>
61 <p class=
"p3"><span class=
"s3"><b>Inherits from:
<span class=
"Apple-converted-space"> </span></b> <a href=
"../../../Core/Object.html"><span class=
"s4">Object
</span></a></span><span class=
"s5"> :
<a href=
"../../../Core/Kernel/AbstractFunction.html"><span class=
"s6">AbstractFunction
</span></a> :
</span><span class=
"s3"> <a href=
"BusPlug.html"><span class=
"s4">BusPlug
</span></a></span></p>
62 <p class=
"p2"><br></p>
63 <p class=
"p2"><br></p>
64 <p class=
"p1">Generally a
<b>proxy
</b> is a placeholder for something.
<span class=
"Apple-converted-space"> </span>A node proxy is a placeholder for something
<b>playing on a server
</b> that writes to a limited number of busses (e.g. a synth or an event stream). NodeProxy objects can be replaced and recombined while they play. Also they can be used to build a larger structure which is used and modified later on. Overview:
<a href=
"../JITLib.html"><span class=
"s7">JITLib
</span></a></p>
65 <p class=
"p4"><br></p>
66 <p class=
"p1">NodeProxy is used internally in
<a href=
"../environments/ProxySpace.html"><span class=
"s8">ProxySpace
</span></a> and it is a superclass of
<a href=
"Ndef.html"><span class=
"s9">Ndef
</span></a>, allowing to easily access and combine a large number of placeholders.
</p>
67 <p class=
"p4"><br></p>
68 <p class=
"p1">Graphical editor for a node proxy:
<a href=
"../extras/NodeProxyEditor.html"><span class=
"s9">NodeProxyEditor
</span></a>.
</p>
69 <p class=
"p4"><br></p>
70 <p class=
"p1"><b>Note:
</b><span class=
"Apple-converted-space"> </span>NodeProxy plays on a
<i>private bus.
</i>If you want to
<b> hear
</b> the output, use
<b>play
</b> and
<b>stop
</b>.
</p>
71 <p class=
"p1">To free inner players and stop listen:
<span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><b>end
</b></p>
72 <p class=
"p1">Entirely removing all inner settings:
<span class=
"Apple-converted-space"> <span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></span><b>clear
</b></p>
73 <p class=
"p4"><br></p>
74 <p class=
"p4"><br></p>
75 <p class=
"p1"><b>Further reading:
</b></p>
76 <p class=
"p3"><span class=
"s4"><a href=
"../tutorials/the_lazy_proxy.html">the_lazy_proxy
</a></span></p>
77 <p class=
"p3"><span class=
"s4"><a href=
"../tutorials/jitlib_efficiency.html">jitlib_efficienc
</a></span><span class=
"s8">y
</span><span class=
"s10"><span class=
"Apple-converted-space"> </span></span></p>
78 <p class=
"p3"><span class=
"s4"><a href=
"../tutorials/jitlib_fading.html">jitlib_fading
</a></span></p>
79 <p class=
"p3"><span class=
"s4"><a href=
"../tutorials/jitlib_asCompileString.html">jitlib_asCompileString
</a></span></p>
80 <p class=
"p3"><span class=
"s4"><a href=
"NodeProxy_roles.html">NodeProxy_roles
</a></span></p>
81 <p class=
"p5"><br></p>
82 <p class=
"p5"><br></p>
83 <p class=
"p6"><b>First Example
</b></p>
84 <p class=
"p4"><br></p>
85 <p class=
"p7"><span class=
"Apple-tab-span"> </span>s.boot;
</p>
86 <p class=
"p2"><span class=
"Apple-tab-span"> </span></p>
87 <p class=
"p8"><span class=
"s3"><span class=
"Apple-tab-span"> </span>a =
</span><span class=
"s11">NodeProxy
</span><span class=
"s3">.new.play;
</span>// play to hardware output.
</p>
88 <p class=
"p8"><span class=
"s3"><span class=
"Apple-tab-span"> </span>a.fadeTime =
2;
</span>// fadeTime specifies crossfade
</p>
89 <p class=
"p8"><span class=
"s3"><span class=
"Apple-tab-span"> </span></span>// set the source
</p>
90 <p class=
"p7"><span class=
"Apple-tab-span"> </span>a.source = {
<span class=
"s11">SinOsc
</span>.ar([
350,
351.3],
0,
0.2) };
</p>
91 <p class=
"p7"><span class=
"Apple-tab-span"> </span>a.source = {
<span class=
"s11">Pulse
</span>.ar([
350,
351.3] /
4,
0.4) *
0.2 };
</p>
92 <p class=
"p7"><span class=
"Apple-tab-span"> </span>a.source =
<span class=
"s11">Pbind
</span>(
<span class=
"s12">\dur
</span>,
0.03,
<span class=
"s12">\freq
</span>,
<span class=
"s11">Pbrown
</span>(
0,
1,
0.1,
<span class=
"s11">inf
</span>).linexp(
0,
1,
200,
350));
</p>
93 <p class=
"p2"><span class=
"Apple-tab-span"> </span></p>
94 <p class=
"p7"><span class=
"Apple-tab-span"> </span>b =
<span class=
"s11">NodeProxy
</span>.new;
</p>
95 <p class=
"p7"><span class=
"Apple-tab-span"> </span>a.source = {
<span class=
"s11">Ringz
</span>.ar(b.ar, [
350,
351.3] *
8,
0.2) *
4 };
</p>
96 <p class=
"p7"><span class=
"Apple-tab-span"> </span>b.source = {
<span class=
"s11">Impulse
</span>.ar([
5,
7]/
2, [
0,
0.5]) };
</p>
97 <p class=
"p2"><span class=
"Apple-tab-span"> </span></p>
98 <p class=
"p8"><span class=
"s3"><span class=
"Apple-tab-span"> </span>a.clear(
3);
</span>// clear after
3 seconds
</p>
99 <p class=
"p7"><span class=
"Apple-tab-span"> </span>b.clear(
3);
</p>
100 <p class=
"p2"><span class=
"Apple-tab-span"> </span></p>
101 <p class=
"p4"><br></p>
102 <p class=
"p4"><br></p>
103 <p class=
"p6"><b>Creation / Class Methods
</b></p>
104 <p class=
"p9"><br></p>
105 <p class=
"p10"><b><span class=
"Apple-tab-span"> </span>*new(server, rate, numChannels, inputs)
</b></p>
106 <p class=
"p11"><b><span class=
"Apple-tab-span"> </span></b></p>
107 <p class=
"p10"><b><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></b>Return a new instance of NodeProxy.
</p>
108 <p class=
"p12"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><b>server
</b>- The server on which to run and where the bus is allocated (default: Server.default)
</p>
109 <p class=
"p12"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><b>rate
<span class=
"Apple-converted-space"> </span></b> - If given, proxy is initialized to this rate
</p>
110 <p class=
"p12"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><b>numChannels
<span class=
"Apple-converted-space"> </span></b> - If given, proxy is initialized to this number of channels
</p>
111 <p class=
"p12"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><b>inputs
<span class=
"Apple-converted-space"> </span></b> - If given, proxy is initialized with the given inputs as objects on subsequent slots.
<span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></p>
112 <p class=
"p11"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></p>
113 <p class=
"p13"><span class=
"s3"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></span>// new node proxy
</p>
114 <p class=
"p14"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>a =
<span class=
"s11">NodeProxy
</span>(s,
<span class=
"s12">\audio
</span>,
4);
</p>
115 <p class=
"p14"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>a.numChannels;
</p>
116 <p class=
"p13"><span class=
"s3"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>a.clear;
</span>// remove bus.
</p>
117 <p class=
"p14"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>a.numChannels;
<span class=
"s13">// nil.
</span></p>
118 <p class=
"p4"><br></p>
119 <p class=
"p10"><b><span class=
"Apple-tab-span"> </span>*audio(server, numChannels)
</b></p>
120 <p class=
"p11"><b><span class=
"Apple-tab-span"> </span></b></p>
121 <p class=
"p10"><b><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></b>Return a new audio rate NodeProxy of a given number of channels.
</p>
122 <p class=
"p12"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><b>server
</b>- The server on which to run and where the bus is allocated (default: Server.default)
</p>
123 <p class=
"p12"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><b>numChannels
<span class=
"Apple-converted-space"> </span></b> - If given, proxy is initialized to this number of channels (default:
2)
</p>
124 <p class=
"p15"><br></p>
125 <p class=
"p10"><b><span class=
"Apple-tab-span"> </span>*control(server, numChannels)
</b></p>
126 <p class=
"p11"><b><span class=
"Apple-tab-span"> </span></b></p>
127 <p class=
"p10"><b><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></b>Return a new control rate NodeProxy of a given number of channels.
</p>
128 <p class=
"p12"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><b>server
</b>- The server on which to run and where the bus is allocated (default: Server.default)
</p>
129 <p class=
"p12"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><b>numChannels
<span class=
"Apple-converted-space"> </span></b> - If given, proxy is initialized to this number of channels (default:
1)
<span class=
"Apple-tab-span"> </span></p>
130 <p class=
"p15"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></p>
131 <p class=
"p12"><span class=
"Apple-tab-span"> </span><b>*for(bus)
</b></p>
132 <p class=
"p11"><b><span class=
"Apple-tab-span"> </span></b></p>
133 <p class=
"p10"><b><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></b>Return a new instance of NodeProxy using a given Bus
</p>
134 <p class=
"p11"><br></p>
135 <p class=
"p11"><br></p>
136 <p class=
"p6"><b>Listening to the output
</b></p>
137 <p class=
"p4"><br></p>
138 <p class=
"p4"><br></p>
139 <p class=
"p10"><span class=
"Apple-tab-span"> </span><b>play(outbus, numChannels, target, multi, vol, fadeTime, addAction)
</b></p>
140 <p class=
"p10"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>plays to a bus index (
<b>outbus
</b>) with a number of channels (
<b>numChannels
</b>) within a
<b>target
</b> group, or a server.
</p>
141 <p class=
"p10"><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>multi
</b>: keep old links and add new one
</p>
142 <p class=
"p10"><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>vol
</b>: volume at which to monitor
</p>
143 <p class=
"p10"><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>fadeTime
</b>: fade in fade out time
</p>
144 <p class=
"p4"><span class=
"Apple-tab-span"> </span></p>
145 <p class=
"p1"><b><span class=
"Apple-tab-span"> </span>playN(outs, amps, ins, vol, fadeTime, group, addAction)
</b></p>
146 <p class=
"p1"><b><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>outs
<span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></b>array of destination channels
</p>
147 <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><b>amps
<span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></b>array of
<span class=
"Apple-converted-space"> </span>amplitudes for each channel
</p>
148 <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><b>outs
<span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></b>array of source channels
</p>
149 <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>see
<a href=
"playN.html"><span class=
"s5">playN
</span></a></p>
150 <p class=
"p4"><br></p>
151 <p class=
"p1"><b><span class=
"Apple-tab-span"> </span>stop(fadeTime)
</b></p>
152 <p class=
"p10"><b><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></b>stop to play out public channels (private channels keep playing as others might listen still) this stops the monitoring. To stop the objects playing, use
<b>free, release
</b></p>
153 <p class=
"p10"><b><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>fadeTime:
</b>decay time for this action
</p>
154 <p class=
"p4"><b><span class=
"Apple-tab-span"> </span></b></p>
155 <p class=
"p1"><b><span class=
"Apple-tab-span"> </span>end(fadeTime)
</b></p>
156 <p class=
"p1"><b><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></b>releases the synths and stops playback
</p>
157 <p class=
"p1"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><b>fadeTime:
</b>decay time for this action
</p>
158 <p class=
"p4"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></p>
159 <p class=
"p4"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></p>
160 <p class=
"p1"><b><span class=
"Apple-tab-span"> </span>ar(numChannels)
</b></p>
161 <p class=
"p1"><b><span class=
"Apple-tab-span"> </span>kr(numChannels)
</b></p>
162 <p class=
"p4"><b><span class=
"Apple-tab-span"> </span></b></p>
163 <p class=
"p1"><b><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></b>return a link to my output, which is limited by [numChannels]
</p>
164 <p class=
"p1"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>causes an uninitialized proxy to create a matching bus.
</p>
165 <p class=
"p4"><span class=
"Apple-tab-span"> </span></p>
166 <p class=
"p1"><span class=
"Apple-tab-span"> </span>normally ar defaults to stereo, kr to mono. this can be set in the classvars:
</p>
167 <p class=
"p1"><span class=
"Apple-tab-span"> </span><b>defaultNumAudio, defaultNumControl
</b></p>
168 <p class=
"p4"><span class=
"Apple-tab-span"> </span></p>
169 <p class=
"p5"><br></p>
170 <p class=
"p6"><b>Setting the source:
</b></p>
171 <p class=
"p10"><span class=
"Apple-tab-span"> </span>NodeProxy keeps a number of slots which can be sources and are mixed on the same bus.. The default source is the slot
0. All objects can be exchanged while running, and also before and after. Normally, the source is active immediately. If sources are to be exchanged
"quietly", set the node proxy to sleep (awake = false), or use the message prime().
</p>
172 <p class=
"p2"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></p>
173 <p class=
"p16"><br></p>
174 <p class=
"p6"><b>Supported sources:
</b></p>
175 <p class=
"p16"><span class=
"Apple-tab-span"> </span></p>
176 <p class=
"p16"><span class=
"Apple-tab-span"> </span></p>
177 <p class=
"p1"><span class=
"Apple-tab-span"> </span><a href=
"NodeProxy.html"><span class=
"s9">NodeProxy
</span></a><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>played by reading from the other node proxie's bus.
</p>
178 <p class=
"p1"><span class=
"Apple-tab-span"> </span><a href=
"../../../Core/Kernel/Function.html"><span class=
"s9">Function
</span></a><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>interpreted as ugen function, and plays a
<a href=
"../../../ServerArchitecture/Synth.html"><span class=
"s9">Synth
</span></a>, similar to Function.play.
</p>
179 <p class=
"p1"><span class=
"Apple-tab-span"> </span><a href=
"../../../Math/SimpleNumber.html"><span class=
"s9">SimpleNumber
</span></a><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>write this value to the bus continuously
</p>
180 <p class=
"p1"><span class=
"Apple-tab-span"> </span><a href=
"../../../ServerArchitecture/Bus.html"><span class=
"s9">Bus
</span></a><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>reads from the bus
</p>
181 <p class=
"p1"><span class=
"Apple-tab-span"> </span><a href=
"../../../ServerArchitecture/SynthDef.html"><span class=
"s9">SynthDef
</span></a><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>plays a
<a href=
"../../../ServerArchitecture/Synth.html"><span class=
"s9">Synth
</span></a> using the SynthDef. This is useful for triggering.
</p>
182 <p class=
"p1"><span class=
"Apple-tab-span"> </span><a href=
"../../../Core/Symbol.html"><span class=
"s9">Symbol
</span></a><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>plays a
<a href=
"../../../ServerArchitecture/Synth.html"><span class=
"s9">Synth
</span></a> from the SynthDef with this name. This is useful for triggering.
</p>
183 <p class=
"p1"><span class=
"Apple-tab-span"> </span><a href=
"../../../Streams-Patterns-Events/Patterns/Pattern.html"><span class=
"s9">Pattern
</span></a><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>played as event pattern (using
<a href=
"../../../Streams-Patterns-Events/Patterns/Pbind.html"><span class=
"s9">Pbind
</span></a> or other event patterns)
</p>
184 <p class=
"p1"><span class=
"Apple-tab-span"> </span><a href=
"../../../Streams-Patterns-Events/Stream.html"><span class=
"s9">Stream
</span></a><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>played as event stream (a stream returning events)
</p>
185 <p class=
"p1"><span class=
"Apple-tab-span"> </span>nil
<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><a href=
"../../../Core/Nil.html"><span class=
"s9">Nil
</span></a> removes all objects.
</p>
186 <p class=
"p1"><span class=
"Apple-tab-span"> </span><a href=
"../Patterns/Pdef.html"><span class=
"s9">Pdef
</span></a>,
<a href=
"../Patterns/EventPatternProxy.html"><span class=
"s9">EventPatternProxy
</span></a><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>played like a stream
</p>
187 <p class=
"p1"><span class=
"Apple-tab-span"> </span><a href=
"../../../Scheduling/Task.html"><span class=
"s9">Task
</span></a><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>played, no output is assigned.
</p>
188 <p class=
"p1"><span class=
"Apple-tab-span"> </span><a href=
"../Patterns/Tdef.html"><span class=
"s9">Tdef
</span></a><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>played like Task
</p>
189 <p class=
"p1"><span class=
"Apple-tab-span"> </span><a href=
"../../../Collections/Event.html"><span class=
"s9">Event
</span></a><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>played like in a pattern.
</p>
190 <p class=
"p4"><span class=
"Apple-tab-span"> </span></p>
191 <p class=
"p1"><span class=
"Apple-tab-span"> </span><b>Associations
</b>:
<span class=
"Apple-converted-space"> </span></p>
192 <p class=
"p1"><span class=
"Apple-tab-span"> </span>(\filter -
> func)
<span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>filter previous input (with post control)
</p>
193 <p class=
"p1"><span class=
"Apple-tab-span"> </span>(\filterIn -
> func)
<span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>filter previous input (with pre control)
</p>
194 <p class=
"p1"><span class=
"Apple-tab-span"> </span>(\set -
> event pattern)
<span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>set controls with the event keys of the pattern
</p>
195 <p class=
"p1"><span class=
"Apple-tab-span"> </span>(\setbus -
> event pattern)
<span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>set bus with an event pattern. Bus value is the \value key of each event.
</p>
196 <p class=
"p1"><span class=
"Apple-tab-span"> </span>(\setsrc -
> event pattern)
<span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>set the source with an event pattern. source is the \source key of event.
</p>
197 <p class=
"p1"><span class=
"Apple-tab-span"> </span>(\control -
> array or number)
<span class=
"Apple-tab-span"> </span>prepare an efficient way to set values by index
</p>
198 <p class=
"p1"><span class=
"Apple-tab-span"> </span>(\mix -
> func)
<span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>mix audio
</p>
199 <p class=
"p4"><span class=
"Apple-tab-span"> </span></p>
200 <p class=
"p1"><span class=
"Apple-tab-span"> </span><b>crucial library:
</b></p>
201 <p class=
"p1"><span class=
"Apple-tab-span"> </span><a href=
"../../crucial/Players/AbstractPlayer.html"><span class=
"s9">AbstractPlayer
</span></a><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>started in a separate bus, mapped to this bus
</p>
202 <p class=
"p1"><span class=
"Apple-tab-span"> </span><a href=
"../../crucial/Instr/Instr.html"><span class=
"s9">Instr
</span></a><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>converted to player and started
</p>
203 <p class=
"p4"><span class=
"Apple-tab-span"> </span></p>
204 <p class=
"p1"><span class=
"Apple-tab-span"> </span>Definitions for other sources can be added easily.
</p>
205 <p class=
"p16"><br></p>
206 <p class=
"p4"><br></p>
207 <p class=
"p4"><br></p>
208 <p class=
"p6"><b>Setting the source:
</b></p>
209 <p class=
"p4"><br></p>
210 <p class=
"p11"><br></p>
211 <p class=
"p10"><b><span class=
"Apple-tab-span"> </span>source_(anObject)
</b></p>
212 <p class=
"p10"><b><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></b>Play a new synth through proxy and release/remove any old ones.
</p>
213 <p class=
"p10"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><b>anObject
</b> - can be one of the supported inputs
<b>(see above)
</b></p>
214 <p class=
"p11"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></p>
215 <p class=
"p10"><span class=
"Apple-tab-span"> </span><b>prime(anObject)
</b></p>
216 <p class=
"p10"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>Set source without starting the synth. To start it,
<b>send
</b> can be used later. Running synths are released and proxy is initialized if still neutral.
</p>
217 <p class=
"p11"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></p>
218 <p class=
"p10"><b><span class=
"Apple-tab-span"> </span>add(anObject, channelOffset, extraArgs)
</b></p>
219 <p class=
"p10"><b><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></b>Add a new source to the present ones
</p>
220 <p class=
"p11"><span class=
"Apple-tab-span"> </span></p>
221 <p class=
"p10"><span class=
"Apple-tab-span"> </span><b>removeAt(index)
</b></p>
222 <p class=
"p10"><b><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></b>Remove the object at index i and its synths, if they exist.
</p>
223 <p class=
"p11"><span class=
"Apple-tab-span"> </span></p>
224 <p class=
"p10"><span class=
"Apple-tab-span"> </span><b>removeLast
</b></p>
225 <p class=
"p10"><b><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></b>Remove the last object and its synths, if they exist.
</p>
226 <p class=
"p11"><b><span class=
"Apple-tab-span"> </span></b></p>
227 <p class=
"p11"><b><span class=
"Apple-tab-span"> </span></b></p>
228 <p class=
"p10"><b><span class=
"Apple-tab-span"> </span>put(index, obj, channelOffset, extraArgs, now)
</b></p>
229 <p class=
"p10"><b><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></b>Set the source by index. Objects can be inserted at any index, only the order of indices is relevant. Internally, NodeProxy uses an
<a href=
"../../../Collections/Order.html"><span class=
"s9">Order
</span></a> to access the sources.
</p>
230 <p class=
"p11"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></p>
231 <p class=
"p10"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><b>index
</b>:
<span class=
"Apple-tab-span"> </span>where the object should be placed in the internal
<span class=
"Apple-converted-space"> </span>order. if
<b>-
1</b>, all objects are freed
</p>
232 <p class=
"p10"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><b>obj
</b>:
<span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>A valid source (see above).
</p>
233 <p class=
"p10"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><b>channelOffset
</b>: using a multichannel setup it can be useful to set this, when the objects numChannels is smaller than the proxy
<span class=
"Apple-converted-space"> </span></p>
234 <p class=
"p11"><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>
235 <p class=
"p10"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><b>extraArgs
</b>:
<span class=
"Apple-tab-span"> </span>Arguments that can be sent with the object directly (not cached)
</p>
236 <p class=
"p11"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></p>
237 <p class=
"p10"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><b>now
</b><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>if set to false, only prepare the source and do not start the object (see
<b>prime
</b>)
</p>
238 <p class=
"p11"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></p>
239 <p class=
"p13"><span class=
"s14"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></span>// put can be used with the array indexing syntax:
<span class=
"Apple-converted-space"> </span></p>
240 <p class=
"p17"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></p>
241 <p class=
"p14"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>a =
<span class=
"s11">NodeProxy
</span>.new.play;
</p>
242 <p class=
"p14"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>a[
0] = {
<span class=
"s15">SinOsc
</span>.ar(
<span class=
"s15">Rand
</span>(
200,
899)) *
0.1.dup };
</p>
243 <p class=
"p14"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>a[
2] = {
<span class=
"s15">SinOsc
</span>.ar(
<span class=
"s15">Rand
</span>(
200,
899)) *
0.1.dup };
</p>
244 <p class=
"p14"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>a.sources.do(
<span class=
"s15">_
</span>.postcs);
</p>
245 <p class=
"p13"><span class=
"s3"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></span>// using multiple index expands into multiple objects
</p>
246 <p class=
"p14"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>a[
0.
.5] = {
<span class=
"s11">SinOsc
</span>.ar(
<span class=
"s11">Rand
</span>(
200,
899)) *
0.1.dup };
</p>
247 <p class=
"p14"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>a.sources.do(
<span class=
"s11">_
</span>.postcs);
</p>
248 <p class=
"p13"><span class=
"s3"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>a.send;
</span>// exchange synths, using the sources as definitions
</p>
249 <p class=
"p14"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>a.clear;
<span class=
"Apple-converted-space"> </span></p>
250 <p class=
"p11"><b><span class=
"Apple-tab-span"> </span></b></p>
251 <p class=
"p10"><b><span class=
"Apple-tab-span"> </span>pause
</b> - Pause all objects and set proxy to paused
</p>
252 <p class=
"p11"><span class=
"Apple-tab-span"> </span></p>
253 <p class=
"p10"><span class=
"Apple-tab-span"> </span><b>resume
</b> -
<b>I
</b>f paused, start all objects
<span class=
"Apple-converted-space"> </span></p>
254 <p class=
"p11"><span class=
"Apple-tab-span"> </span></p>
255 <p class=
"p10"><span class=
"Apple-tab-span"> </span><b>rebuild
</b> - Rebuild all SynthDefs from sources.
</p>
256 <p class=
"p11"><br></p>
257 <p class=
"p10"><span class=
"Apple-tab-span"> </span><b>orderNodes(nodeProxy, nodeProxy...)
</b></p>
258 <p class=
"p10"><b><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></b>Arrange the order of groups from this to the last. This can be important when external input is filtered in order to
<b>minimize latency
</b>.
</p>
259 <p class=
"p10"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>Note that if a
<b>parentGroup
</b> was provided, the nodes must be in the same parentGroup.
</p>
260 <p class=
"p11"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></p>
261 <p class=
"p10"><span class=
"Apple-tab-span"> </span><b>proxyA
<-- proxyB
</b><span class=
"Apple-tab-span"> </span></p>
262 <p class=
"p10"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>Set proxyA source to proxyB and play proxyA. If proxyB was playing, fade it out. This is convenient in the following situation:
</p>
263 <p class=
"p14"><span class=
"s16"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></span>b =
<span class=
"s11">NodeProxy
</span>.new.play;
</p>
264 <p class=
"p14"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>b.source = {
<span class=
"s11">PinkNoise
</span>.ar(
0.2.dup) };
</p>
265 <p class=
"p13"><span class=
"s3"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></span>// now I want to filter b through a new proxy.
</p>
266 <p class=
"p14"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>a =
<span class=
"s11">NodeProxy
</span>.new;
</p>
267 <p class=
"p14"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>a
<-- b; a.source = {
<span class=
"s11">HPF
</span>.ar(b.ar,
7000) };
</p>
268 <p class=
"p14"><span class=
"s16"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></span>a.source = {
<span class=
"s11">HPF
</span>.ar(b.ar,
3000) };
<span class=
"s13">// changing the source
</span></p>
269 <p class=
"p14"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>a.clear; b.clear;
</p>
270 <p class=
"p11"><span class=
"Apple-tab-span"> </span></p>
271 <p class=
"p10"><span class=
"Apple-tab-span"> </span><b>proxyA
<<> proxyB
</b><span class=
"Apple-tab-span"> </span><b><<> proxyC
<<> ...
</b></p>
272 <p class=
"p10"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>Chaining: Map proxyC source to proxyB
<b>\in
</b>argument, and proxyB to proxyA's in argument.
</p>
273 <p class=
"p14"><span class=
"s16"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></span>a =
<span class=
"s11">NodeProxy
</span>.new.play;
</p>
274 <p class=
"p14"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>a.source = {
<span class=
"s11">RLPF
</span>.ar(
<span class=
"s12">\in
</span>.ar(
0!
2), [
4600,
7000],
0.1) };
</p>
275 <p class=
"p14"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>b =
<span class=
"s11">NodeProxy
</span>.new.source_ {
<span class=
"s11">Impulse
</span>.ar([
5,
7] /
2) };
</p>
276 <p class=
"p14"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>a
<<> b;
</p>
277 <p class=
"p9"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></p>
278 <p class=
"p10"><span class=
"Apple-tab-span"> </span><b>proxyA
<>> proxyB
</b><span class=
"Apple-tab-span"> </span><b><>> proxyC
<>> ...
</b></p>
279 <p class=
"p10"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>Inverse of the above.
</p>
280 <p class=
"p11"><span class=
"Apple-tab-span"> </span></p>
281 <p class=
"p11"><br></p>
282 <p class=
"p18"><b>Release and cleaning up:
</b></p>
283 <p class=
"p11"><br></p>
284 <p class=
"p10"><b><span class=
"Apple-tab-span"> </span>free(fadeTime)
</b></p>
285 <p class=
"p10"><b><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></b>Release all running synths and the group. If patterns are playing, stop them.
</p>
286 <p class=
"p10"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><b>fadeTime:
</b>decay time for this action
</p>
287 <p class=
"p11"><b><span class=
"Apple-tab-span"> </span></b></p>
288 <p class=
"p10"><b><span class=
"Apple-tab-span"> </span>release(fadeTime)
</b></p>
289 <p class=
"p10"><b><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></b>release running synths. If patterns are playing, stop them.
</p>
290 <p class=
"p10"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><b>fadeTime:
</b>decay time for this action
</p>
291 <p class=
"p11"><span class=
"Apple-tab-span"> </span></p>
292 <p class=
"p10"><span class=
"Apple-tab-span"> </span><b>clear(fadeTime)
</b></p>
293 <p class=
"p10"><b><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></b>reset everything to nil, neutralizes rate/numChannels
</p>
294 <p class=
"p10"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>if a fadeTime is given, first fade out, then clear.
</p>
295 <p class=
"p11"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></p>
296 <p class=
"p4"><br></p>
297 <p class=
"p4"><br></p>
298 <p class=
"p18"><b>Accessing Instance and Class Variables
</b></p>
299 <p class=
"p11"><span class=
"Apple-tab-span"> </span></p>
300 <p class=
"p10"><b><span class=
"Apple-tab-span"> </span>sources
<span class=
"Apple-tab-span"> </span></b>Returns an array of all sources
</p>
301 <p class=
"p10"><span class=
"Apple-tab-span"> </span><b>source
</b><span class=
"Apple-tab-span"> </span>Returns the first source.
</p>
302 <p class=
"p11"><b><span class=
"Apple-tab-span"> </span></b></p>
303 <p class=
"p10"><b><span class=
"Apple-tab-span"> </span>server
</b><span class=
"Apple-tab-span"> </span>The node proxy's server (a
<a href=
"../../../ServerArchitecture/Server.html"><span class=
"s9">Server
</span></a>).
</p>
304 <p class=
"p10"><b><span class=
"Apple-tab-span"> </span>bus
</b><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>The node proxy's private bus (a
<a href=
"../../../ServerArchitecture/Bus.html"><span class=
"s9">Bus
</span></a>). Because it has a private bus, it is not audible directly - monitoring it by (.play or playN) routs it to the hardware output channels.
</p>
305 <p class=
"p10"><span class=
"Apple-tab-span"> </span><b>rate
</b> - The bus rate (default: nil) The rate and number of channels is determined either when the instance is created (.control/.audio) or by lazy initialisation from the first source (see
<a href=
"../tutorials/the_lazy_proxy.html"><span class=
"s17">the_lazy_proxy
</span></a><span class=
"s17">)
</span><span class=
"Apple-converted-space"> </span></p>
306 <p class=
"p11"><span class=
"Apple-tab-span"> </span></p>
307 <p class=
"p10"><span class=
"Apple-tab-span"> </span><b>numChannels
</b> - The bus numChannels (default: nil)
</p>
308 <p class=
"p10"><span class=
"Apple-tab-span"> </span><b>isNeutral
</b> - true if the proxy has no initialized bus.
</p>
309 <p class=
"p11"><span class=
"Apple-tab-span"> </span></p>
310 <p class=
"p10"><span class=
"Apple-tab-span"> </span><b>group
</b><span class=
"Apple-tab-span"> </span>The node proxy's group (a
<a href=
"../../../ServerArchitecture/Group.html"><span class=
"s9">Group
</span></a>). This is maintained by the proxy and serves as a context in which all synths are placed.
</p>
311 <p class=
"p10"><span class=
"Apple-tab-span"> </span><b>parentGroup
</b></p>
312 <p class=
"p10"><b><span class=
"Apple-tab-span"> </span>parentGroup_
<span class=
"Apple-tab-span"> </span></b>Access the parentGroup (default: nil), which can be set to run the proxy's group in another group. This group has to be maintained (kept playing etc.) externally.
</p>
313 <p class=
"p4"><br></p>
314 <p class=
"p11"><br></p>
315 <p class=
"p10"><span class=
"Apple-tab-span"> </span><b>clock_
</b><span class=
"Apple-tab-span"> </span>A clock, which can be set to account for different timing schemes, such as beat accurate replacement of sources.
</p>
316 <p class=
"p10"><span class=
"Apple-tab-span"> </span><b>quant_
</b><span class=
"Apple-tab-span"> </span>A quant value, to specify quantizes replacement of sources. Compatible with the general use of quant in SuperCollider.
</p>
317 <p class=
"p10"><span class=
"Apple-tab-span"> </span><b>quantize(... proxies)
</b></p>
318 <p class=
"p10"><b><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></b>Synchronize the proxies by resending and adjusting to quant.
<span class=
"Apple-tab-span"> </span></p>
319 <p class=
"p11"><br></p>
320 <p class=
"p10"><span class=
"Apple-tab-span"> </span><b>monitor
</b></p>
321 <p class=
"p10"><b><span class=
"Apple-tab-span"> </span>monitor_
<span class=
"Apple-tab-span"> </span></b>Access the Monitor object, which plays back the output of the proxy's private bus.
</p>
322 <p class=
"p10"><span class=
"Apple-tab-span"> </span><b>loaded
</b><span class=
"Apple-tab-span"> </span>Returns true if the object has been initialized on the server, e.g. a synthDef has been stored.
</p>
323 <p class=
"p10"><span class=
"Apple-tab-span"> </span><b>paused
</b><span class=
"Apple-tab-span"> </span>Returns true if the processes are paused.
</p>
324 <p class=
"p10"><span class=
"Apple-tab-span"> </span><b>awake_
</b><span class=
"Apple-tab-span"> </span>If set to false (default: true), a change of the source does not start a new synth immediately. This is useful when synths are triggered by
<b>spawn
</b>, and a change of sound should not duplicate sends.
</p>
325 <p class=
"p11"><br></p>
326 <p class=
"p1"><b><span class=
"Apple-tab-span"> </span>fadeTime_(time)
</b></p>
327 <p class=
"p10"><b><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></b>set the crossfade time. See:
<span class=
"Apple-converted-space"> </span><span class=
"s10"> <a href=
"../tutorials/jitlib_fading.html"><span class=
"s8">jitlib_fading
</span></a>.
</span></p>
328 <p class=
"p19"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></p>
329 <p class=
"p19"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></p>
330 <p class=
"p10"><span class=
"Apple-tab-span"> </span><b>*defaultNumAudio_
</b></p>
331 <p class=
"p10"><b><span class=
"Apple-tab-span"> </span>*defaultNumControl_
</b></p>
332 <p class=
"p10"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>set the default channel number for audio/control busses
</p>
333 <p class=
"p11"><br></p>
334 <p class=
"p11"><br></p>
335 <p class=
"p11"><br></p>
336 <p class=
"p11"><b><span class=
"Apple-tab-span"> </span></b></p>
337 <p class=
"p18"><b>Setting synth controls
</b></p>
338 <p class=
"p11"><br></p>
339 <p class=
"p10"><b><span class=
"Apple-tab-span"> </span>set(key, val, ...)
</b></p>
340 <p class=
"p10"><b><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></b>NodeProxy behaves like its nodeMap (
<a href=
"NodeMap.html"><span class=
"s9">NodeMap
</span></a>)
</p>
341 <p class=
"p10"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><b>set
</b>,
<span class=
"Apple-converted-space"> </span></p>
342 <p class=
"p10"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><b>setn
</b>,
<span class=
"Apple-converted-space"> </span></p>
343 <p class=
"p10"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><b>unset
</b>,
<span class=
"Apple-converted-space"> </span></p>
344 <p class=
"p10"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><b>unmap
</b></p>
345 <p class=
"p11"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></p>
346 <p class=
"p10"><span class=
"Apple-tab-span"> </span><b>map(key(s), proxy,
<span class=
"Apple-converted-space"> </span>key(s), proxy, .... )
</b></p>
347 <p class=
"p10"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>Map the arguments in keys to the subsequent channels of another proxy
<span class=
"Apple-converted-space"> </span>(keys can be a symbol or a number)
</p>
348 <p class=
"p10"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>If the proxy has
<b>multiple channels
</b>, subsequent channels of the control, if present, are mapped. Note
<span class=
"Apple-converted-space"> </span>that you should not map to more channels than the control has.
</p>
349 <p class=
"p11"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></p>
350 <p class=
"p10"><span class=
"Apple-tab-span"> </span><b>setn(key, list, ...)
</b><span class=
"Apple-converted-space"> </span></p>
351 <p class=
"p10"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>set ranges of controls
</p>
352 <p class=
"p11"><span class=
"Apple-tab-span"> </span></p>
353 <p class=
"p10"><span class=
"Apple-tab-span"> </span><b>run(flag)
</b></p>
354 <p class=
"p10"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>pause/unpause all synths in the group
</p>
355 <p class=
"p11"><b><span class=
"Apple-tab-span"> </span></b></p>
356 <p class=
"p10"><b><span class=
"Apple-tab-span"> </span>xset(key, val, ...)
</b></p>
357 <p class=
"p10"><b><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></b>set with crossfade into new setting
</p>
358 <p class=
"p11"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></p>
359 <p class=
"p10"><span class=
"Apple-tab-span"> </span>x
<b>map(keys, proxy)
</b></p>
360 <p class=
"p10"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>map with crossfade into new setting
</p>
361 <p class=
"p11"><span class=
"Apple-tab-span"> </span></p>
362 <p class=
"p10"><span class=
"Apple-tab-span"> </span><b>xsetn()
</b></p>
363 <p class=
"p10"><b><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></b>untested
</p>
364 <p class=
"p11"><span class=
"Apple-tab-span"> </span></p>
365 <p class=
"p10"><span class=
"Apple-tab-span"> </span><b>lag(key, val, ...)
<span class=
"Apple-tab-span"> </span></b></p>
366 <p class=
"p10"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>set the lag values of these args (identical to setRates)
</p>
367 <p class=
"p10"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>to remove these settings, use:
<b>lag(\key1, nil, key2, nil, ...)
</b></p>
368 <p class=
"p11"><span class=
"Apple-tab-span"> </span></p>
369 <p class=
"p10"><span class=
"Apple-tab-span"> </span><b>setRates(key, rate1, ...)
</b></p>
370 <p class=
"p10"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>set the default rate (\tr, \ir, numerical) for synthDef arg
</p>
371 <p class=
"p10"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>rate of
<b>nil
</b> removes setting
</p>
372 <p class=
"p11"><br></p>
373 <p class=
"p11"><br></p>
374 <p class=
"p10"><span class=
"Apple-tab-span"> </span><b>controlNames(except)
</b></p>
375 <p class=
"p10"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>Returns the
<a href=
"../../../UGens/Synth control/ControlName.html"><span class=
"s9">ControlName
</span></a> objects of all slots,
<b>except
</b> the names of this list (default: [\out, \i_out, \gate, \fadeTime], which are used internally).
</p>
376 <p class=
"p19"><span class=
"Apple-tab-span"> </span></p>
377 <p class=
"p10"><span class=
"s10"><span class=
"Apple-tab-span"> </span></span><b>controlKeys(except, noInternalKeys)
</b></p>
378 <p class=
"p10"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>Returns the keys (symbols) of all control names objects of all slots,
<b>except
</b> the names of this list.
</p>
379 <p class=
"p10"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>(default: none). If
<b>noInternalKeys
</b> is true (default: true), it ignores the keys
<span class=
"Apple-converted-space"> </span>[\out, \i_out, \gate, \fadeTime].
</p>
380 <p class=
"p11"><span class=
"Apple-tab-span"> </span></p>
381 <p class=
"p10"><span class=
"Apple-tab-span"> </span><b>getKeysValues(keys, except, withDefaults = true, noInternalKeys = true)
</b></p>
382 <p class=
"p10"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>Get all key value pairs from both NodeMap (the settings) and default arguments.
</p>
383 <p class=
"p19"><br></p>
384 <p class=
"p10"><span class=
"s10"><span class=
"Apple-tab-span"> </span></span><b>controlKeysValues(keys, except)
</b></p>
385 <p class=
"p10"><b><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></b>Get all key value pairs from default arguments.
</p>
386 <p class=
"p19"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></p>
387 <p class=
"p11"><br></p>
388 <p class=
"p11"><br></p>
389 <p class=
"p18"><b>Bus-like behaviour:
</b></p>
390 <p class=
"p10">In some ways, Node Proxy behaves like a
<a href=
"../../../ServerArchitecture/Bus.html"><span class=
"s9">Bus
</span></a>:
</p>
391 <p class=
"p20"><br></p>
392 <p class=
"p11"><br></p>
393 <p class=
"p10"><span class=
"Apple-tab-span"> </span><b>line(value, dur)
</b></p>
394 <p class=
"p10"><b><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></b>set my bus to the new value in dur time linearly
</p>
395 <p class=
"p10"><span class=
"Apple-tab-span"> </span>x
<b>line(value, dur)
</b></p>
396 <p class=
"p10"><b><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></b>set my bus to the new value in dur time exponentially
</p>
397 <p class=
"p10"><span class=
"Apple-tab-span"> </span><b>gate(value, dur)
</b></p>
398 <p class=
"p10"><b><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></b>gate my bus to the level value for dur time
</p>
399 <p class=
"p11"><br></p>
400 <p class=
"p11"><br></p>
401 <p class=
"p11"><b><span class=
"Apple-tab-span"> </span></b></p>
402 <p class=
"p18"><b>Sending synths to server
</b></p>
403 <p class=
"p11"><b><span class=
"Apple-tab-span"> </span></b></p>
404 <p class=
"p11"><b><span class=
"Apple-tab-span"> </span></b></p>
405 <p class=
"p10"><b><span class=
"Apple-tab-span"> </span>send(extraArgs, index, freeLast)
</b></p>
406 <p class=
"p10"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>Send a new synth without releasing the old one. If the source is a stream or a pattern, it starts a new one.
</p>
407 <p class=
"p10"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><b>extraArgs:
</b> Arguments used to set the synth. the argument list is applied to the synth only.
</p>
408 <p class=
"p10"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><b>index
</b>:
<span class=
"Apple-tab-span"> </span>What slot to send a new synth with. If nil, uses all. (default: nil)
</p>
409 <p class=
"p10"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><b>freeLast
</b>: if to free the last synth at that index or not (default: true)
</p>
410 <p class=
"p11"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></p>
411 <p class=
"p11"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></p>
412 <p class=
"p10"><span class=
"Apple-tab-span"> </span><b>sendAll(extraArgs, freeLast)
</b></p>
413 <p class=
"p10"><b><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></b>Send all synths, or restart all objects.
</p>
414 <p class=
"p10"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><b>extraArgs:
</b> Arguments used to set the synth. the argument list is applied to the synth only.
</p>
415 <p class=
"p10"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><b>freeLast
</b>: if to free the last synth at that index or not (default: true)
</p>
416 <p class=
"p11"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></p>
417 <p class=
"p10"><span class=
"Apple-tab-span"> </span><b>sendEach(extraArgs, freeLast)
</b></p>
418 <p class=
"p10"><b><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></b>Like send, just iterating seperately over the objects.
</p>
419 <p class=
"p11"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></p>
420 <p class=
"p11"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></p>
421 <p class=
"p10"><span class=
"Apple-tab-span"> </span><b>wakeUp
<span class=
"Apple-converted-space"> </span></b></p>
422 <p class=
"p10"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>Until the proxy is not used by any output ( either .play or .ar/.kr ) it is not running on the server. you can wake it up to force it playing. Normally this is not needed.
</p>
423 <p class=
"p11"><br></p>
424 <p class=
"p10"><span class=
"Apple-tab-span"> </span><b>record(path, headerFormat, sampleFormat)
</b></p>
425 <p class=
"p10"><b><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></b>record output to file (returns a [RecNodeProxy] that you can use for control)
</p>
426 <p class=
"p10"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>returns a [RecNodeProxy]
</p>
427 <p class=
"p11"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></p>
428 <p class=
"p11"><br></p>
429 <p class=
"p1"><b>GUI
</b></p>
430 <p class=
"p4"><br></p>
431 <p class=
"p1"><b><span class=
"Apple-tab-span"> </span>edit
<span class=
"Apple-converted-space"> </span></b></p>
432 <p class=
"p10"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>Returns a new instance of
<a href=
"../extras/NodeProxyEditor.html"><span class=
"s9">NodeProxyEditor
</span></a> for this proxy.
<span class=
"Apple-converted-space"> </span></p>
433 <p class=
"p21"><span class=
"Apple-tab-span"> </span></p>
434 <p class=
"p7"><span class=
"s13"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></span>a =
<span class=
"s11">NodeProxy
</span>.new;
</p>
435 <p class=
"p7"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>a.edit;
</p>
436 <p class=
"p2"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></p>
437 <p class=
"p7"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>(
</p>
438 <p class=
"p22"><span class=
"s3"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>a.source = {
</span>|freq =
440, rate =
2|
<span class=
"s3"><span class=
"Apple-converted-space"> </span></span></p>
439 <p class=
"p7"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"s15">SinOsc
</span>.ar(freq * [
1,
1.625]) *
<span class=
"s15">SinOsc
</span>.kr(rate).max(
0) *
0.2<span class=
"Apple-converted-space"> </span></p>
440 <p class=
"p7"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>}
</p>
441 <p class=
"p7"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>);
</p>
442 <p class=
"p2"><span class=
"Apple-tab-span"> </span></p>
443 <p class=
"p11"><br></p>
444 <p class=
"p11"><span class=
"Apple-tab-span"> </span></p>
445 <p class=
"p11"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></p>
446 <p class=
"p18"><b>Examples
</b></p>
447 <p class=
"p20"><br></p>
448 <p class=
"p10"><b>For more, see
</b><a href=
"../environments/ProxySpace.html"><span class=
"s5"><b>ProxySpace
</b></span></a><span class=
"Apple-tab-span"> </span></p>
449 <p class=
"p2"><br></p>
450 <p class=
"p2"><br></p>
451 <p class=
"p2"><br></p>
452 <p class=
"p2"><br></p>
453 <p class=
"p23">///////////////////// using node proxy with ugen functions
<span class=
"Apple-converted-space"> </span>/////////////////////
<span class=
"Apple-converted-space"> </span></p>
454 <p class=
"p2"><br></p>
455 <p class=
"p7">s.boot;
</p>
456 <p class=
"p2"><br></p>
457 <p class=
"p7">a =
<span class=
"s5">NodeProxy
</span>.audio(s,
2);
</p>
458 <p class=
"p23"><span class=
"s3">a.play;
</span>// play to hardware output, return a group with synths
</p>
459 <p class=
"p2"><br></p>
460 <p class=
"p23">// setting the source
</p>
461 <p class=
"p7">a.source = {
<span class=
"s5">SinOsc
</span>.ar([
350,
351.3],
0,
0.2) };
</p>
462 <p class=
"p2"><br></p>
463 <p class=
"p23">// the proxy has two channels now:
</p>
464 <p class=
"p7">a.numChannels.postln;
</p>
465 <p class=
"p7">a.source = {
<span class=
"s5">SinOsc
</span>.ar([
390,
286] *
1.2,
0,
0.2) };
</p>
466 <p class=
"p2"><br></p>
467 <p class=
"p23">// exeeding channels wrap:
</p>
468 <p class=
"p7">a.source = {
<span class=
"s5">SinOsc
</span>.ar([
390,
286,
400,
420,
300] *
1.2,
0,
0.2) };
</p>
469 <p class=
"p2"><br></p>
470 <p class=
"p23">// other inputs
</p>
471 <p class=
"p7">a.source = {
<span class=
"s5">WhiteNoise
</span>.ar([
0.01,
0.01]) };
</p>
472 <p class=
"p7">a.source =
0;
</p>
473 <p class=
"p23"><span class=
"s3">a.source =
</span><span class=
"s18">\default
</span><span class=
"s3">;
</span>// synthDef on server
</p>
474 <p class=
"p7">a.source =
<span class=
"s5">SynthDef
</span>(
<span class=
"s19">"w"</span>, {
<span class=
"s5">arg
</span> out=
0;
<span class=
"s5">Out
</span>.ar(out,
<span class=
"s5">SinOsc
</span>.ar([
<span class=
"s5">Rand
</span>(
430,
600),
600],
0,
0.2)) });
</p>
475 <p class=
"p23"><span class=
"s3">a.source =
</span><span class=
"s5">nil
</span><span class=
"s3">;
</span>//
<span class=
"Apple-converted-space"> </span>removes any object
</p>
476 <p class=
"p2"><br></p>
477 <p class=
"p23">// feedback
</p>
478 <p class=
"p7">a.source = {
<span class=
"s5">SinOsc
</span>.ar(a.ar *
7000 *
<span class=
"s5">LFNoise1
</span>.kr(
1,
0.3,
0.6) +
200,
0,
0.1) };
</p>
479 <p class=
"p7">a.source = {
<span class=
"s5">SinOsc
</span>.ar(a.ar *
6000 *
<span class=
"s5">MouseX
</span>.kr(
0,
2) + [
100,
104],
0,
0.1) };
</p>
480 <p class=
"p2"><br></p>
481 <p class=
"p23">// fadeTime
</p>
482 <p class=
"p7">a.fadeTime =
2.0;
</p>
483 <p class=
"p7">a.source = {
<span class=
"s5">SinOsc
</span>.ar([
390,
286] *
<span class=
"s5">ExpRand
</span>(
1,
3),
0,
0.2) };
</p>
484 <p class=
"p2"><br></p>
485 <p class=
"p2"><br></p>
486 <p class=
"p23">// adding nodes
</p>
487 <p class=
"p7">a.add({
<span class=
"s5">SinOsc
</span>.ar([
50,
390]*
1.25,
0,
0.1) });
</p>
488 <p class=
"p7">a.add({
<span class=
"s5">BrownNoise
</span>.ar([
0.02,
0.02]) });
</p>
489 <p class=
"p2"><br></p>
490 <p class=
"p23">// setting nodes at indices:
</p>
491 <p class=
"p7">a[
0] = {
<span class=
"s5">SinOsc
</span>.ar(
700 *
<span class=
"s5">LFNoise1
</span>.kr(
1,
0.3,
0.6) +
200,
0,
0.1) };
</p>
492 <p class=
"p7">a[
1] = {
<span class=
"s5">LFPulse
</span>.kr(
3,
0.3) *
<span class=
"s5">SinOsc
</span>.ar(
500,
0,
0.1) };
</p>
493 <p class=
"p7">a[
2] = {
<span class=
"s5">LFPulse
</span>.kr(
3.5,
0.3) *
<span class=
"s5">SinOsc
</span>.ar(
600,
0,
0.1) };
</p>
494 <p class=
"p7">a[
3] = {
<span class=
"s5">SinOsc
</span>.ar([
1,
1.25] *
840,
0,
0.1) };
</p>
495 <p class=
"p2"><br></p>
496 <p class=
"p23">// filtering: the first argument is the previous bus content. more args can be used as usual.
</p>
497 <p class=
"p7">a[
3] =
<span class=
"s18">\filter
</span> -
> {
<span class=
"s5">arg
</span> in; in *
<span class=
"s5">SinOsc
</span>.ar(
<span class=
"s5">Rand
</span>(
100,
1000)) };
</p>
498 <p class=
"p7">a[
2] =
<span class=
"s18">\filter
</span> -
> {
<span class=
"s5">arg
</span> in; in *
<span class=
"s5">MouseY
</span>.kr(
0,
1) };
</p>
499 <p class=
"p7">a[
8] =
<span class=
"s18">\filter
</span> -
> {
<span class=
"s5">arg
</span> in; in *
<span class=
"s5">MouseX
</span>.kr(
0,
1) };
</p>
500 <p class=
"p7">a[
4] =
<span class=
"s18">\filter
</span> -
> {
<span class=
"s5">arg
</span> in; in *
<span class=
"s5">SinOsc
</span>.ar(
<span class=
"s5">ExpRand
</span>(
1,
5)).max(
0) };
</p>
501 <p class=
"p2"><br></p>
502 <p class=
"p2"><br></p>
503 <p class=
"p2"><br></p>
504 <p class=
"p23">// setting controls
</p>
505 <p class=
"p7">a.fadeTime =
2.0;
</p>
506 <p class=
"p7">a.source = {
<span class=
"s5">arg
</span> f=
400;
<span class=
"s5">SinOsc
</span>.ar(f * [
1,
1.2] * rrand(
0.9,
1.1),
0,
0.1) };
</p>
507 <p class=
"p7">a.set(
<span class=
"s18">\f
</span>, rrand(
900,
300));
</p>
508 <p class=
"p7">a.set(
<span class=
"s18">\f
</span>, rrand(
1500,
700));
</p>
509 <p class=
"p7">a.xset(
<span class=
"s18">\f
</span>, rrand(
1500,
700));
<span class=
"s20">// crossfaded setting
</span></p>
510 <p class=
"p7">a.source = {
<span class=
"s5">arg
</span> f=
400;
<span class=
"s5">RLPF
</span>.ar(
<span class=
"s5">Pulse
</span>.ar(f * [
1,
1.02] *
0.05,
0.5,
0.2), f *
0.58,
0.2) };
</p>
511 <p class=
"p2"><br></p>
512 <p class=
"p23">// control lags
</p>
513 <p class=
"p23"><span class=
"s3">a.lag(
</span><span class=
"s18">\f
</span><span class=
"s3">,
0.5);
</span>// the objects are built again internally and sent to the server.
</p>
514 <p class=
"p7">a.set(
<span class=
"s18">\f
</span>, rrand(
1500,
700));
</p>
515 <p class=
"p7">a.lag(
<span class=
"s18">\f
</span>,
<span class=
"s5">nil
</span>);
</p>
516 <p class=
"p7">a.set(
<span class=
"s18">\f
</span>, rrand(
1500,
700));
</p>
517 <p class=
"p2"><br></p>
518 <p class=
"p7">a.fadeTime =
1.0;
</p>
519 <p class=
"p2"><br></p>
520 <p class=
"p23">// mapping controls to other node proxies
</p>
521 <p class=
"p2"><br></p>
522 <p class=
"p7">c =
<span class=
"s5">NodeProxy
</span>.control(s,
2);
</p>
523 <p class=
"p7">c.source = {
<span class=
"s5">SinOsc
</span>.kr([
10,
20] *
0.1,
0,
150,
1300) };
</p>
524 <p class=
"p7">a.map(
<span class=
"s18">\f
</span>, c);
</p>
525 <p class=
"p7">a[
0] = {
<span class=
"s5">arg
</span> f=
400;
<span class=
"s5">RHPF
</span>.ar(
<span class=
"s5">Pulse
</span>.ar(f * [
1,
1.2] *
0.05,
0.5,
0.2), f *
0.58,
0.2) };
</p>
526 <p class=
"p7">c.source = {
<span class=
"s5">SinOsc
</span>.kr([
10,
16] *
0.02,
0,
50,
700) };
</p>
527 <p class=
"p7">c.source = {
<span class=
"s5">Line
</span>.kr(
300,
1500,
10) +
<span class=
"s5">SinOsc
</span>.kr(
20 * [
1,
2],
0,
100) };
</p>
528 <p class=
"p7">a[
1] = {
<span class=
"s5">arg
</span> f;
<span class=
"s5">LFPar
</span>.ar(f %
<span class=
"s5">MouseX
</span>.kr(
1,
40,
1) *
4 +
360,
0,
0.2) };
</p>
529 <p class=
"p2"><br></p>
530 <p class=
"p23">// map multiple channels of one proxy to multiple controls of another
</p>
531 <p class=
"p23">// recently changed behaviour!
</p>
532 <p class=
"p2"><br></p>
533 <p class=
"p7">a.source = {
<span class=
"s5">arg
</span> f=#[
400,
400];
<span class=
"s5">LPF
</span>.ar(
<span class=
"s5">Pulse
</span>.ar(f[
0] * [
0.4,
1],
0.2,
0.2), f[
1] *
3) };
</p>
534 <p class=
"p23"><span class=
"s3">a.map(
</span><span class=
"s18">\f
</span><span class=
"s3">, c);
</span>// multichannel proxy c is mapped to multichannel control of a
</p>
535 <p class=
"p7">a.source = {
<span class=
"s5">arg
</span> f=#[
400,
400];
<span class=
"s5">LPF
</span>.ar(
<span class=
"s5">Pulse
</span>.ar(f,
0.2,
0.2), f[
1]) };
</p>
536 <p class=
"p7">a.source = {
<span class=
"s5">arg
</span> f=#[
400,
400];
<span class=
"s5">Formant
</span>.ar(
140, f *
1.5,
100,
0.1)
<span class=
"Apple-converted-space"> </span>};
</p>
537 <p class=
"p7">c.source = {
<span class=
"s5">SinOsc
</span>.kr([
<span class=
"s5">Line
</span>.kr(
1,
30,
10),
1],
0, [
100,
700], [
300,
700]) };
</p>
538 <p class=
"p7">c.source =
400;
</p>
539 <p class=
"p2"><br></p>
540 <p class=
"p2"><br></p>
541 <p class=
"p7">c.fadeTime =
5.5;
</p>
542 <p class=
"p7">c.source = {
<span class=
"s5">LFNoise0
</span>.kr([
2.3,
1.0], [
100,
700], [
300,
1700]) };
</p>
543 <p class=
"p7">c.source = {
<span class=
"s5">SinOsc
</span>.kr([
2.3,
1.0],
0, [
100,
700], [
300,
1700]) };
</p>
544 <p class=
"p7">c.source =
400;
</p>
545 <p class=
"p2"><br></p>
546 <p class=
"p2"><br></p>
547 <p class=
"p23">// behave like a sc2 plug
</p>
548 <p class=
"p7">c.gate(
1400,
0.1);
</p>
549 <p class=
"p7">c.gate(
1000,
0.1);
</p>
550 <p class=
"p7">c.line(
1000,
1);
</p>
551 <p class=
"p2"><br></p>
552 <p class=
"p23">// direct access
</p>
553 <p class=
"p7">a.lineAt(
<span class=
"s18">\f
</span>,
300,
2);
</p>
554 <p class=
"p7">a.xlineAt(
<span class=
"s18">\f
</span>,
600,
0.3);
</p>
555 <p class=
"p7">a.gateAt(
<span class=
"s18">\f
</span>,
1600,
0.3);
</p>
556 <p class=
"p2"><br></p>
557 <p class=
"p2"><br></p>
558 <p class=
"p23">// changing nodeMaps
</p>
559 <p class=
"p7">a.unmap(
<span class=
"s18">\f
</span>);
</p>
560 <p class=
"p7">n = a.nodeMap.copy;
</p>
561 <p class=
"p7">n.set(
<span class=
"s18">\f
</span>,
700);
</p>
562 <p class=
"p7">a.fadeToMap(n);
</p>
563 <p class=
"p7">n = a.nodeMap.copy;
</p>
564 <p class=
"p7">n.set(
<span class=
"s18">\f
</span>,
400);
</p>
565 <p class=
"p7">a.fadeTime =
1.0;
</p>
566 <p class=
"p23"><span class=
"s3">a.fadeToMap(n, [
</span><span class=
"s18">\f
</span><span class=
"s3">]);
</span>// linear interpolation to new map: experimental
</p>
567 <p class=
"p23"><span class=
"s3">a.map(
</span><span class=
"s18">\f
</span><span class=
"s3">, c);
</span>// restore mapping
</p>
568 <p class=
"p2"><br></p>
569 <p class=
"p2"><br></p>
570 <p class=
"p23">// sending envelopes (up to
8 levels)
</p>
571 <p class=
"p7">w =
<span class=
"s5">Env
</span>.new(
<span class=
"s5">Array
</span>.rand(
3,
400,
1000),
<span class=
"s5">Array
</span>.rand(
2,
0.3,
0.001), -
4);
</p>
572 <p class=
"p7">c.env(w);
</p>
573 <p class=
"p7">c.env(w);
</p>
574 <p class=
"p7">w =
<span class=
"s5">Env
</span>.new(
<span class=
"s5">Array
</span>.rand(
8,
400,
1000),
<span class=
"s5">Array
</span>.rand(
7,
0.03,
0.1));
</p>
575 <p class=
"p7">c.env(w);
</p>
576 <p class=
"p7">c.env(w);
</p>
577 <p class=
"p2"><br></p>
578 <p class=
"p23">// stop synthesis, then wake up proxies:
</p>
579 <p class=
"p2"><br></p>
580 <p class=
"p23"><span class=
"s3">a.stop;
</span>// stop the monitor
</p>
581 <p class=
"p23"><span class=
"s3">a.play;
</span>// start the monitor
</p>
582 <p class=
"p23"><span class=
"s3">a.end;
<span class=
"Apple-tab-span"> </span></span>// release the synths and stop the monitor
</p>
583 <p class=
"p23"><span class=
"s3">c.free;
<span class=
"Apple-converted-space"> </span></span>// free the control proxy c
</p>
584 <p class=
"p2"><br></p>
585 <p class=
"p2"><br></p>
586 <p class=
"p2"><br></p>
587 <p class=
"p2"><br></p>
588 <p class=
"p2"><br></p>
589 <p class=
"p23">///////////////////// channel offset/object index
<span class=
"Apple-converted-space"> </span>/////////////////////
<span class=
"Apple-converted-space"> </span></p>
590 <p class=
"p24"><br></p>
591 <p class=
"p2"><br></p>
592 <p class=
"p7">a =
<span class=
"s5">NodeProxy
</span>.audio(s,
2);
</p>
593 <p class=
"p7">a.play;
</p>
594 <p class=
"p7">a[
0] = {
<span class=
"s5">Ringz
</span>.ar(
<span class=
"s5">Impulse
</span>.ar(
5,
0,
0.1),
1260) };
</p>
595 <p class=
"p7">a.put(
1, {
<span class=
"s5">Ringz
</span>.ar(
<span class=
"s5">Impulse
</span>.ar(
5.3,
0,
0.1),
420) },
1);
</p>
596 <p class=
"p7">a.put(
0, {
<span class=
"s5">Ringz
</span>.ar(
<span class=
"s5">Dust
</span>.ar([
1,
1]*
15.3,
<span class=
"Apple-converted-space"> </span>0.1),
720) },
1);
</p>
597 <p class=
"p7">a.put(
1, {
<span class=
"s5">Ringz
</span>.ar(
<span class=
"s5">Impulse
</span>.ar(
5.3,
0,
0.1),
420) },
1);
</p>
598 <p class=
"p7">a.end;
</p>
599 <p class=
"p2"><br></p>
600 <p class=
"p2"><br></p>
601 <p class=
"p2"><br></p>
602 <p class=
"p2"><br></p>
603 <p class=
"p23">///////////////////// beat accurate playing
<span class=
"Apple-converted-space"> </span>/////////////////////
<span class=
"Apple-converted-space"> </span></p>
604 <p class=
"p2"><br></p>
605 <p class=
"p24"><br></p>
606 <p class=
"p2"><br></p>
607 <p class=
"p2"><br></p>
608 <p class=
"p7">a =
<span class=
"s5">NodeProxy
</span>.audio(s,
2);
</p>
609 <p class=
"p7">a.play;
</p>
610 <p class=
"p2"><br></p>
611 <p class=
"p7">a.clock =
<span class=
"s5">TempoClock
</span>(
2.0).permanent_(
<span class=
"s5">true
</span>);
<span class=
"s20">// round to every
2.0 seconds
</span></p>
612 <p class=
"p7">a.source = {
<span class=
"s5">Ringz
</span>.ar(
<span class=
"s5">Impulse
</span>.ar(
0.5,
0,
0.3),
3000,
0.01) };
</p>
613 <p class=
"p7">a[
1] = {
<span class=
"s5">Ringz
</span>.ar(
<span class=
"s5">Impulse
</span>.ar([
0.5,
1],
0,
0.3),
1000,
0.01) };
</p>
614 <p class=
"p7">a[
2] = {
<span class=
"s5">Ringz
</span>.ar(
<span class=
"s5">Impulse
</span>.ar([
3,
5]/
2,
0,
0.3),
8000,
0.01) };
</p>
615 <p class=
"p7">a[
3] = {
<span class=
"s5">Ringz
</span>.ar(
<span class=
"s5">Impulse
</span>.ar([
3,
5]*
16,
0,
0.3),
5000,
0.01) *
<span class=
"s5">LFPulse
</span>.kr(
0.5,
0,
0.05) };
</p>
616 <p class=
"p2"><br></p>
617 <p class=
"p7">a.removeLast;
</p>
618 <p class=
"p7">a.removeAt(
2);
</p>
619 <p class=
"p2"><br></p>
620 <p class=
"p7">a.clear;
</p>
621 <p class=
"p2"><br></p>
622 <p class=
"p2"><br></p>
623 <p class=
"p2"><br></p>
624 <p class=
"p2"><br></p>
625 <p class=
"p23">///////////////////// using patterns - event streams
<span class=
"Apple-converted-space"> </span>/////////////////////
<span class=
"Apple-converted-space"> </span></p>
626 <p class=
"p2"><br></p>
627 <p class=
"p2"><br></p>
629 <p class=
"p23">// must have 'out' or 'i_out' argument to work properly
</p>
630 <p class=
"p7"><span class=
"s5">SynthDef
</span>(
<span class=
"s19">"who"</span>, {
<span class=
"s5">arg
</span> freq, gate=
1, out=
0, ffreq=
800, amp=
0.1;
<span class=
"Apple-converted-space"> </span></p>
631 <p class=
"p7"><span class=
"Apple-tab-span"> </span><span class=
"s5">var
</span> env;
</p>
632 <p class=
"p7"><span class=
"Apple-tab-span"> </span>env =
<span class=
"s5">Env
</span>.asr(
0.01, amp,
0.5);
</p>
633 <p class=
"p7"><span class=
"Apple-tab-span"> </span><span class=
"s5">Out
</span>.ar(out,
<span class=
"s5">Pan2
</span>.ar(
</p>
634 <p class=
"p7"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"s5">Formant
</span>.ar(freq, ffreq,
300,
<span class=
"s5">EnvGen
</span>.kr(env, gate, doneAction:
2)),
<span class=
"s5">Rand
</span>(-
1.0,
1.0))
</p>
635 <p class=
"p7"><span class=
"Apple-tab-span"> </span>)
</p>
636 <p class=
"p7">}).add;
</p>
637 <p class=
"p2"><br></p>
639 <p class=
"p2"><br></p>
640 <p class=
"p2"><br></p>
642 <p class=
"p7">s.boot;
</p>
643 <p class=
"p7">a =
<span class=
"s5">NodeProxy
</span>.audio(s,
2);
</p>
644 <p class=
"p7">a.fadeTime =
2;
</p>
645 <p class=
"p7">b =
<span class=
"s5">NodeProxy
</span>.audio(s,
2);
</p>
646 <p class=
"p7">b.fadeTime =
3;
</p>
648 <p class=
"p2"><br></p>
649 <p class=
"p23"><span class=
"s3">a.play;
</span>// monitor output
</p>
650 <p class=
"p2"><br></p>
651 <p class=
"p23">// play the pattern silently in b
</p>
652 <p class=
"p7">b.source =
<span class=
"s5">Pbind
</span>(
<span class=
"s18">\instrument
</span>,
<span class=
"s18">\who
</span>,
<span class=
"s18">\freq
</span>,
500,
<span class=
"s18">\ffreq
</span>,
700,
<span class=
"s18">\legato
</span>,
0.02);
</p>
653 <p class=
"p2"><br></p>
654 <p class=
"p23">// play b out through a:
</p>
655 <p class=
"p7">a.source = b;
</p>
656 <p class=
"p2"><br></p>
657 <p class=
"p23">// filter b with ring modulation:
</p>
658 <p class=
"p7">a.source = {
<span class=
"Apple-converted-space"> </span>b.ar
<span class=
"Apple-converted-space"> </span>*
<span class=
"s5">SinOsc
</span>.ar(
<span class=
"s5">SinOsc
</span>.kr(
0.2,
300,
330))
<span class=
"Apple-converted-space"> </span>};
<span class=
"s20">// filter the input of the pattern
</span></p>
659 <p class=
"p7">a.source = {
<span class=
"Apple-converted-space"> </span>b.ar *
<span class=
"s5">LFCub
</span>.ar([
2,
8], add: -
0.5)
<span class=
"Apple-converted-space"> </span>};
<span class=
"s20">// filter the input of the pattern
</span></p>
660 <p class=
"p2"><br></p>
661 <p class=
"p7">a.source = b;
</p>
662 <p class=
"p2"><br></p>
663 <p class=
"p23">// map b to another proxy
</p>
664 <p class=
"p7">c =
<span class=
"s5">NodeProxy
</span>.control(s,
1).fadeTime_(
1);
</p>
665 <p class=
"p7">c.source = {
<span class=
"s5">SinOsc
</span>.kr(
2,
0,
400,
700) };
</p>
666 <p class=
"p2"><br></p>
667 <p class=
"p2"><br></p>
668 <p class=
"p23">// now one can simply embed a control node proxy into an event pattern.
</p>
669 <p class=
"p23">// (this works not for \degree, \midinote, etc.)
</p>
670 <p class=
"p23">// embedding in other patterns it will still return itself.
</p>
671 <p class=
"p2"><br></p>
672 <p class=
"p2"><br></p>
673 <p class=
"p7">b.source =
<span class=
"s5">Pbind
</span>(
<span class=
"s18">\instrument
</span>,
<span class=
"s18">\who
</span>,
<span class=
"s18">\freq
</span>,
500,
<span class=
"s18">\ffreq
</span>, c,
<span class=
"s18">\legato
</span>,
0.02);
</p>
674 <p class=
"p2"><br></p>
675 <p class=
"p7">c.source = {
<span class=
"s5">SinOsc
</span>.kr(
<span class=
"s5">SinOsc
</span>.kr(
0.2,
0,
10,
10),
0,
400,
700) };
</p>
676 <p class=
"p2"><br></p>
677 <p class=
"p7">c.source = {
<span class=
"s5">LFNoise1
</span>.kr(
5,
1300,
1500) };
</p>
678 <p class=
"p7">c.source = {
<span class=
"s5">MouseX
</span>.kr(
100,
5500,
1) };
</p>
679 <p class=
"p2"><br></p>
681 <p class=
"p7">b.source =
<span class=
"s5">Pbind
</span>(
</p>
682 <p class=
"p25"><span class=
"s3"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></span>\instrument
<span class=
"s3">,
</span>\who
<span class=
"s3">,
<span class=
"Apple-converted-space"> </span></span></p>
683 <p class=
"p7"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"s18">\freq
</span>,
<span class=
"s5">Pseq
</span>([
600,
350,
300],
<span class=
"s5">inf
</span>),
</p>
684 <p class=
"p7"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"s18">\legato
</span>,
0.1,
</p>
685 <p class=
"p7"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"s18">\ffreq
</span>,
<span class=
"s5">Pseq
</span>([c,
100, c,
100,
300,
600],
<span class=
"s5">inf
</span>),
<span class=
"s20">// use proxy in a pattern
</span></p>
686 <p class=
"p7"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"s18">\dur
</span>,
<span class=
"s5">Pseq
</span>([
1,
0.5,
0.75,
0.25] *
0.4,
<span class=
"s5">inf
</span>),
</p>
687 <p class=
"p7"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"s18">\amp
</span>,
<span class=
"s5">Pseq
</span>([
0.2,
0.2,
0.1,
0.1,
0.2],
<span class=
"s5">inf
</span>)
</p>
688 <p class=
"p7"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>);
</p>
690 <p class=
"p2"><br></p>
691 <p class=
"p2"><span class=
"Apple-converted-space"> </span></p>
692 <p class=
"p2"><br></p>
693 <p class=
"p7">b[
2] =
<span class=
"s5">Pbind
</span>(
<span class=
"s18">\instrument
</span>,
<span class=
"s18">\who
</span>,
<span class=
"s18">\freq
</span>,
620,
<span class=
"s18">\ffreq
</span>,
<span class=
"s5">Prand
</span>([
500,c],
<span class=
"s5">inf
</span>),
<span class=
"s18">\legato
</span>,
0.1,
<span class=
"s18">\dur
</span>,
0.1);
</p>
694 <p class=
"p7">b[
3] =
<span class=
"s5">Pbind
</span>(
<span class=
"s18">\instrument
</span>,
<span class=
"s18">\who
</span>,
<span class=
"s18">\ffreq
</span>,
5000,
<span class=
"s18">\freq
</span>,
<span class=
"s5">Pseq
</span>([
720,
800],
<span class=
"s5">inf
</span>),
<span class=
"s18">\legato
</span>,
0.1,
<span class=
"s18">\dur
</span>,
0.1,
<span class=
"s18">\amp
</span>,
0.01);
</p>
695 <p class=
"p7">b[
4] =
<span class=
"s5">Pbind
</span>(
<span class=
"s18">\instrument
</span>,
<span class=
"s18">\who
</span>,
<span class=
"s18">\freq
</span>,
<span class=
"s5">Pseq
</span>([
700,
400],
<span class=
"s5">inf
</span>),
<span class=
"s18">\legato
</span>,
0.1,
<span class=
"s18">\ffreq
</span>,
200);
</p>
696 <p class=
"p7">b[
1] = {
<span class=
"s5">WhiteNoise
</span>.ar([
0.01,
0.01]) };
<span class=
"Apple-converted-space"> </span></p>
697 <p class=
"p7">b[
4] = {
<span class=
"s5">arg
</span> ffreq=
800;
<span class=
"s5">Resonz
</span>.ar(
<span class=
"s5">WhiteNoise
</span>.ar([
1,
1]), ffreq,
0.05) };
<span class=
"Apple-converted-space"> </span></p>
698 <p class=
"p2"><br></p>
699 <p class=
"p2"><br></p>
700 <p class=
"p23"><span class=
"s3">b.map(
</span><span class=
"s18">\ffreq
</span><span class=
"s3">, c);
</span>// map the control to the proxy
</p>
701 <p class=
"p7">b.removeLast;
</p>
702 <p class=
"p7">b.removeLast;
</p>
703 <p class=
"p7">a.source = {
<span class=
"Apple-converted-space"> </span>b.ar *
<span class=
"s5">WhiteNoise
</span>.ar(
0.1,
1)
<span class=
"Apple-converted-space"> </span>};
<span class=
"Apple-converted-space"> </span></p>
704 <p class=
"p7">a.source = {
<span class=
"Apple-converted-space"> </span>b.ar *
<span class=
"s5">WhiteNoise
</span>.ar(
0.1,
1) + (b.ar *
<span class=
"s5">SinOsc
</span>.ar(
<span class=
"s5">SinOsc
</span>.kr(
0.01,
0,
50,
330)))
<span class=
"Apple-converted-space"> </span>};
<span class=
"Apple-converted-space"> </span></p>
705 <p class=
"p2"><br></p>
706 <p class=
"p7">c.source = {
<span class=
"s5">XLine
</span>.kr(
1900,
10,
10) };
</p>
707 <p class=
"p2"><br></p>
708 <p class=
"p23"><span class=
"s3">a.clear(
10); b.clear(
10); c.clear(
10);
</span>// fade out and clear all (free bus, group and synths)
</p>
709 <p class=
"p2"><br></p>