[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[sc-dev] SF.net SVN: supercollider:[8200] trunk/build/Help/Libraries/JITLib/ nodeproxy



Revision: 8200
          http://supercollider.svn.sourceforge.net/supercollider/?rev=8200&view=rev
Author:   jrhb
Date:     2008-12-18 23:21:52 +0000 (Thu, 18 Dec 2008)

Log Message:
-----------
improve some jitlib helpfiles

Modified Paths:
--------------
    trunk/build/Help/Libraries/JITLib/nodeproxy/BusPlug.html
    trunk/build/Help/Libraries/JITLib/nodeproxy/Monitor.html
    trunk/build/Help/Libraries/JITLib/nodeproxy/Ndef.html
    trunk/build/Help/Libraries/JITLib/nodeproxy/NodeProxy.html

Modified: trunk/build/Help/Libraries/JITLib/nodeproxy/BusPlug.html
===================================================================
--- trunk/build/Help/Libraries/JITLib/nodeproxy/BusPlug.html	2008-12-18 17:26:55 UTC (rev 8199)
+++ trunk/build/Help/Libraries/JITLib/nodeproxy/BusPlug.html	2008-12-18 23:21:52 UTC (rev 8200)
@@ -5,20 +5,21 @@
 <meta http-equiv="Content-Style-Type" content="text/css">
 <title></title>
 <meta name="Generator" content="Cocoa HTML Writer">
-<meta name="CocoaVersion" content="824.42">
+<meta name="CocoaVersion" content="949.35">
 <style type="text/css">
 p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 15.0px Helvetica}
 p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; min-height: 12.0px}
 p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica}
 p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 8.0px Monaco; min-height: 11.0px}
 p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px}
-p.p6 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #a71e12}
+p.p6 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #982316}
 p.p7 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco}
 span.s1 {font: 17.0px Helvetica}
 span.s2 {color: #0000ff}
-span.s3 {color: #0019b7}
-span.s4 {color: #a71e12}
-span.s5 {color: #000000}
+span.s3 {color: #0024f8}
+span.s4 {color: #0025b2}
+span.s5 {color: #982316}
+span.s6 {color: #000000}
 span.Apple-tab-span {white-space:pre}
 </style>
 </head>
@@ -30,47 +31,73 @@
 <p class="p3">a superclass to node proxy that listens to a bus.</p>
 <p class="p5"><br></p>
 <p class="p3">it is mainly a basic subclass of <b>NodeProxy</b>, but it can be used as well for other things.</p>
-<p class="p3">for most methods see NodeProxy.help.</p>
+<p class="p3">for most methods see <a href="NodeProxy.html"><span class="s2">NodeProxy</span></a>.</p>
 <p class="p2"><br></p>
 <p class="p2"><br></p>
+<p class="p3"><b>*new(server)</b> <span class="Apple-tab-span">	</span>create a new (neutral) instance on the given server</p>
+<p class="p3"><b>*audio(server, numChannels)</b> create a new audio rate instance on the given server</p>
+<p class="p3"><b>*control(server, numChannels)</b> create a new audio rate instance on the given server</p>
+<p class="p3"><b>clear</b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>free the bus, end the monitor</p>
+<p class="p5"><b></b><br></p>
+<p class="p3"><b>ar(numChannels)</b></p>
+<p class="p3"><b>kr(numChannels)</b></p>
+<p class="p5"><b><span class="Apple-tab-span">	</span></b></p>
+<p class="p3"><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>
+<p class="p3"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>if uninitialized, creates a matching bus.</p>
+<p class="p5"><span class="Apple-tab-span">	</span></p>
+<p class="p3"><span class="Apple-tab-span">	</span>normally ar defaults to stereo, kr to mono. this can be set in the classvars:</p>
+<p class="p3"><span class="Apple-tab-span">	</span><b>defaultNumAudio, defaultNumControl</b></p>
+<p class="p5"><b><span class="Apple-tab-span">	</span></b></p>
+<p class="p3"><b>play(fromIndex, fromNumChannels, toIndex, toNumChannels, target, multi, volume, fadeTime)</b></p>
+<p class="p3"><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 from a bus index with a number of channels to another index with a number</p>
+<p class="p3"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>of channels, within a target group, or a server.</p>
+<p class="p3"><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>
+<p class="p3"><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>volume</b>: volume at which to monitor</p>
+<p class="p3"><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>
+<p class="p5"><span class="Apple-tab-span">	</span></p>
+<p class="p3"><b>playN(outs, amps, ins, vol, fadeTime, group, addAction)</b></p>
+<p class="p3"><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>
+<p class="p3"><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>
+<p class="p3"><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>
+<p class="p2"><br></p>
 <p class="p3"><b>monitor</b></p>
-<p class="p3"><span class="Apple-tab-span">	</span>returns the current monitor (see <a href="Monitor.html"><span class="s2">Monitor</span></a> )</p>
+<p class="p3"><span class="Apple-tab-span">	</span>returns the current monitor (see <a href="Monitor.html"><span class="s3">Monitor</span></a> )</p>
 <p class="p2"><br></p>
 <p class="p2"><br></p>
 <p class="p6">//using as a control bus listener</p>
 <p class="p2"><br></p>
 <p class="p7">s.boot;</p>
-<p class="p7">z = <span class="s3">Bus</span>.control(s, 16);</p>
-<p class="p7">a = <span class="s3">BusPlug</span>.for(z);</p>
+<p class="p7">z = <span class="s4">Bus</span>.control(s, 16);</p>
+<p class="p7">a = <span class="s4">BusPlug</span>.for(z);</p>
 <p class="p2"><br></p>
-<p class="p7">m = { <span class="s3">Mix</span>(<span class="s3">SinOsc</span>.ar(a.kr(16), 0, 0.1)) }.play;</p>
+<p class="p7">m = { <span class="s4">Mix</span>(<span class="s4">SinOsc</span>.ar(a.kr(16), 0, 0.1)) }.play;</p>
 <p class="p2"><br></p>
-<p class="p7">z.setn(<span class="s3">Array</span>.rand(16, 300, 320).put(16.rand, rrand(500, 1000)));</p>
-<p class="p7">z.setn(<span class="s3">Array</span>.rand(16, 300, 320).put(16.rand, rrand(500, 1000)));</p>
-<p class="p7">z.setn(<span class="s3">Array</span>.rand(16, 300, 320).put(16.rand, rrand(500, 1000)));</p>
+<p class="p7">z.setn(<span class="s4">Array</span>.rand(16, 300, 320).put(16.rand, rrand(500, 1000)));</p>
+<p class="p7">z.setn(<span class="s4">Array</span>.rand(16, 300, 320).put(16.rand, rrand(500, 1000)));</p>
+<p class="p7">z.setn(<span class="s4">Array</span>.rand(16, 300, 320).put(16.rand, rrand(500, 1000)));</p>
 <p class="p2"><br></p>
 <p class="p7">m.free;</p>
 <p class="p2"><br></p>
 <p class="p2"><br></p>
-<p class="p7">m = { <span class="s3">SinOsc</span>.ar(a.kr(2, <span class="s3">MouseX</span>.kr(0, 19)), 0, 0.1) }.play; <span class="s4">//modulate channel offset</span></p>
+<p class="p7">m = { <span class="s4">SinOsc</span>.ar(a.kr(2, <span class="s4">MouseX</span>.kr(0, 19)), 0, 0.1) }.play; <span class="s5">//modulate channel offset</span></p>
 <p class="p2"><br></p>
-<p class="p7">z.setn(<span class="s3">Array</span>.rand(16, 300, 1320).put(16.rand, rrand(500, 1000)));</p>
+<p class="p7">z.setn(<span class="s4">Array</span>.rand(16, 300, 1320).put(16.rand, rrand(500, 1000)));</p>
 <p class="p2"><br></p>
 <p class="p2"><br></p>
 <p class="p7">m.free; z.free;</p>
 <p class="p2"><br></p>
 <p class="p6">//using as a audio monitor</p>
 <p class="p2"><br></p>
-<p class="p7">p = <span class="s3">BusPlug</span>.audio(s,2);</p>
-<p class="p7">d = { <span class="s3">Out</span>.ar(p.index, <span class="s3">PinkNoise</span>.ar([0.1, 0.1])) }.play;</p>
+<p class="p7">p = <span class="s4">BusPlug</span>.audio(s,2);</p>
+<p class="p7">d = { <span class="s4">Out</span>.ar(p.index, <span class="s4">PinkNoise</span>.ar([0.1, 0.1])) }.play;</p>
 <p class="p2"><br></p>
 <p class="p2"><br></p>
-<p class="p6"><span class="s5">p.play; </span>//monitor whatever plays in p (the execution order does not matter)</p>
+<p class="p6"><span class="s6">p.play; </span>//monitor whatever plays in p (the execution order does not matter)</p>
 <p class="p2"><br></p>
 <p class="p2"><br></p>
 <p class="p2"><br></p>
 <p class="p7">d.free;</p>
-<p class="p7">d = { <span class="s3">Out</span>.ar(p.index, <span class="s3">PinkNoise</span>.ar([0.1, 0.1])) }.play;</p>
+<p class="p7">d = { <span class="s4">Out</span>.ar(p.index, <span class="s4">PinkNoise</span>.ar([0.1, 0.1])) }.play;</p>
 <p class="p2"><br></p>
 <p class="p7">p.stop;</p>
 <p class="p7">p.play;</p>
@@ -81,7 +108,7 @@
 <p class="p7">p.play(12);</p>
 <p class="p2"><br></p>
 <p class="p6">//listen to that bus for a test:</p>
-<p class="p7">x = { <span class="s3">InFeedback</span>.ar(12,2) }.play;</p>
+<p class="p7">x = { <span class="s4">InFeedback</span>.ar(12,2) }.play;</p>
 <p class="p7">x.free;</p>
 <p class="p2"><br></p>
 <p class="p2"><br></p>

Modified: trunk/build/Help/Libraries/JITLib/nodeproxy/Monitor.html
===================================================================
--- trunk/build/Help/Libraries/JITLib/nodeproxy/Monitor.html	2008-12-18 17:26:55 UTC (rev 8199)
+++ trunk/build/Help/Libraries/JITLib/nodeproxy/Monitor.html	2008-12-18 23:21:52 UTC (rev 8200)
@@ -5,24 +5,24 @@
 <meta http-equiv="Content-Style-Type" content="text/css">
 <title></title>
 <meta name="Generator" content="Cocoa HTML Writer">
-<meta name="CocoaVersion" content="824.42">
+<meta name="CocoaVersion" content="949.35">
 <style type="text/css">
 p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica}
 p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px}
 p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; min-height: 12.0px}
-p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #a71e12}
+p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #982316}
 p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco}
 span.s1 {font: 18.0px Helvetica}
-span.s2 {color: #0000ff}
+span.s2 {color: #0024f8}
 span.s3 {font: 9.0px Monaco}
 span.s4 {color: #000000}
-span.s5 {color: #0019b7}
-span.s6 {color: #a71e12}
+span.s5 {color: #0025b2}
+span.s6 {color: #982316}
 span.Apple-tab-span {white-space:pre}
 </style>
 </head>
 <body>
-<p class="p1"><span class="s1"><b>Monitor</b></span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><b> link between busses</b></p>
+<p class="p1"><span class="s1"><b>Monitor</b></span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><b>link between busses</b></p>
 <p class="p2"><br></p>
 <p class="p1">superclass: Object</p>
 <p class="p2"><br></p>
@@ -34,14 +34,14 @@
 <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>volume</b>: volume at which to monitor</p>
 <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>fadeTime</b>: fade in fade out time</p>
 <p class="p2"><span class="Apple-tab-span">	</span></p>
-<p class="p1"><b><span class="Apple-tab-span">	</span>playN(outs, amps, ins, mastervol, fadeTime, target, addAction)</b></p>
+<p class="p1"><b><span class="Apple-tab-span">	</span>playN(outs, amps, ins, vol, fadeTime, target, addAction)</b></p>
 <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>
 <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>
 <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>
 <p class="p2"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
-<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>all the above parameters can be nested arrays.</p>
+<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>all the above parameters can be nested arrays.</p>
 <p class="p2"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
-<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>mastervol</b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>global scaling for amplitudes</p>
+<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>vol</b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>global scaling for amplitudes</p>
 <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>fadeTime</b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>fade in and out</p>
 <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>target, addAction</b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>where to play (default: server default group)</p>
 <p class="p2"><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>

Modified: trunk/build/Help/Libraries/JITLib/nodeproxy/Ndef.html
===================================================================
--- trunk/build/Help/Libraries/JITLib/nodeproxy/Ndef.html	2008-12-18 17:26:55 UTC (rev 8199)
+++ trunk/build/Help/Libraries/JITLib/nodeproxy/Ndef.html	2008-12-18 23:21:52 UTC (rev 8200)
@@ -5,26 +5,26 @@
 <meta http-equiv="Content-Style-Type" content="text/css">
 <title></title>
 <meta name="Generator" content="Cocoa HTML Writer">
-<meta name="CocoaVersion" content="824.42">
+<meta name="CocoaVersion" content="949.35">
 <style type="text/css">
 p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica}
 p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; min-height: 12.0px}
 p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px}
-p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #a71e12}
+p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #982316}
 p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco}
-p.p6 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #326f17}
-p.p7 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #a71e12; min-height: 12.0px}
-p.p8 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #0019b7; min-height: 12.0px}
+p.p6 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #416d1f}
+p.p7 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #982316; min-height: 12.0px}
+p.p8 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #0025b2; min-height: 12.0px}
 span.s1 {font: 18.0px Helvetica}
 span.s2 {font: 9.0px Monaco}
-span.s3 {color: #0019b7}
-span.s4 {color: #326f17}
+span.s3 {color: #0025b2}
+span.s4 {color: #416d1f}
 span.s5 {color: #000000}
 span.Apple-tab-span {white-space:pre}
 </style>
 </head>
 <body>
-<p class="p1"><span class="s1"><b>Ndef<span class="Apple-tab-span">	</span></b></span><span class="s2"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span> </span><b>node proxy definition</b></p>
+<p class="p1"><span class="s1"><b>Ndef<span class="Apple-tab-span">	</span></b></span><span class="s2"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span><b>node proxy definition</b></p>
 <p class="p2"><br></p>
 <p class="p1">superclass: NodeProxy</p>
 <p class="p3"><br></p>
@@ -54,7 +54,7 @@
 <p class="p2"><br></p>
 <p class="p4">// examples</p>
 <p class="p2"><br></p>
-<p class="p5">s = <span class="s3">Server</span>.local.boot;</p>
+<p class="p5"><span class="s3">Server</span>.default.boot;</p>
 <p class="p2"><br></p>
 <p class="p5"><span class="s3">Ndef</span>(<span class="s4">\sound</span>).play;</p>
 <p class="p5"><span class="s3">Ndef</span>(<span class="s4">\sound</span>).fadeTime = 1;</p>

Modified: trunk/build/Help/Libraries/JITLib/nodeproxy/NodeProxy.html
===================================================================
--- trunk/build/Help/Libraries/JITLib/nodeproxy/NodeProxy.html	2008-12-18 17:26:55 UTC (rev 8199)
+++ trunk/build/Help/Libraries/JITLib/nodeproxy/NodeProxy.html	2008-12-18 23:21:52 UTC (rev 8200)
@@ -5,7 +5,7 @@
 <meta http-equiv="Content-Style-Type" content="text/css">
 <title></title>
 <meta name="Generator" content="Cocoa HTML Writer">
-<meta name="CocoaVersion" content="824.44">
+<meta name="CocoaVersion" content="949.35">
 <style type="text/css">
 p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica}
 p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; min-height: 12.0px}
@@ -13,22 +13,31 @@
 p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Helvetica}
 p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Helvetica; min-height: 16.0px}
 p.p6 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco}
-p.p7 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Futura; min-height: 15.0px}
-p.p8 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #8b2719}
-p.p9 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Futura}
-p.p10 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #4b6b25}
-span.s1 {font: 18.0px Futura}
-span.s2 {text-decoration: underline}
-span.s3 {color: #002dad}
+p.p7 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Futura; color: #000000; min-height: 15.0px}
+p.p8 {margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Helvetica; color: #000000; min-height: 16.0px}
+p.p9 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #000000}
+p.p10 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #000000; min-height: 12.0px}
+p.p11 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #bf0000}
+p.p12 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #000000}
+p.p13 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Futura; color: #000000}
+p.p14 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #007300}
+p.p15 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #752c1e}
+span.s1 {font: 18.0px Helvetica}
+span.s2 {font: 18.0px Futura}
+span.s3 {color: #0000bf}
 span.s4 {color: #000000}
-span.s5 {color: #4b6b25}
+span.s5 {color: #007300}
 span.s6 {color: #606060}
-span.s7 {color: #8b2719}
+span.s7 {color: #bf0000}
+span.s8 {text-decoration: underline}
+span.s9 {color: #0839a4}
+span.s10 {color: #57672f}
+span.s11 {color: #752c1e}
 span.Apple-tab-span {white-space:pre}
 </style>
 </head>
 <body>
-<p class="p1"><span class="s1">NodeProxy<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>
+<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>
 <p class="p2"><br></p>
 <p class="p1"><b>superclass: BusPlug</b></p>
 <p class="p2"><br></p>
@@ -52,15 +61,15 @@
 <p class="p3"><br></p>
 <p class="p3"><br></p>
 <p class="p3"><br></p>
-<p class="p1">note that NodeProxy plays on a <span class="s2">private bus</span>.<span class="Apple-converted-space"> </span></p>
+<p class="p1">note that NodeProxy plays on a <i>private bus.<span class="Apple-converted-space"> </span></i></p>
 <p class="p1">if you want to hear the output, use p.<b>play</b> and p.<b>stop</b>.</p>
-<p class="p1">free only the inner players:<span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span> <span class="Apple-tab-span">	</span>p.<b>free</b><span class="Apple-converted-space"> </span></p>
-<p class="p1">for free inner players <span class="s2">and</span> stop listen:<span class="Apple-tab-span">	</span>p.<b>end</b></p>
+<p class="p1">free only the inner players:<span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>p.<b>free</b><span class="Apple-converted-space"> </span></p>
+<p class="p1">for free inner players and stop listen:<span class="Apple-tab-span">	</span>p.<b>end</b></p>
 <p class="p1">entirely removing all inner settings: <span class="Apple-converted-space">  <span class="Apple-tab-span">	</span></span>p.<b>clear</b></p>
 <p class="p3"><br></p>
 <p class="p3"><br></p>
 <p class="p3"><br></p>
-<p class="p4"><span class="s2">instance creation</span></p>
+<p class="p4"><b>instance creation</b></p>
 <p class="p3"><br></p>
 <p class="p1"><span class="Apple-tab-span">	</span><b>*new(server)</b></p>
 <p class="p1"><b><span class="Apple-tab-span">	</span>*audio(server, numChannels)</b></p>
@@ -68,13 +77,21 @@
 <p class="p3"><br></p>
 <p class="p3"><br></p>
 <p class="p3"><br></p>
-<p class="p4"><span class="s2">reading from the bus</span></p>
+<p class="p4"><b>reading from the bus</b></p>
 <p class="p3"><br></p>
 <p class="p3"><br></p>
-<p class="p1"><b><span class="Apple-tab-span">	</span>play(index, numChannels, group, multi)</b></p>
-<p class="p1"><b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b>play output on specified bus index (default: public busses)</p>
-<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>this works like a monitor.</p>
-<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>if multi is set to true it can create multiple monitors<span class="Apple-converted-space"> </span></p>
+<p class="p1"><span class="Apple-tab-span">	</span><b>play(fromIndex, fromNumChannels, toIndex, toNumChannels, target, multi, volume, fadeTime)</b></p>
+<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>plays from a bus index with a number of channels to another index with a number</p>
+<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>of channels, within a target group, or a server.</p>
+<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>multi</b>: keep old links and add new one</p>
+<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>volume</b>: volume at which to monitor</p>
+<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>fadeTime</b>: fade in fade out time</p>
+<p class="p3"><span class="Apple-tab-span">	</span></p>
+<p class="p1"><b><span class="Apple-tab-span">	</span>playN(outs, amps, ins, vol, fadeTime, group, addAction)</b></p>
+<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>
+<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>
+<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>
+<p class="p3"><br></p>
 <p class="p1"><b><span class="Apple-tab-span">	</span>stop(fadeTime)</b></p>
 <p class="p1"><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)</p>
 <p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>this stop the monitoring. to stop the objects playing, use <b>free, release</b></p>
@@ -95,7 +112,8 @@
 <p class="p1"><span class="Apple-tab-span">	</span><b>defaultNumAudio, defaultNumControl</b></p>
 <p class="p3"><span class="Apple-tab-span">	</span></p>
 <p class="p5"><br></p>
-<p class="p4"><span class="s2">supported inputs</span></p>
+<p class="p5"><br></p>
+<p class="p4"><b>supported inputs</b></p>
 <p class="p2"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
 <p class="p6"><span class="Apple-tab-span">	</span>NodeProxy<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 by reading from</p>
 <p class="p6"><span class="Apple-tab-span">	</span>Function<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 UGenFunc</p>
@@ -118,7 +136,7 @@
 <p class="p6"><span class="Apple-tab-span">	</span>(\control -&gt; array or number)<span class="Apple-tab-span">	</span>prepare an efficient way to set values by index<span class="Apple-tab-span">	</span></p>
 <p class="p3"><span class="Apple-tab-span">	</span></p>
 <p class="p3"><span class="Apple-tab-span">	</span></p>
-<p class="p4"><span class="s2">setting the source:</span></p>
+<p class="p4"><b>setting the source:</b></p>
 <p class="p3"><br></p>
 <p class="p3"><br></p>
 <p class="p1"><b><span class="Apple-tab-span">	</span>source_(anObject)</b></p>
@@ -174,8 +192,9 @@
 <p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>if a <b>parentGroup</b> was provided, the nodes must be in the same parentGroup.</p>
 <p class="p3"><br></p>
 <p class="p3"><b><span class="Apple-tab-span">	</span></b></p>
+<p class="p3"><b></b><br></p>
 <p class="p3"><b><span class="Apple-tab-span">	</span></b></p>
-<p class="p4"><span class="s2">group-like behaviour:</span></p>
+<p class="p4"><b>group-like behaviour:</b></p>
 <p class="p3"><br></p>
 <p class="p1"><b><span class="Apple-tab-span">	</span>set(key, val, ...)</b></p>
 <p class="p1"><b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b>I behave like my nodeMap: see [NodeMap]</p>
@@ -193,10 +212,6 @@
 <p class="p3"><span class="Apple-tab-span">	</span></p>
 <p class="p1"><span class="Apple-tab-span">	</span><b>run(flag)</b></p>
 <p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>pause/unpause all synths in the group</p>
-<p class="p3"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
-<p class="p3"><span class="Apple-tab-span">	</span></p>
-<p class="p3"><br></p>
-<p class="p4"><span class="s2">extended group-like behaviour:</span></p>
 <p class="p3"><b><span class="Apple-tab-span">	</span></b></p>
 <p class="p1"><b><span class="Apple-tab-span">	</span>xset(key, val, ...)</b></p>
 <p class="p1"><b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b>set with crossfade into new setting</p>
@@ -217,7 +232,7 @@
 <p class="p3"><br></p>
 <p class="p3"><br></p>
 <p class="p3"><br></p>
-<p class="p4"><span class="s2">bus-like behaviour:</span></p>
+<p class="p4"><b>bus-like behaviour:</b></p>
 <p class="p3"><br></p>
 <p class="p1"><span class="Apple-tab-span">	</span><b>line(value, dur)</b></p>
 <p class="p1"><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>
@@ -239,7 +254,7 @@
 <p class="p3"><br></p>
 <p class="p3"><br></p>
 <p class="p3"><b><span class="Apple-tab-span">	</span></b></p>
-<p class="p4"><span class="s2">sending synths to server</span></p>
+<p class="p4"><b>sending synths to server</b></p>
 <p class="p1"><span class="Apple-tab-span">	</span>(normally the source_() message does the sending already, but it can be used for spawning)</p>
 <p class="p3"><b><span class="Apple-tab-span">	</span></b></p>
 <p class="p1"><b><span class="Apple-tab-span">	</span>wakeUp<span class="Apple-converted-space"> </span></b></p>
@@ -260,7 +275,7 @@
 <p class="p3"><b><span class="Apple-tab-span">	</span></b></p>
 <p class="p3"><b><span class="Apple-tab-span">	</span></b></p>
 <p class="p3"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
-<p class="p4"><span class="s2">release and cleaning up:</span></p>
+<p class="p4"><b>release and cleaning up:</b></p>
 <p class="p3"><br></p>
 <p class="p1"><b><span class="Apple-tab-span">	</span>free(fadeTime)</b></p>
 <p class="p1"><b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b>release all my running synths and the group</p>
@@ -275,7 +290,7 @@
 <p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>if a fadeTime is given, first fade out, then clear.</p>
 <p class="p3"><b><span class="Apple-tab-span">	</span></b></p>
 <p class="p3"><br></p>
-<p class="p4"><span class="s2">setting properties:</span></p>
+<p class="p4"><b>setting properties:</b></p>
 <p class="p3"><b><span class="Apple-tab-span">	</span></b></p>
 <p class="p1"><b><span class="Apple-tab-span">	</span>fadeTime_(time)</b></p>
 <p class="p1"><b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b>set the attack/release time<span class="Apple-converted-space"> </span></p>
@@ -284,7 +299,7 @@
 <p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>use a tempo clock for scheduling beat accurate</p>
 <p class="p3"><span class="Apple-tab-span">	</span></p>
 <p class="p3"><span class="Apple-tab-span">	</span></p>
-<p class="p4"><span class="s2">misc:</span></p>
+<p class="p4"><b>misc:</b></p>
 <p class="p3"><br></p>
 <p class="p1"><span class="Apple-tab-span">	</span><b>record(path, headerFormat, sampleFormat)</b></p>
 <p class="p1"><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>
@@ -299,263 +314,263 @@
 <p class="p4">_________________________________________________________</p>
 <p class="p5"><br></p>
 <p class="p7"><br></p>
-<p class="p5"><br></p>
-<p class="p1"><b>for more examples see [ProxySpace]</b><span class="Apple-tab-span">	</span></p>
+<p class="p8"><br></p>
+<p class="p9"><b>for more examples see [</b><span class="s3"><b>ProxySpace</b></span><b>]</b><span class="Apple-tab-span">	</span></p>
+<p class="p10"><br></p>
+<p class="p10"><br></p>
+<p class="p10"><br></p>
+<p class="p11">// examples</p>
+<p class="p12">s = <span class="s3">Server</span>.local;</p>
+<p class="p12">s.boot;</p>
+<p class="p10"><br></p>
+<p class="p10"><br></p>
+<p class="p9"><b>using node proxy with ugen functions</b></p>
+<p class="p10"><br></p>
+<p class="p10"><br></p>
+<p class="p12">a = <span class="s3">NodeProxy</span>.audio(s, 2);</p>
+<p class="p11"><span class="s4">a.play; </span>// play to hardware output, return a group with synths</p>
+<p class="p10"><br></p>
+<p class="p11">// setting the source</p>
+<p class="p12">a.source = { <span class="s3">SinOsc</span>.ar([350, 351.3], 0, 0.2) };</p>
+<p class="p10"><br></p>
+<p class="p11">// the proxy has two channels now:</p>
+<p class="p12">a.numChannels.postln;</p>
+<p class="p12">a.source = { <span class="s3">SinOsc</span>.ar([390, 286] * 1.2, 0, 0.2) };</p>
+<p class="p10"><br></p>
+<p class="p11">// exeeding channels wrap:</p>
+<p class="p12">a.source = { <span class="s3">SinOsc</span>.ar([390, 286, 400, 420, 300] * 1.2, 0, 0.2) };</p>
+<p class="p10"><br></p>
+<p class="p11">// other inputs</p>
+<p class="p12">a.source = { <span class="s3">WhiteNoise</span>.ar([0.01,0.01]) };</p>
+<p class="p12">a.source = 0;</p>
+<p class="p11"><span class="s4">a.source = </span><span class="s5">\default</span><span class="s4">; </span>// synthDef on server</p>
+<p class="p12">a.source = <span class="s3">SynthDef</span>(<span class="s6">"w"</span>, { <span class="s3">arg</span> out=0; <span class="s3">Out</span>.ar(out,<span class="s3">SinOsc</span>.ar([<span class="s3">Rand</span>(430, 600), 600], 0, 0.2)) });</p>
+<p class="p11"><span class="s4">a.source = </span><span class="s3">nil</span><span class="s4">; </span>//<span class="Apple-converted-space">  </span>removes any object</p>
+<p class="p10"><br></p>
+<p class="p11">// feedback</p>
+<p class="p12">a.source = { <span class="s3">SinOsc</span>.ar(a.ar * 7000 * <span class="s3">LFNoise1</span>.kr(1, 0.3, 0.6) + 200, 0, 0.1) };</p>
+<p class="p12">a.source = { <span class="s3">SinOsc</span>.ar(a.ar * 6000 * <span class="s3">MouseX</span>.kr(0, 2) + [100, 104], 0, 0.1) };</p>
+<p class="p10"><br></p>
+<p class="p11">// fadeTime</p>
+<p class="p12">a.fadeTime = 2.0;</p>
+<p class="p12">a.source = { <span class="s3">SinOsc</span>.ar([390, 286] * <span class="s3">ExpRand</span>(1, 3), 0, 0.2) };</p>
+<p class="p10"><br></p>
+<p class="p10"><br></p>
+<p class="p11">// adding nodes</p>
+<p class="p12">a.add({ <span class="s3">SinOsc</span>.ar([50, 390]*1.25, 0, 0.1) });</p>
+<p class="p12">a.add({ <span class="s3">BrownNoise</span>.ar([0.02,0.02]) });</p>
+<p class="p10"><br></p>
+<p class="p11">// setting nodes at indices:</p>
+<p class="p12">a[0] = { <span class="s3">SinOsc</span>.ar( 700 * <span class="s3">LFNoise1</span>.kr(1, 0.3, 0.6) + 200, 0, 0.1) };</p>
+<p class="p12">a[1] = { <span class="s3">LFPulse</span>.kr(3, 0.3) * <span class="s3">SinOsc</span>.ar(500, 0, 0.1) };</p>
+<p class="p12">a[2] = { <span class="s3">LFPulse</span>.kr(3.5, 0.3) * <span class="s3">SinOsc</span>.ar(600, 0, 0.1) };</p>
+<p class="p12">a[3] = { <span class="s3">SinOsc</span>.ar([1,1.25] * 840, 0, 0.1) };</p>
+<p class="p10"><br></p>
+<p class="p11">// filtering: the first argument is the previous bus content. more args can be used as usual.</p>
+<p class="p12">a[3] = <span class="s5">\filter</span> -&gt; { <span class="s3">arg</span> in; in * <span class="s3">SinOsc</span>.ar(<span class="s3">Rand</span>(100,1000)) };</p>
+<p class="p12">a[2] = <span class="s5">\filter</span> -&gt; { <span class="s3">arg</span> in; in * <span class="s3">MouseY</span>.kr(0,1) };</p>
+<p class="p12">a[8] = <span class="s5">\filter</span> -&gt; { <span class="s3">arg</span> in; in * <span class="s3">MouseX</span>.kr(0,1) };</p>
+<p class="p12">a[4] = <span class="s5">\filter</span> -&gt; { <span class="s3">arg</span> in; in * <span class="s3">SinOsc</span>.ar(<span class="s3">ExpRand</span>(1,5)).max(0) };</p>
+<p class="p10"><br></p>
+<p class="p10"><br></p>
+<p class="p10"><br></p>
+<p class="p11">// setting controls</p>
+<p class="p12">a.fadeTime = 2.0;</p>
+<p class="p12">a.source = { <span class="s3">arg</span> f=400; <span class="s3">SinOsc</span>.ar(f * [1,1.2] * rrand(0.9, 1.1), 0, 0.1) };</p>
+<p class="p12">a.set(<span class="s5">\f</span>, rrand(900, 300));</p>
+<p class="p12">a.set(<span class="s5">\f</span>, rrand(1500, 700));</p>
+<p class="p12">a.xset(<span class="s5">\f</span>, rrand(1500, 700)); <span class="s7">// crossfaded setting</span></p>
+<p class="p12">a.source = { <span class="s3">arg</span> f=400; <span class="s3">RLPF</span>.ar(<span class="s3">Pulse</span>.ar(f * [1,1.02] * 0.05, 0.5, 0.2), f * 0.58, 0.2) };</p>
+<p class="p10"><br></p>
+<p class="p11">// control lags</p>
+<p class="p12">a.fadeTime = 0.01;</p>
+<p class="p11"><span class="s4">a.lag(</span><span class="s5">\f</span><span class="s4">, 0.5); </span>// the objects are built again internally and sent to the server.</p>
+<p class="p12">a.set(<span class="s5">\f</span>, rrand(1500, 700));</p>
+<p class="p12">a.lag(<span class="s5">\f</span>, <span class="s3">nil</span>);</p>
+<p class="p12">a.set(<span class="s5">\f</span>, rrand(1500, 700));</p>
+<p class="p12">a.fadeTime = 1.0;</p>
+<p class="p10"><br></p>
+<p class="p11">// mapping controls to other node proxies</p>
+<p class="p10"><br></p>
+<p class="p12">c = <span class="s3">NodeProxy</span>.control(s, 2);</p>
+<p class="p12">c.source = { <span class="s3">SinOsc</span>.kr([10,20] * 0.1, 0, 150, 1300) };</p>
+<p class="p12">a.map(<span class="s5">\f</span>, c);</p>
+<p class="p12">a[0] = { <span class="s3">arg</span> f=400; <span class="s3">RHPF</span>.ar(<span class="s3">Pulse</span>.ar(f * [1,1.2] * 0.05, 0.5, 0.2), f * 0.58, 0.2) };</p>
+<p class="p12">c.source = { <span class="s3">SinOsc</span>.kr([10,16] * 0.02, 0, 50, 700) };</p>
+<p class="p12">c.source = { <span class="s3">Line</span>.kr(300, 1500, 10) + <span class="s3">SinOsc</span>.kr(20 * [1,2], 0, 100) };</p>
+<p class="p12">a[1] = { <span class="s3">arg</span> f; <span class="s3">LFPar</span>.ar(f % <span class="s3">MouseX</span>.kr(1, 40, 1) * 4 + 360, 0, 0.2) };</p>
+<p class="p10"><br></p>
+<p class="p11">// map multiple channels of one proxy to multiple controls of another</p>
+<p class="p11">// recently changed behaviour!</p>
+<p class="p10"><br></p>
+<p class="p12">a.source = { <span class="s3">arg</span> f=#[400, 400]; <span class="s3">LPF</span>.ar(<span class="s3">Pulse</span>.ar(f[0] * [0.4,1], 0.2, 0.2), f[1] * 3) };</p>
+<p class="p11"><span class="s4">a.map(</span><span class="s5">\f</span><span class="s4">, c); </span>// multichannel proxy c is mapped to multichannel control of a</p>
+<p class="p12">a.source = { <span class="s3">arg</span> f=#[400, 400]; <span class="s3">LPF</span>.ar(<span class="s3">Pulse</span>.ar(f, 0.2, 0.2), f[1]) };</p>
+<p class="p12">a.source = { <span class="s3">arg</span> f=#[400, 400]; <span class="s3">Formant</span>.ar(140, f * 1.5, 100, 0.1)<span class="Apple-converted-space">  </span>};</p>
+<p class="p12">c.source = { <span class="s3">SinOsc</span>.kr([<span class="s3">Line</span>.kr(1, 30, 10), 1], 0, [100, 700], [300, 700]) };</p>
+<p class="p12">c.source = 400;</p>
+<p class="p10"><br></p>
+<p class="p10"><br></p>
+<p class="p12">c.fadeTime = 5.5;</p>
+<p class="p12">c.source = { <span class="s3">LFNoise0</span>.kr([2.3, 1.0], [100, 700], [300, 1700]) };</p>
+<p class="p12">c.source = { <span class="s3">SinOsc</span>.kr([2.3, 1.0], 0, [100, 700], [300, 1700]) };</p>
+<p class="p12">c.source = 400;</p>
+<p class="p10"><br></p>
+<p class="p10"><br></p>
+<p class="p11">// behave like a sc2 plug</p>
+<p class="p12">c.gate(1400, 0.1);</p>
+<p class="p12">c.gate(1000, 0.1);</p>
+<p class="p12">c.line(1000, 1);</p>
+<p class="p10"><br></p>
+<p class="p11">// direct access</p>
+<p class="p12">a.lineAt(<span class="s5">\f</span>, 300, 2);</p>
+<p class="p12">a.xlineAt(<span class="s5">\f</span>, 600, 0.3);</p>
+<p class="p12">a.gateAt(<span class="s5">\f</span>, 1600, 0.3);</p>
+<p class="p10"><br></p>
+<p class="p10"><br></p>
+<p class="p11">// changing nodeMaps</p>
+<p class="p12">a.unmap(<span class="s5">\f</span>);</p>
+<p class="p12">n = a.nodeMap.copy;</p>
+<p class="p12">n.set(<span class="s5">\f</span>, 700);</p>
+<p class="p12">a.fadeToMap(n);</p>
+<p class="p12">n = a.nodeMap.copy;</p>
+<p class="p12">n.set(<span class="s5">\f</span>, 400);</p>
+<p class="p12">a.fadeTime = 1.0;</p>
+<p class="p11"><span class="s4">a.fadeToMap(n, [</span><span class="s5">\f</span><span class="s4">]); </span>// linear interpolation to new map: experimental</p>
+<p class="p11"><span class="s4">a.map(</span><span class="s5">\f</span><span class="s4">, c); </span>// restore mapping</p>
+<p class="p10"><br></p>
+<p class="p10"><br></p>
+<p class="p11">// sending envelopes (up to 8 levels)</p>
+<p class="p12">w = <span class="s3">Env</span>.new(<span class="s3">Array</span>.rand(3, 400, 1000),<span class="s3">Array</span>.rand(2, 0.3, 0.001), -4);</p>
+<p class="p12">c.env(w);</p>
+<p class="p12">c.env(w);</p>
+<p class="p12">w = <span class="s3">Env</span>.new(<span class="s3">Array</span>.rand(8, 400, 1000),<span class="s3">Array</span>.rand(7, 0.03, 0.1));</p>
+<p class="p12">c.env(w);</p>
+<p class="p12">c.env(w);</p>
+<p class="p10"><br></p>
+<p class="p11">// stop synthesis, then wake up proxies:</p>
+<p class="p10"><br></p>
+<p class="p11"><span class="s4">a.stop; </span>// stop the monitor</p>
+<p class="p11"><span class="s4">a.play; </span>// start the monitor</p>
+<p class="p11"><span class="s4">a.end;<span class="Apple-tab-span">	</span></span>// release the synths and stop the monitor</p>
+<p class="p11"><span class="s4">c.free;<span class="Apple-converted-space">  </span></span>// free the control proxy c</p>
+<p class="p10"><br></p>
+<p class="p10"><br></p>
+<p class="p10"><br></p>
+<p class="p13"><span class="s8">channel offset/object index</span></p>
+<p class="p10"><br></p>
+<p class="p12">a = <span class="s3">NodeProxy</span>.audio(s,2);</p>
+<p class="p12">a.play;</p>
+<p class="p12">a[0] = { <span class="s3">Ringz</span>.ar(<span class="s3">Impulse</span>.ar(5, 0, 0.1), 1260) };</p>
+<p class="p12">a.put(1, { <span class="s3">Ringz</span>.ar(<span class="s3">Impulse</span>.ar(5.3, 0, 0.1), 420) }, 1);</p>
+<p class="p12">a.put(0, { <span class="s3">Ringz</span>.ar(<span class="s3">Dust</span>.ar([1,1]*15.3,<span class="Apple-converted-space">  </span>0.1), 720) }, 1);</p>
+<p class="p12">a.put(1, { <span class="s3">Ringz</span>.ar(<span class="s3">Impulse</span>.ar(5.3, 0, 0.1), 420) }, 1);</p>
+<p class="p12">a.end;</p>
+<p class="p10"><br></p>
+<p class="p10"><br></p>
+<p class="p10"><br></p>
+<p class="p13"><span class="s8">beat accurate playing</span></p>
+<p class="p10"><br></p>
+<p class="p10"><br></p>
+<p class="p12">a = <span class="s3">NodeProxy</span>.audio(s,2);</p>
+<p class="p12">a.play;</p>
+<p class="p10"><br></p>
+<p class="p12">a.clock = <span class="s3">TempoClock</span>(2.0).permanent_(<span class="s3">true</span>); <span class="s7">// round to every 2.0 seconds</span></p>
+<p class="p12">a.source = { <span class="s3">Ringz</span>.ar(<span class="s3">Impulse</span>.ar(0.5, 0, 0.3), 3000, 0.01) };</p>
+<p class="p12">a[1] = { <span class="s3">Ringz</span>.ar(<span class="s3">Impulse</span>.ar([0.5, 1], 0, 0.3), 1000, 0.01) };</p>
+<p class="p12">a[2] = { <span class="s3">Ringz</span>.ar(<span class="s3">Impulse</span>.ar([3, 5]/2, 0, 0.3), 8000, 0.01) };</p>
+<p class="p12">a[3] = { <span class="s3">Ringz</span>.ar(<span class="s3">Impulse</span>.ar([3, 5]*16, 0, 0.3), 5000, 0.01) * <span class="s3">LFPulse</span>.kr(0.5, 0, 0.05) };</p>
+<p class="p10"><br></p>
+<p class="p12">a.removeLast;</p>
+<p class="p12">a.removeAt(2);</p>
+<p class="p10"><br></p>
+<p class="p12">a.clear;</p>
+<p class="p10"><br></p>
+<p class="p13"><span class="s8">using patterns - event streams</span></p>
+<p class="p10"><br></p>
+<p class="p10"><br></p>
+<p class="p10"><br></p>
+<p class="p12">(</p>
+<p class="p11">// must have 'out' or 'i_out' argument to work properly</p>
+<p class="p12"><span class="s3">SynthDef</span>(<span class="s6">"who"</span>, { <span class="s3">arg</span> freq, gate=1, out=0, ffreq=800, amp=0.1;<span class="Apple-converted-space"> </span></p>
+<p class="p12"><span class="Apple-tab-span">	</span><span class="s3">var</span> env;</p>
+<p class="p12"><span class="Apple-tab-span">	</span>env = <span class="s3">Env</span>.asr(0.01, amp, 0.5);</p>
+<p class="p12"><span class="Apple-tab-span">	</span><span class="s3">Out</span>.ar(out, <span class="s3">Pan2</span>.ar(</p>
+<p class="p12"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s3">Formant</span>.ar(freq, ffreq, 300, <span class="s3">EnvGen</span>.kr(env, gate, doneAction:2)), <span class="s3">Rand</span>(-1.0, 1.0))</p>
+<p class="p12"><span class="Apple-tab-span">	</span>)</p>
+<p class="p12">}).store;</p>
+<p class="p10"><br></p>
+<p class="p12">)</p>
+<p class="p10"><br></p>
+<p class="p10"><br></p>
+<p class="p12">(</p>
+<p class="p12">s.boot;</p>
+<p class="p12">a = <span class="s3">NodeProxy</span>.audio(s, 2);</p>
+<p class="p12">a.fadeTime = 2;</p>
+<p class="p12">b = <span class="s3">NodeProxy</span>.audio(s,2);</p>
+<p class="p12">b.fadeTime = 3;</p>
+<p class="p12">)</p>
+<p class="p10"><br></p>
+<p class="p11"><span class="s4">a.play; </span>// monitor output</p>
+<p class="p10"><br></p>
+<p class="p11">// play the pattern silently in b</p>
+<p class="p12">b.source = <span class="s3">Pbind</span>(<span class="s5">\instrument</span>, <span class="s5">\who</span>, <span class="s5">\freq</span>, 500, <span class="s5">\ffreq</span>, 700, <span class="s5">\legato</span>, 0.02);</p>
+<p class="p10"><br></p>
+<p class="p11">// play b out through a:</p>
+<p class="p12">a.source = b;</p>
+<p class="p10"><br></p>
+<p class="p11">// filter b with ring modulation:</p>
+<p class="p12">a.source = {<span class="Apple-converted-space">  </span>b.ar<span class="Apple-converted-space">  </span>* <span class="s3">SinOsc</span>.ar(<span class="s3">SinOsc</span>.kr(0.2, 300, 330))<span class="Apple-converted-space">  </span>}; <span class="s7">// filter the input of the pattern</span></p>
+<p class="p12">a.source = {<span class="Apple-converted-space">  </span>b.ar * <span class="s3">LFCub</span>.ar([2, 8], add: -0.5)<span class="Apple-converted-space">  </span>}; <span class="s7">// filter the input of the pattern</span></p>
+<p class="p10"><br></p>
+<p class="p12">a.source = b;</p>
+<p class="p10"><br></p>
+<p class="p11">// map b to another proxy</p>
+<p class="p12">c = <span class="s3">NodeProxy</span>.control(s, 1).fadeTime_(1);</p>
+<p class="p12">c.source = { <span class="s3">SinOsc</span>.kr(2, 0, 400, 700) };</p>
+<p class="p10"><br></p>
+<p class="p10"><br></p>
+<p class="p11">// now one can simply embed a control node proxy into an event pattern.</p>
+<p class="p11">// (this works not for \degree, \midinote, etc.)</p>
+<p class="p11">// embedding in other patterns it will still return itself.</p>
+<p class="p10"><br></p>
+<p class="p10"><br></p>
+<p class="p12">b.source = <span class="s3">Pbind</span>(<span class="s5">\instrument</span>, <span class="s5">\who</span>, <span class="s5">\freq</span>, 500, <span class="s5">\ffreq</span>, c, <span class="s5">\legato</span>, 0.02);</p>
+<p class="p10"><br></p>
+<p class="p12">c.source = { <span class="s3">SinOsc</span>.kr(<span class="s3">SinOsc</span>.kr(0.2, 0, 10, 10), 0, 400, 700) };</p>
+<p class="p10"><br></p>
+<p class="p12">c.source = { <span class="s3">LFNoise1</span>.kr(5, 1300, 1500) };</p>
+<p class="p12">c.source = { <span class="s3">MouseX</span>.kr(100, 5500, 1) };</p>
+<p class="p10"><br></p>
+<p class="p12">(</p>
+<p class="p12">b.source = <span class="s3">Pbind</span>(</p>
+<p class="p14"><span class="s4"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>\instrument<span class="s4">, </span>\who<span class="s4">,<span class="Apple-converted-space"> </span></span></p>
+<p class="p12"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s5">\freq</span>, <span class="s3">Pseq</span>([600, 350, 300],<span class="s3">inf</span>),</p>
+<p class="p12"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s5">\legato</span>, 0.1,</p>
+<p class="p12"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s5">\ffreq</span>, <span class="s3">Pseq</span>([c, 100, c, 100, 300, 600], <span class="s3">inf</span>), <span class="s7">// use proxy in a pattern</span></p>
+<p class="p12"><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>([1, 0.5, 0.75, 0.25] * 0.4, <span class="s3">inf</span>),</p>
+<p class="p12"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s5">\amp</span>, <span class="s3">Pseq</span>([0.2, 0.2, 0.1, 0.1, 0.2], <span class="s3">inf</span>)</p>
+<p class="p12"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>);</p>
+<p class="p12">)</p>
+<p class="p10"><br></p>
+<p class="p10"><span class="Apple-converted-space"> </span></p>
+<p class="p10"><br></p>
+<p class="p12">b[2] = <span class="s3">Pbind</span>(<span class="s5">\instrument</span>, <span class="s5">\who</span>, <span class="s5">\freq</span>, 620, <span class="s5">\ffreq</span>, <span class="s3">Prand</span>([500,c],<span class="s3">inf</span>), <span class="s5">\legato</span>, 0.1, <span class="s5">\dur</span>, 0.1);</p>
+<p class="p6">b[3] = <span class="s9">Pbind</span>(<span class="s10">\instrument</span>, <span class="s10">\who</span>, <span class="s10">\ffreq</span>, 5000, <span class="s10">\freq</span>, <span class="s9">Pseq</span>([720, 800],<span class="s9">inf</span>), <span class="s10">\legato</span>, 0.1, <span class="s10">\dur</span>, 0.1, <span class="s10">\amp</span>, 0.01);</p>
+<p class="p6">b[4] = <span class="s9">Pbind</span>(<span class="s10">\instrument</span>, <span class="s10">\who</span>, <span class="s10">\freq</span>, <span class="s9">Pseq</span>([700, 400],<span class="s9">inf</span>), <span class="s10">\legato</span>, 0.1, <span class="s10">\ffreq</span>, 200);</p>
+<p class="p6">b[1] = { <span class="s9">WhiteNoise</span>.ar([0.01,0.01]) };<span class="Apple-converted-space"> </span></p>
+<p class="p6">b[4] = { <span class="s9">arg</span> ffreq=800; <span class="s9">Resonz</span>.ar(<span class="s9">WhiteNoise</span>.ar([1,1]), ffreq, 0.05) };<span class="Apple-converted-space"> </span></p>
 <p class="p2"><br></p>
 <p class="p2"><br></p>
-<p class="p2"><br></p>
-<p class="p8">// examples</p>
-<p class="p6">s = <span class="s3">Server</span>.local;</p>
-<p class="p6">s.boot;</p>
-<p class="p2"><br></p>
-<p class="p2"><br></p>
-<p class="p1"><b>using node proxy with ugen functions</b></p>
-<p class="p2"><br></p>
-<p class="p2"><br></p>
-<p class="p6">a = <span class="s3">NodeProxy</span>.audio(s, 2);</p>
-<p class="p8"><span class="s4">a.play; </span>// play to hardware output, return a group with synths</p>
-<p class="p2"><br></p>
-<p class="p8">// setting the source</p>
-<p class="p6">a.source = { <span class="s3">SinOsc</span>.ar([350, 351.3], 0, 0.2) };</p>
-<p class="p2"><br></p>
-<p class="p8">// the proxy has two channels now:</p>
-<p class="p6">a.numChannels.postln;</p>
-<p class="p6">a.source = { <span class="s3">SinOsc</span>.ar([390, 286] * 1.2, 0, 0.2) };</p>
-<p class="p2"><br></p>
-<p class="p8">// exeeding channels wrap:</p>
-<p class="p6">a.source = { <span class="s3">SinOsc</span>.ar([390, 286, 400, 420, 300] * 1.2, 0, 0.2) };</p>
-<p class="p2"><br></p>
-<p class="p8">// other inputs</p>
-<p class="p6">a.source = { <span class="s3">WhiteNoise</span>.ar([0.01,0.01]) };</p>
-<p class="p6">a.source = 0;</p>
-<p class="p8"><span class="s4">a.source = </span><span class="s5">\default</span><span class="s4">; </span>// synthDef on server</p>
-<p class="p6">a.source = <span class="s3">SynthDef</span>(<span class="s6">"w"</span>, { <span class="s3">arg</span> out=0; <span class="s3">Out</span>.ar(out,<span class="s3">SinOsc</span>.ar([<span class="s3">Rand</span>(430, 600), 600], 0, 0.2)) });</p>
-<p class="p8"><span class="s4">a.source = </span><span class="s3">nil</span><span class="s4">; </span>//<span class="Apple-converted-space">  </span>removes any object</p>
-<p class="p2"><br></p>
-<p class="p8">// feedback</p>
-<p class="p6">a.source = { <span class="s3">SinOsc</span>.ar(a.ar * 7000 * <span class="s3">LFNoise1</span>.kr(1, 0.3, 0.6) + 200, 0, 0.1) };</p>
-<p class="p6">a.source = { <span class="s3">SinOsc</span>.ar(a.ar * 6000 * <span class="s3">MouseX</span>.kr(0, 2) + [100, 104], 0, 0.1) };</p>
-<p class="p2"><br></p>
-<p class="p8">// fadeTime</p>
-<p class="p6">a.fadeTime = 2.0;</p>
-<p class="p6">a.source = { <span class="s3">SinOsc</span>.ar([390, 286] * <span class="s3">ExpRand</span>(1, 3), 0, 0.2) };</p>
-<p class="p2"><br></p>
-<p class="p2"><br></p>
-<p class="p8">// adding nodes</p>
-<p class="p6">a.add({ <span class="s3">SinOsc</span>.ar([50, 390]*1.25, 0, 0.1) });</p>
-<p class="p6">a.add({ <span class="s3">BrownNoise</span>.ar([0.02,0.02]) });</p>
-<p class="p2"><br></p>
-<p class="p8">// setting nodes at indices:</p>
-<p class="p6">a[0] = { <span class="s3">SinOsc</span>.ar( 700 * <span class="s3">LFNoise1</span>.kr(1, 0.3, 0.6) + 200, 0, 0.1) };</p>
-<p class="p6">a[1] = { <span class="s3">LFPulse</span>.kr(3, 0.3) * <span class="s3">SinOsc</span>.ar(500, 0, 0.1) };</p>
-<p class="p6">a[2] = { <span class="s3">LFPulse</span>.kr(3.5, 0.3) * <span class="s3">SinOsc</span>.ar(600, 0, 0.1) };</p>
-<p class="p6">a[3] = { <span class="s3">SinOsc</span>.ar([1,1.25] * 840, 0, 0.1) };</p>
-<p class="p2"><br></p>
-<p class="p8">// filtering: the first argument is the previous bus content. more args can be used as usual.</p>
-<p class="p6">a[3] = <span class="s5">\filter</span> -&gt; { <span class="s3">arg</span> in; in * <span class="s3">SinOsc</span>.ar(<span class="s3">Rand</span>(100,1000)) };</p>
-<p class="p6">a[2] = <span class="s5">\filter</span> -&gt; { <span class="s3">arg</span> in; in * <span class="s3">MouseY</span>.kr(0,1) };</p>
-<p class="p6">a[8] = <span class="s5">\filter</span> -&gt; { <span class="s3">arg</span> in; in * <span class="s3">MouseX</span>.kr(0,1) };</p>
-<p class="p6">a[4] = <span class="s5">\filter</span> -&gt; { <span class="s3">arg</span> in; in * <span class="s3">SinOsc</span>.ar(<span class="s3">ExpRand</span>(1,5)).max(0) };</p>
-<p class="p2"><br></p>
-<p class="p2"><br></p>
-<p class="p2"><br></p>
-<p class="p8">// setting controls</p>
-<p class="p6">a.fadeTime = 2.0;</p>
-<p class="p6">a.source = { <span class="s3">arg</span> f=400; <span class="s3">SinOsc</span>.ar(f * [1,1.2] * rrand(0.9, 1.1), 0, 0.1) };</p>
-<p class="p6">a.set(<span class="s5">\f</span>, rrand(900, 300));</p>
-<p class="p6">a.set(<span class="s5">\f</span>, rrand(1500, 700));</p>
-<p class="p6">a.xset(<span class="s5">\f</span>, rrand(1500, 700)); <span class="s7">// crossfaded setting</span></p>
-<p class="p6">a.source = { <span class="s3">arg</span> f=400; <span class="s3">RLPF</span>.ar(<span class="s3">Pulse</span>.ar(f * [1,1.02] * 0.05, 0.5, 0.2), f * 0.58, 0.2) };</p>
-<p class="p2"><br></p>
-<p class="p8">// control lags</p>
-<p class="p6">a.fadeTime = 0.01;</p>
-<p class="p8"><span class="s4">a.lag(</span><span class="s5">\f</span><span class="s4">, 0.5); </span>// the objects are built again internally and sent to the server.</p>
-<p class="p6">a.set(<span class="s5">\f</span>, rrand(1500, 700));</p>
-<p class="p6">a.lag(<span class="s5">\f</span>, <span class="s3">nil</span>);</p>
-<p class="p6">a.set(<span class="s5">\f</span>, rrand(1500, 700));</p>
-<p class="p6">a.fadeTime = 1.0;</p>
-<p class="p2"><br></p>
-<p class="p8">// mapping controls to other node proxies</p>
-<p class="p2"><br></p>
-<p class="p6">c = <span class="s3">NodeProxy</span>.control(s, 2);</p>
-<p class="p6">c.source = { <span class="s3">SinOsc</span>.kr([10,20] * 0.1, 0, 150, 1300) };</p>
-<p class="p6">a.map(<span class="s5">\f</span>, c);</p>
-<p class="p6">a[0] = { <span class="s3">arg</span> f=400; <span class="s3">RHPF</span>.ar(<span class="s3">Pulse</span>.ar(f * [1,1.2] * 0.05, 0.5, 0.2), f * 0.58, 0.2) };</p>
-<p class="p6">c.source = { <span class="s3">SinOsc</span>.kr([10,16] * 0.02, 0, 50, 700) };</p>
-<p class="p6">c.source = { <span class="s3">Line</span>.kr(300, 1500, 10) + <span class="s3">SinOsc</span>.kr(20 * [1,2], 0, 100) };</p>
-<p class="p6">a[1] = { <span class="s3">arg</span> f; <span class="s3">LFPar</span>.ar(f % <span class="s3">MouseX</span>.kr(1, 40, 1) * 4 + 360, 0, 0.2) };</p>
-<p class="p2"><br></p>
-<p class="p8">// map multiple channels of one proxy to multiple controls of another</p>
-<p class="p8">// recently changed behaviour!</p>
-<p class="p2"><br></p>
-<p class="p6">a.source = { <span class="s3">arg</span> f=#[400, 400]; <span class="s3">LPF</span>.ar(<span class="s3">Pulse</span>.ar(f[0] * [0.4,1], 0.2, 0.2), f[1] * 3) };</p>
-<p class="p8"><span class="s4">a.map(</span><span class="s5">\f</span><span class="s4">, c); </span>// multichannel proxy c is mapped to multichannel control of a</p>
-<p class="p6">a.source = { <span class="s3">arg</span> f=#[400, 400]; <span class="s3">LPF</span>.ar(<span class="s3">Pulse</span>.ar(f, 0.2, 0.2), f[1]) };</p>
-<p class="p6">a.source = { <span class="s3">arg</span> f=#[400, 400]; <span class="s3">Formant</span>.ar(140, f * 1.5, 100, 0.1)<span class="Apple-converted-space">  </span>};</p>
-<p class="p6">c.source = { <span class="s3">SinOsc</span>.kr([<span class="s3">Line</span>.kr(1, 30, 10), 1], 0, [100, 700], [300, 700]) };</p>
-<p class="p6">c.source = 400;</p>
-<p class="p2"><br></p>
-<p class="p2"><br></p>
-<p class="p6">c.fadeTime = 5.5;</p>
-<p class="p6">c.source = { <span class="s3">LFNoise0</span>.kr([2.3, 1.0], [100, 700], [300, 1700]) };</p>
-<p class="p6">c.source = { <span class="s3">SinOsc</span>.kr([2.3, 1.0], 0, [100, 700], [300, 1700]) };</p>
-<p class="p6">c.source = 400;</p>
-<p class="p2"><br></p>
-<p class="p2"><br></p>
-<p class="p8">// behave like a sc2 plug</p>
-<p class="p6">c.gate(1400, 0.1);</p>
-<p class="p6">c.gate(1000, 0.1);</p>
-<p class="p6">c.line(1000, 1);</p>
-<p class="p2"><br></p>
-<p class="p8">// direct access</p>
-<p class="p6">a.lineAt(<span class="s5">\f</span>, 300, 2);</p>
-<p class="p6">a.xlineAt(<span class="s5">\f</span>, 600, 0.3);</p>
-<p class="p6">a.gateAt(<span class="s5">\f</span>, 1600, 0.3);</p>
-<p class="p2"><br></p>
-<p class="p2"><br></p>
-<p class="p8">// changing nodeMaps</p>
-<p class="p6">a.unmap(<span class="s5">\f</span>);</p>
-<p class="p6">n = a.nodeMap.copy;</p>
-<p class="p6">n.set(<span class="s5">\f</span>, 700);</p>
-<p class="p6">a.fadeToMap(n);</p>
-<p class="p6">n = a.nodeMap.copy;</p>
-<p class="p6">n.set(<span class="s5">\f</span>, 400);</p>
-<p class="p6">a.fadeTime = 1.0;</p>
-<p class="p8"><span class="s4">a.fadeToMap(n, [</span><span class="s5">\f</span><span class="s4">]); </span>// linear interpolation to new map: experimental</p>
-<p class="p8"><span class="s4">a.map(</span><span class="s5">\f</span><span class="s4">, c); </span>// restore mapping</p>
-<p class="p2"><br></p>
-<p class="p2"><br></p>
-<p class="p8">// sending envelopes (up to 8 levels)</p>
-<p class="p6">w = <span class="s3">Env</span>.new(<span class="s3">Array</span>.rand(3, 400, 1000),<span class="s3">Array</span>.rand(2, 0.3, 0.001), -4);</p>
-<p class="p6">c.env(w);</p>
-<p class="p6">c.env(w);</p>
-<p class="p6">w = <span class="s3">Env</span>.new(<span class="s3">Array</span>.rand(8, 400, 1000),<span class="s3">Array</span>.rand(7, 0.03, 0.1));</p>
-<p class="p6">c.env(w);</p>
-<p class="p6">c.env(w);</p>
-<p class="p2"><br></p>
-<p class="p8">// stop synthesis, then wake up proxies:</p>
-<p class="p2"><br></p>
-<p class="p8"><span class="s4">a.stop; </span>// stop the monitor</p>
-<p class="p8"><span class="s4">a.play; </span>// start the monitor</p>
-<p class="p8"><span class="s4">a.end;<span class="Apple-tab-span">	</span></span>// release the synths and stop the monitor</p>
-<p class="p8"><span class="s4">c.free;<span class="Apple-converted-space">  </span></span>// free the control proxy c</p>
-<p class="p2"><br></p>
-<p class="p2"><br></p>
-<p class="p2"><br></p>
-<p class="p9"><span class="s2">channel offset/object index</span></p>
-<p class="p2"><br></p>
-<p class="p6">a = <span class="s3">NodeProxy</span>.audio(s,2);</p>
-<p class="p6">a.play;</p>
-<p class="p6">a[0] = { <span class="s3">Ringz</span>.ar(<span class="s3">Impulse</span>.ar(5, 0, 0.1), 1260) };</p>
-<p class="p6">a.put(1, { <span class="s3">Ringz</span>.ar(<span class="s3">Impulse</span>.ar(5.3, 0, 0.1), 420) }, 1);</p>
-<p class="p6">a.put(0, { <span class="s3">Ringz</span>.ar(<span class="s3">Dust</span>.ar([1,1]*15.3,<span class="Apple-converted-space">  </span>0.1), 720) }, 1);</p>
-<p class="p6">a.put(1, { <span class="s3">Ringz</span>.ar(<span class="s3">Impulse</span>.ar(5.3, 0, 0.1), 420) }, 1);</p>
-<p class="p6">a.end;</p>
-<p class="p2"><br></p>
-<p class="p2"><br></p>
-<p class="p2"><br></p>
-<p class="p9"><span class="s2">beat accurate playing</span></p>
-<p class="p2"><br></p>
-<p class="p2"><br></p>
-<p class="p6">a = <span class="s3">NodeProxy</span>.audio(s,2);</p>
-<p class="p6">a.play;</p>
-<p class="p2"><br></p>
-<p class="p6">a.clock = <span class="s3">TempoClock</span>(2.0).permanent_(<span class="s3">true</span>); <span class="s7">// round to every 2.0 seconds</span></p>
-<p class="p6">a.source = { <span class="s3">Ringz</span>.ar(<span class="s3">Impulse</span>.ar(0.5, 0, 0.3), 3000, 0.01) };</p>
-<p class="p6">a[1] = { <span class="s3">Ringz</span>.ar(<span class="s3">Impulse</span>.ar([0.5, 1], 0, 0.3), 1000, 0.01) };</p>
-<p class="p6">a[2] = { <span class="s3">Ringz</span>.ar(<span class="s3">Impulse</span>.ar([3, 5]/2, 0, 0.3), 8000, 0.01) };</p>
-<p class="p6">a[3] = { <span class="s3">Ringz</span>.ar(<span class="s3">Impulse</span>.ar([3, 5]*16, 0, 0.3), 5000, 0.01) * <span class="s3">LFPulse</span>.kr(0.5, 0, 0.05) };</p>
-<p class="p2"><br></p>
-<p class="p6">a.removeLast;</p>
-<p class="p6">a.removeAt(2);</p>
-<p class="p2"><br></p>
-<p class="p6">a.clear;</p>
-<p class="p2"><br></p>
-<p class="p9"><span class="s2">using patterns - event streams</span></p>
-<p class="p2"><br></p>
-<p class="p2"><br></p>
-<p class="p2"><br></p>
-<p class="p6">(</p>
-<p class="p8">// must have 'out' or 'i_out' argument to work properly</p>
-<p class="p6"><span class="s3">SynthDef</span>(<span class="s6">"who"</span>, { <span class="s3">arg</span> freq, gate=1, out=0, ffreq=800, amp=0.1;<span class="Apple-converted-space"> </span></p>
-<p class="p6"><span class="Apple-tab-span">	</span><span class="s3">var</span> env;</p>
-<p class="p6"><span class="Apple-tab-span">	</span>env = <span class="s3">Env</span>.asr(0.01, amp, 0.5);</p>
-<p class="p6"><span class="Apple-tab-span">	</span><span class="s3">Out</span>.ar(out, <span class="s3">Pan2</span>.ar(</p>
-<p class="p6"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s3">Formant</span>.ar(freq, ffreq, 300, <span class="s3">EnvGen</span>.kr(env, gate, doneAction:2)), <span class="s3">Rand</span>(-1.0, 1.0))</p>
-<p class="p6"><span class="Apple-tab-span">	</span>)</p>
-<p class="p6">}).store;</p>
-<p class="p2"><br></p>
-<p class="p6">)</p>
-<p class="p2"><br></p>
-<p class="p2"><br></p>
-<p class="p6">(</p>
-<p class="p6">s.boot;</p>
-<p class="p6">a = <span class="s3">NodeProxy</span>.audio(s, 2);</p>
-<p class="p6">a.fadeTime = 2;</p>
-<p class="p6">b = <span class="s3">NodeProxy</span>.audio(s,2);</p>
-<p class="p6">b.fadeTime = 3;</p>
-<p class="p6">)</p>
-<p class="p2"><br></p>
-<p class="p8"><span class="s4">a.play; </span>// monitor output</p>
-<p class="p2"><br></p>
-<p class="p8">// play the pattern silently in b</p>
-<p class="p6">b.source = <span class="s3">Pbind</span>(<span class="s5">\instrument</span>, <span class="s5">\who</span>, <span class="s5">\freq</span>, 500, <span class="s5">\ffreq</span>, 700, <span class="s5">\legato</span>, 0.02);</p>
-<p class="p2"><br></p>
-<p class="p8">// play b out through a:</p>
-<p class="p6">a.source = b;</p>
-<p class="p2"><br></p>
-<p class="p8">// filter b with ring modulation:</p>
-<p class="p6">a.source = {<span class="Apple-converted-space">  </span>b.ar<span class="Apple-converted-space">  </span>* <span class="s3">SinOsc</span>.ar(<span class="s3">SinOsc</span>.kr(0.2, 300, 330))<span class="Apple-converted-space">  </span>}; <span class="s7">// filter the input of the pattern</span></p>
-<p class="p6">a.source = {<span class="Apple-converted-space">  </span>b.ar * <span class="s3">LFCub</span>.ar([2, 8], add: -0.5)<span class="Apple-converted-space">  </span>}; <span class="s7">// filter the input of the pattern</span></p>
-<p class="p2"><br></p>
-<p class="p6">a.source = b;</p>
-<p class="p2"><br></p>
-<p class="p8">// map b to another proxy</p>
-<p class="p6">c = <span class="s3">NodeProxy</span>.control(s, 1).fadeTime_(1);</p>
-<p class="p6">c.source = { <span class="s3">SinOsc</span>.kr(2, 0, 400, 700) };</p>
-<p class="p2"><br></p>
-<p class="p2"><br></p>
-<p class="p8">// now one can simply embed a control node proxy into an event pattern.</p>
-<p class="p8">// (this works not for \degree, \midinote, etc.)</p>
-<p class="p8">// embedding in other patterns it will still return itself.</p>
-<p class="p2"><br></p>
-<p class="p2"><br></p>
-<p class="p6">b.source = <span class="s3">Pbind</span>(<span class="s5">\instrument</span>, <span class="s5">\who</span>, <span class="s5">\freq</span>, 500, <span class="s5">\ffreq</span>, c, <span class="s5">\legato</span>, 0.02);</p>
-<p class="p2"><br></p>
-<p class="p6">c.source = { <span class="s3">SinOsc</span>.kr(<span class="s3">SinOsc</span>.kr(0.2, 0, 10, 10), 0, 400, 700) };</p>
-<p class="p2"><br></p>
-<p class="p6">c.source = { <span class="s3">LFNoise1</span>.kr(5, 1300, 1500) };</p>
-<p class="p6">c.source = { <span class="s3">MouseX</span>.kr(100, 5500, 1) };</p>
-<p class="p2"><br></p>
-<p class="p6">(</p>
-<p class="p6">b.source = <span class="s3">Pbind</span>(</p>
-<p class="p10"><span class="s4"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>\instrument<span class="s4">, </span>\who<span class="s4">,<span class="Apple-converted-space"> </span></span></p>
-<p class="p6"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s5">\freq</span>, <span class="s3">Pseq</span>([600, 350, 300],<span class="s3">inf</span>),</p>
-<p class="p6"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s5">\legato</span>, 0.1,</p>
-<p class="p6"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s5">\ffreq</span>, <span class="s3">Pseq</span>([c, 100, c, 100, 300, 600], <span class="s3">inf</span>), <span class="s7">// use proxy in a pattern</span></p>
-<p class="p6"><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>([1, 0.5, 0.75, 0.25] * 0.4, <span class="s3">inf</span>),</p>
-<p class="p6"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s5">\amp</span>, <span class="s3">Pseq</span>([0.2, 0.2, 0.1, 0.1, 0.2], <span class="s3">inf</span>)</p>
-<p class="p6"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>);</p>
-<p class="p6">)</p>
-<p class="p2"><br></p>
-<p class="p2"><span class="Apple-converted-space"> </span></p>
-<p class="p2"><br></p>
-<p class="p6">b[2] = <span class="s3">Pbind</span>(<span class="s5">\instrument</span>, <span class="s5">\who</span>, <span class="s5">\freq</span>, 620, <span class="s5">\ffreq</span>, <span class="s3">Prand</span>([500,c],<span class="s3">inf</span>), <span class="s5">\legato</span>, 0.1, <span class="s5">\dur</span>, 0.1);</p>
-<p class="p6">b[3] = <span class="s3">Pbind</span>(<span class="s5">\instrument</span>, <span class="s5">\who</span>, <span class="s5">\ffreq</span>, 5000, <span class="s5">\freq</span>, <span class="s3">Pseq</span>([720, 800],<span class="s3">inf</span>), <span class="s5">\legato</span>, 0.1, <span class="s5">\dur</span>, 0.1, <span class="s5">\amp</span>, 0.01);</p>
-<p class="p6">b[4] = <span class="s3">Pbind</span>(<span class="s5">\instrument</span>, <span class="s5">\who</span>, <span class="s5">\freq</span>, <span class="s3">Pseq</span>([700, 400],<span class="s3">inf</span>), <span class="s5">\legato</span>, 0.1, <span class="s5">\ffreq</span>, 200);</p>
-<p class="p6">b[1] = { <span class="s3">WhiteNoise</span>.ar([0.01,0.01]) };<span class="Apple-converted-space"> </span></p>
-<p class="p6">b[4] = { <span class="s3">arg</span> ffreq=800; <span class="s3">Resonz</span>.ar(<span class="s3">WhiteNoise</span>.ar([1,1]), ffreq, 0.05) };<span class="Apple-converted-space"> </span></p>
-<p class="p2"><br></p>
-<p class="p2"><br></p>
-<p class="p8"><span class="s4">b.map(</span><span class="s5">\ffreq</span><span class="s4">, c); </span>// map the control to the proxy</p>
+<p class="p15"><span class="s4">b.map(</span><span class="s10">\ffreq</span><span class="s4">, c); </span>// map the control to the proxy</p>
 <p class="p6">b.removeLast;</p>
 <p class="p6">b.removeLast;</p>
-<p class="p6">a.source = {<span class="Apple-converted-space">  </span>b.ar * <span class="s3">WhiteNoise</span>.ar(0.1, 1)<span class="Apple-converted-space">  </span>};<span class="Apple-converted-space"> </span></p>
-<p class="p6">a.source = {<span class="Apple-converted-space">  </span>b.ar * <span class="s3">WhiteNoise</span>.ar(0.1, 1) + (b.ar * <span class="s3">SinOsc</span>.ar(<span class="s3">SinOsc</span>.kr(0.01, 0, 50, 330)))<span class="Apple-converted-space">  </span>};<span class="Apple-converted-space"> </span></p>
+<p class="p6">a.source = {<span class="Apple-converted-space">  </span>b.ar * <span class="s9">WhiteNoise</span>.ar(0.1, 1)<span class="Apple-converted-space">  </span>};<span class="Apple-converted-space"> </span></p>
+<p class="p6">a.source = {<span class="Apple-converted-space">  </span>b.ar * <span class="s9">WhiteNoise</span>.ar(0.1, 1) + (b.ar * <span class="s9">SinOsc</span>.ar(<span class="s9">SinOsc</span>.kr(0.01, 0, 50, 330)))<span class="Apple-converted-space">  </span>};<span class="Apple-converted-space"> </span></p>
 <p class="p2"><br></p>
-<p class="p6">c.source = { <span class="s3">XLine</span>.kr(1900, 10, 10) };</p>
+<p class="p6">c.source = { <span class="s9">XLine</span>.kr(1900, 10, 10) };</p>
 <p class="p2"><br></p>
-<p class="p6">a.clear; b.clear; c.clear; <span class="s7">// clear all, free bus</span></p>
+<p class="p6">a.clear; b.clear; c.clear; <span class="s11">// clear all, free bus</span></p>
 <p class="p2"><br></p>
 <p class="p2"><span class="Apple-converted-space"> </span></p>
 <p class="p2"><br></p>


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.

_______________________________________________
sc-dev mailing list

info (subscription, etc.): http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml
archive: https://listarc.bham.ac.uk/marchives/sc-dev/
search: https://listarc.bham.ac.uk/lists/sc-dev/search/