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

[sc-dev] SF.net SVN: supercollider:[8244] trunk/build/Help/ServerArchitecture



Revision: 8244
          http://supercollider.svn.sourceforge.net/supercollider/?rev=8244&view=rev
Author:   rkuivila
Date:     2008-12-22 20:23:28 +0000 (Mon, 22 Dec 2008)

Log Message:
-----------
Updated references to include mention of array support for control values
in  s_new and n_set commands.

Modified Paths:
--------------
    trunk/build/Help/ServerArchitecture/Node.html
    trunk/build/Help/ServerArchitecture/Server-Command-Reference.html
    trunk/build/Help/ServerArchitecture/Synth.html

Modified: trunk/build/Help/ServerArchitecture/Node.html
===================================================================
--- trunk/build/Help/ServerArchitecture/Node.html	2008-12-22 17:14:36 UTC (rev 8243)
+++ trunk/build/Help/ServerArchitecture/Node.html	2008-12-22 20:23:28 UTC (rev 8244)
@@ -5,38 +5,39 @@
 <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: 12.0px Helvetica; min-height: 14.0px}
-p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #0000ff}
+p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #0018ea}
 p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Helvetica}
 p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Helvetica; min-height: 17.0px}
 p.p6 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 12.0px Helvetica; min-height: 14.0px}
 p.p7 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 12.0px Helvetica}
 p.p8 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 14.0px Helvetica; min-height: 17.0px}
 p.p9 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 9.0px Monaco}
-p.p10 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 9.0px Monaco; color: #902a19}
+p.p10 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 9.0px Monaco; color: #812d1f}
 p.p11 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 9.0px Monaco; color: #606060}
 p.p12 {margin: 0.0px 0.0px 0.0px 56.0px; text-indent: -56.0px; font: 12.0px Helvetica; min-height: 14.0px}
 p.p13 {margin: 0.0px 0.0px 0.0px 56.0px; text-indent: -56.0px; font: 9.0px Monaco}
 p.p14 {margin: 0.0px 0.0px 0.0px 56.0px; text-indent: -56.0px; font: 9.0px Monaco; min-height: 12.0px}
-p.p15 {margin: 0.0px 0.0px 0.0px 56.0px; text-indent: -56.0px; font: 9.0px Monaco; color: #902a19}
-p.p16 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #902a19}
+p.p15 {margin: 0.0px 0.0px 0.0px 56.0px; text-indent: -56.0px; font: 9.0px Monaco; color: #812d1f}
+p.p16 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #812d1f}
 p.p17 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 9.0px Monaco; min-height: 12.0px}
 p.p18 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 14.0px Helvetica}
 span.s1 {font: 18.0px Helvetica}
 span.s2 {color: #000000}
-span.s3 {color: #0000ff}
-span.s4 {font: 12.0px Helvetica}
-span.s5 {color: #091fb1}
-span.s6 {color: #606060}
-span.s7 {font: 9.0px Monaco}
-span.s8 {color: #456c20}
-span.s9 {color: #902a19}
-span.s10 {font: 14.0px Helvetica}
-span.s11 {font: 9.0px Monaco; color: #456c20}
-span.s12 {font: 12.0px Helvetica; color: #000000}
+span.s3 {text-decoration: underline}
+span.s4 {color: #001afb}
+span.s5 {font: 12.0px Helvetica}
+span.s6 {color: #0725ae}
+span.s7 {color: #606060}
+span.s8 {font: 9.0px Monaco}
+span.s9 {color: #4f6a22}
+span.s10 {color: #812d1f}
+span.s11 {font: 14.0px Helvetica}
+span.s12 {font: 9.0px Monaco; color: #4f6a22}
+span.s13 {font: 12.0px Helvetica; color: #000000}
 span.Apple-tab-span {white-space:pre}
 </style>
 </head>
@@ -45,17 +46,17 @@
 <p class="p2"><br></p>
 <p class="p1"><b>superclass: Object</b></p>
 <p class="p2"><br></p>
-<p class="p3"><span class="s2"><b>See also:</b> <a href="Server-Architecture.html">Server-Architecture</a>, <a href="Synth.html">Synth</a>, <a href="Group.html">Group</a>, <a href="RootNode.html">RootNode</a></span></p>
+<p class="p3"><span class="s2"><b>See also:</b> <a href="Server-Architecture.html"><span class="s3">Server-Architecture</span></a>, <a href="Synth.html"><span class="s3">Synth</span></a>, <a href="Group.html"><span class="s3">Group</span></a>, <a href="RootNode.html"><span class="s3">RootNode</span></a></span></p>
 <p class="p2"><br></p>
 <p class="p1">This class is the abstract super class of <b>Synth</b> and <b>Group</b>, which represent synth and group nodes on the server.<span class="Apple-converted-space">  </span>Node objects are not made explicitly, but Synth and Group are subclasses, and inherit the methods<span class="Apple-converted-space">  </span>documented below.</p>
 <p class="p2"><br></p>
 <p class="p4"><b>Freed Nodes and Node Status</b></p>
 <p class="p2"><br></p>
-<p class="p1">Nodes which you explicitly free using the methods free or release will have their group instance variable set to nil. However Nodes which are automatically freed after a certain time (for instance by an <a href="../UGens/Synth control/Envelopes/EnvGen.html"><span class="s3">EnvGen</span></a> with a doneAction of 2) will not. This keeps the implementation of the classes simple and lightweight. To have the current state of a Node tracked you can register it with an instance of <a href="../Control/NodeWatcher.html"><span class="s3">NodeWatcher</span></a>. This will enable two variables, isPlaying and isRunning, which you can use for checking purposes.</p>
+<p class="p1">Nodes which you explicitly free using the methods free or release will have their group instance variable set to nil. However Nodes which are automatically freed after a certain time (for instance by an <a href="../UGens/Synth control/Envelopes/EnvGen.html"><span class="s4">EnvGen</span></a> with a doneAction of 2) will not. This keeps the implementation of the classes simple and lightweight. To have the current state of a Node tracked you can register it with an instance of <a href="../Control/NodeWatcher.html"><span class="s4">NodeWatcher</span></a>. This will enable two variables, isPlaying and isRunning, which you can use for checking purposes.</p>
 <p class="p2"><br></p>
 <p class="p4"><b>Bundling</b></p>
 <p class="p2"><br></p>
-<p class="p1">Many of the methods below have two versions: a regular one which sends its corresponding message to the server immediately, and one which returns the message in an Array so that it can be added to a bundle. It is also possible to capture the messages generated by the regular methods using Server's automated bundling capabilities. See <a href="Server.html"><span class="s3">Server</span></a> and <a href="bundledCommands.html"><span class="s3">bundledCommands</span></a> for more details.</p>
+<p class="p1">Many of the methods below have two versions: a regular one which sends its corresponding message to the server immediately, and one which returns the message in an Array so that it can be added to a bundle. It is also possible to capture the messages generated by the regular methods using Server's automated bundling capabilities. See <a href="Server.html"><span class="s4">Server</span></a> and <a href="bundledCommands.html"><span class="s4">bundledCommands</span></a> for more details.</p>
 <p class="p5"><br></p>
 <p class="p4"><b>Accessing Instance Variables</b></p>
 <p class="p6"><br></p>
@@ -74,15 +75,15 @@
 <p class="p5"><br></p>
 <p class="p4"><b>Node Commands</b></p>
 <p class="p6"><br></p>
-<p class="p1">See the Node Commands section in <a href="Server-Command-Reference.html"><span class="s3">Server-Command-Reference</span></a><b> </b>for the OSC equivalents of the methods outlined below<b>.</b></p>
+<p class="p1">See the Node Commands section in <a href="Server-Command-Reference.html"><span class="s4">Server-Command-Reference</span></a><b> </b>for the OSC equivalents of the methods outlined below<b>.</b></p>
 <p class="p2"><br></p>
 <p class="p7"><b><span class="Apple-tab-span">	</span>free(sendFlag)<span class="Apple-converted-space"> </span></b></p>
 <p class="p7"><b><span class="Apple-tab-span">	</span>freeMsg</b><span class="Apple-converted-space"> </span></p>
 <p class="p6"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
 <p class="p7"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>Stop this Node and free it from it's parent group on the server.<b> </b>Once a Node has been freed, you cannot restart it. <b>sendFlag</b> is a boolean indicating whether the free message should be sent. If false an <b>n_free</b> message will not be sent to this Node's server, but its isPlaying and isRunning variables will be set to false. The default for <b>sendFlag</b> is true. If this Node is a <b>Group</b> this will free all Nodes within the Group.</p>
 <p class="p6"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
-<p class="p9"><span class="s4"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>s.boot;</p>
-<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x = <span class="s5">Synth</span>(<span class="s6">"default"</span>);</p>
+<p class="p9"><span class="s5"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>s.boot;</p>
+<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x = <span class="s6">Synth</span>(<span class="s7">"default"</span>);</p>
 <p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x.free;</p>
 <p class="p6"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
 <p class="p7"><span class="Apple-tab-span">	</span><b>run(boolean)</b></p>
@@ -90,12 +91,12 @@
 <p class="p6"><b><span class="Apple-tab-span">	</span></b><span class="Apple-tab-span">	</span></p>
 <p class="p7"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>Set the running state of this Node according to a boolean. False will pause the node without freeing it. The default is true. If this Node is a <b>Group</b> this will set the running state of all Nodes within the Group.</p>
 <p class="p6"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
-<p class="p9"><span class="s4"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>s.boot;</p>
-<p class="p7"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s7">(</span></p>
-<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x = <span class="s5">SynthDef</span>(<span class="s6">"help-node-set"</span>, {<span class="s5">arg</span> freq = 440, out = 0;<span class="Apple-converted-space"> </span></p>
-<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s5">Out</span>.ar(out, <span class="s5">SinOsc</span>.ar(freq, 0, 0.1));}).play(s);</p>
+<p class="p9"><span class="s5"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>s.boot;</p>
+<p class="p7"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s8">(</span></p>
+<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x = <span class="s6">SynthDef</span>(<span class="s7">"help-node-set"</span>, {<span class="s6">arg</span> freq = 440, out = 0;<span class="Apple-converted-space"> </span></p>
+<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s6">Out</span>.ar(out, <span class="s6">SinOsc</span>.ar(freq, 0, 0.1));}).play(s);</p>
 <p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>)</p>
-<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x.run(<span class="s5">false</span>);</p>
+<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x.run(<span class="s6">false</span>);</p>
 <p class="p10"><span class="s2"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x.run; </span>// default is true</p>
 <p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x.free;</p>
 <p class="p6"><span class="Apple-tab-span">	</span></p>
@@ -103,29 +104,45 @@
 <p class="p7"><b><span class="Apple-tab-span">	</span>setMsg(controlName, value ... moreArgs)</b></p>
 <p class="p6"><b><span class="Apple-tab-span">	</span></b><span class="Apple-tab-span">	</span></p>
 <p class="p7"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>Set controls in this Node to values. Controls are defined in a <b>SynthDef </b>as args or instances of <b>Control</b>. They are specified here using symbols, strings, or indices, and are listed in pairs with values. If this Node is a <b>Group</b> this will set all Nodes within the Group.</p>
-<p class="p6"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
+<p class="p6"><br></p>
 <p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>s.boot;</p>
 <p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>(</p>
-<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x = <span class="s5">SynthDef</span>(<span class="s6">"help-node-set"</span>, {<span class="s5">arg</span> freq = 440, out = 0;<span class="Apple-converted-space"> </span></p>
-<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s5">Out</span>.ar(out, <span class="s5">SinOsc</span>.ar(freq, 0, 0.1));}).play(s);</p>
+<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x = <span class="s6">SynthDef</span>(<span class="s7">"help-node-set"</span>, {<span class="s6">|</span> freq = 440, out = 0 |</p>
+<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s6">Out</span>.ar(out, <span class="s6">SinOsc</span>.ar(freq, 0, 0.1));</p>
+<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>});</p>
+<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x = x.play(s);</p>
 <p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>)</p>
-<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x.set(<span class="s8">\freq</span>, 880, <span class="s8">\out</span>, 1); <span class="s9">// two pairs</span></p>
+<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x.set(<span class="s9">\freq</span>, 880, <span class="s9">\out</span>, 1); <span class="s10">// two pairs</span></p>
 <p class="p10"><span class="s2"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x.set(0, 660, 1, 0); </span>// freq is the first argument, so it's index is 0. out is index 1.</p>
 <p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x.free;</p>
+<p class="p6"><br></p>
+<p class="p7"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>Values that are arrays are sent using the OSC array type-tags ($[ and $]).<span class="Apple-converted-space">  </span>These values will be assigned to subsequent controls in the manner of setn.</p>
+<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>s.boot;</p>
+<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>(</p>
+<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x = <span class="s6">SynthDef</span>(<span class="s7">"help-node-set"</span>, {<span class="s6">|</span> freq = #[440, 450, 460], out = 0 |</p>
+<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s6">Out</span>.ar(out, Mix(<span class="s6">SinOsc</span>.ar(freq, 0, 0.1)));</p>
+<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>});</p>
+<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x = x.play(s);</p>
+<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>)</p>
+<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x.set(<span class="s9">\freq</span>, [1,2,3] * 400 + [1,2,3], <span class="s9">\out</span>, 1); <span class="s10">// two pairs</span></p>
+<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x.set(<span class="s9">\freq</span>, [3] * 400 + [1,2,3], <span class="s9">\out</span>, 1); <span class="s10">// two pairs</span></p>
+<p class="p10"><span class="s2"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x.set(0, [660, 680, 720], 1, 0); </span>// freq is the first argument, so it's index is 0. out is index 1.</p>
+<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x.free;</p>
+<p class="p6"><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><span class="Apple-tab-span">	</span></p>
 <p class="p7"><span class="Apple-tab-span">	</span><b>setn(controlName, values ... moreArgs)</b></p>
 <p class="p7"><b><span class="Apple-tab-span">	</span>setnMsg(controlName, values ... moreArgs)</b></p>
 <p class="p6"><b><span class="Apple-tab-span">	</span></b></p>
 <p class="p7"><b><span class="Apple-tab-span">	</span></b><span class="Apple-tab-span">	</span>Set sequential ranges of controls in this Node to values. Controls are defined in a <b>SynthDef </b>as args or instances of <b>Control</b>. They are specified here using symbols, strings, or indices, and are listed in pairs with arrays of values. If this Node is a <b>Group</b> this will setn all Nodes within the Group.</p>
-<p class="p6"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
-<p class="p9"><span class="s4"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>s.boot;</p>
+<p class="p6"><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>
+<p class="p9"><span class="s5"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>s.boot;</p>
 <p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>(</p>
-<p class="p11"><span class="s2"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x = </span><span class="s5">SynthDef</span><span class="s2">(</span>"help-node-setn"<span class="s2">, {</span></p>
-<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s5">arg</span> freq1 = 440, freq2 = 440, freq3 = 440, amp1 = 0.05, amp2 = 0.05, amp3 = 0.05;<span class="Apple-converted-space"> </span></p>
-<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s5">Out</span>.ar(0, <span class="s5">Mix</span>(<span class="s5">SinOsc</span>.ar([freq1, freq2, freq3], 0, [amp1, amp2, amp3])));}).play(s);</p>
+<p class="p11"><span class="s2"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x = </span><span class="s6">SynthDef</span><span class="s2">(</span>"help-node-setn"<span class="s2">, {</span></p>
+<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s6">arg</span> freq1 = 440, freq2 = 440, freq3 = 440, amp1 = 0.05, amp2 = 0.05, amp3 = 0.05;<span class="Apple-converted-space"> </span></p>
+<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s6">Out</span>.ar(0, <span class="s6">Mix</span>(<span class="s6">SinOsc</span>.ar([freq1, freq2, freq3], 0, [amp1, amp2, amp3])));}).play(s);</p>
 <p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>)</p>
 <p class="p10"><span class="s2"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>// set 3 controls starting from \freq1, and 3 controls starting from \amp1</p>
-<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x.setn(<span class="s8">\freq1</span>, [440, 880, 441], <span class="s8">\amp1</span>, [0.3, 0.1, 0.3]);</p>
+<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x.setn(<span class="s9">\freq1</span>, [440, 880, 441], <span class="s9">\amp1</span>, [0.3, 0.1, 0.3]);</p>
 <p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x.free;</p>
 <p class="p6"><span class="Apple-tab-span">	</span></p>
 <p class="p7"><b><span class="Apple-tab-span">	</span>fill(controlName, numControls, value ... moreArgs)</b></p>
@@ -138,17 +155,17 @@
 <p class="p6"><b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b></p>
 <p class="p7"><b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b>Map sequential ranges of controls in this Node to read from control rate Buses. Controls are defined in a <b>SynthDef </b>as args or instances of <b>Control</b>. They are specified here using symbols, strings, or indices, and are listed in pairs with Bus objects. The number of sequential controls mapped corresponds to the Bus' number of channels. If this Node is a <b>Group</b> this will busMap all Nodes within the Group.</p>
 <p class="p12"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
-<p class="p13"><span class="s4"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>s.boot;</p>
+<p class="p13"><span class="s5"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>s.boot;</p>
 <p class="p13"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>(</p>
-<p class="p13"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>b = <span class="s5">Bus</span>.control(s, 2); b.set(440, 660);<span class="Apple-tab-span">	</span><span class="s9">// a two channel bus</span></p>
-<p class="p13"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>c = <span class="s5">Bus</span>.control(s, 1);<span class="Apple-tab-span">	</span>c.set(441);<span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s9">// a one channel bus</span></p>
-<p class="p13"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x = SynthDef("help-Node-busMap", { <span class="s5">arg</span> freq1 = 440, freq2 = 440, freq3 = 440;<span class="Apple-converted-space"> </span></p>
-<p class="p13"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>Out.ar(0, <span class="s5">Mix</span>(<span class="s5">SinOsc</span>.ar([freq1, freq2, freq3], 0, 0.1)));</p>
+<p class="p13"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>b = <span class="s6">Bus</span>.control(s, 2); b.set(440, 660);<span class="Apple-tab-span">	</span><span class="s10">// a two channel bus</span></p>
+<p class="p13"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>c = <span class="s6">Bus</span>.control(s, 1);<span class="Apple-tab-span">	</span>c.set(441);<span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s10">// a one channel bus</span></p>
+<p class="p13"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x = SynthDef("help-Node-busMap", { <span class="s6">arg</span> freq1 = 440, freq2 = 440, freq3 = 440;<span class="Apple-converted-space"> </span></p>
+<p class="p13"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>Out.ar(0, <span class="s6">Mix</span>(<span class="s6">SinOsc</span>.ar([freq1, freq2, freq3], 0, 0.1)));</p>
 <p class="p13"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>}).play(s);)</p>
 <p class="p14"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
 <p class="p15"><span class="s2"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>// b has two channels, so both freq2 and freq3 are mapped to its first and second channels<span class="Apple-converted-space"> </span></p>
 <p class="p15"><span class="s2"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>// respectively; c has one channel, so it maps only freq1</p>
-<p class="p13"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x.busMap(<span class="s8">\freq1</span>, c, <span class="s8">\freq2</span>, b);<span class="Apple-converted-space"> </span></p>
+<p class="p13"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x.busMap(<span class="s9">\freq1</span>, c, <span class="s9">\freq2</span>, b);<span class="Apple-converted-space"> </span></p>
 <p class="p13"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>b.set(440, 880);</p>
 <p class="p13"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>c.set(1200);</p>
 <p class="p13"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x.free; b.free; c.free;</p>
@@ -158,14 +175,14 @@
 <p class="p6"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
 <p class="p7"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>Map controls in this Node to read from control rate Buses. Controls are defined in a <b>SynthDef </b>as args or instances of <b>Control</b>. They are specified here using symbols, strings, or indices, and are listed in pairs with bus indices. If this Node is a <b>Group</b> this will map all Nodes within the Group.</p>
 <p class="p6"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
-<p class="p9"><span class="s4"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>s.boot;</p>
+<p class="p9"><span class="s5"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>s.boot;</p>
 <p class="p13"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>(</p>
-<p class="p13"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>b = <span class="s5">Bus</span>.control(s, 1); b.set(880);</p>
-<p class="p13"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>c = <span class="s5">Bus</span>.control(s, 1);<span class="Apple-tab-span">	</span>c.set(884);</p>
-<p class="p13"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x = <span class="s5">SynthDef</span>(<span class="s6">"help-Node-busMap"</span>, { <span class="s5">arg</span> freq1 = 440, freq2 = 440;<span class="Apple-converted-space"> </span></p>
-<p class="p13"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s5">Out</span>.ar(0, <span class="s5">SinOsc</span>.ar([freq1, freq2], 0, 0.1));</p>
+<p class="p13"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>b = <span class="s6">Bus</span>.control(s, 1); b.set(880);</p>
+<p class="p13"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>c = <span class="s6">Bus</span>.control(s, 1);<span class="Apple-tab-span">	</span>c.set(884);</p>
+<p class="p13"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x = <span class="s6">SynthDef</span>(<span class="s7">"help-Node-busMap"</span>, { <span class="s6">arg</span> freq1 = 440, freq2 = 440;<span class="Apple-converted-space"> </span></p>
+<p class="p13"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s6">Out</span>.ar(0, <span class="s6">SinOsc</span>.ar([freq1, freq2], 0, 0.1));</p>
 <p class="p13"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>}).play(s);)</p>
-<p class="p13"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x.map(<span class="s8">\freq1</span>, b, <span class="s8">\freq2</span>, c);</p>
+<p class="p13"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x.map(<span class="s9">\freq1</span>, b, <span class="s9">\freq2</span>, c);</p>
 <p class="p13"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x.free; b.free; c.free;</p>
 <p class="p6"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
 <p class="p7"><span class="Apple-tab-span">	</span><b>mapn(controlName, index, numControls ... moreArgs)</b></p>
@@ -176,28 +193,28 @@
 <p class="p7"><span class="Apple-tab-span">	</span><b>release(releaseTime)</b></p>
 <p class="p7"><b><span class="Apple-tab-span">	</span>releaseMsg(releaseTime)</b></p>
 <p class="p6"><b><span class="Apple-tab-span">	</span></b></p>
-<p class="p7"><span class="Apple-tab-span">	</span><span class="s10"><b><span class="Apple-tab-span">	</span></b></span>This is a convenience method which assumes that the synth contains an envelope generator (an <b>EnvGen</b>, <b>Linen</b>, or similar <b>UGen</b>) running a sustaining envelope (see <b>Env</b>) and that it's gate argument is set to a control called <span class="s11">\gate</span>. This method will cause the envelope to release. If <b>releaseTime </b>is not nil, it will override the envelope's decay or release time. If this Node is a <b>Group</b> this will release all Nodes within the Group.</p>
+<p class="p7"><span class="Apple-tab-span">	</span><span class="s11"><b><span class="Apple-tab-span">	</span></b></span>This is a convenience method which assumes that the synth contains an envelope generator (an <b>EnvGen</b>, <b>Linen</b>, or similar <b>UGen</b>) running a sustaining envelope (see <b>Env</b>) and that it's gate argument is set to a control called <span class="s12">\gate</span>. This method will cause the envelope to release. If <b>releaseTime </b>is not nil, it will override the envelope's decay or release time. If this Node is a <b>Group</b> this will release all Nodes within the Group.</p>
 <p class="p6"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
-<p class="p9"><span class="s4"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>x = { <span class="s5">arg</span> gate=1; <span class="s5">BrownNoise</span>.ar(0.5) * <span class="s5">EnvGen</span>.kr(<span class="s5">Env</span>.cutoff(1), gate, doneAction:2) }.play;</p>
+<p class="p9"><span class="s5"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>x = { <span class="s6">arg</span> gate=1; <span class="s6">BrownNoise</span>.ar(0.5) * <span class="s6">EnvGen</span>.kr(<span class="s6">Env</span>.cutoff(1), gate, doneAction:2) }.play;</p>
 <p class="p16"><span class="s2"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x.release(5); </span>// overide the Env's specified 1 second release time</p>
 <p class="p6"><span class="Apple-tab-span">	</span></p>
 <p class="p7"><span class="Apple-tab-span">	</span><b>query</b></p>
 <p class="p6"><b><span class="Apple-tab-span">	</span></b></p>
 <p class="p7"><b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b>Sends an <b>n_query</b> message to the server, which will reply with a message containing information about this node and its place in the server's node tree. This information will be printed to the post window. (See also the queryAllNodes method of <b>Server</b>.) "parent" indicates the Node's enclosing group. If "prev" or "next" are equal to -1 that indicates that there are no other nodes in the enclosing group before or after this one, respectively.</p>
 <p class="p6"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
-<p class="p9"><span class="s4"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>g = <span class="s5">Group</span>.new;</p>
-<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x = <span class="s5">Synth</span>.head(g, <span class="s6">"default"</span>);</p>
+<p class="p9"><span class="s5"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>g = <span class="s6">Group</span>.new;</p>
+<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x = <span class="s6">Synth</span>.head(g, <span class="s7">"default"</span>);</p>
 <p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x.query;</p>
 <p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>g.query;</p>
 <p class="p10"><span class="s2"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>s.queryAllNodes; </span>// Note the RootNode (ID 0) and the default Group (ID 1)</p>
 <p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x.free; g.free;</p>
 <p class="p17"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
-<p class="p7"><span class="s7"><span class="Apple-tab-span">	</span></span><b>trace</b></p>
+<p class="p7"><span class="s8"><span class="Apple-tab-span">	</span></span><b>trace</b></p>
 <p class="p6"><b><span class="Apple-tab-span">	</span></b></p>
 <p class="p7"><b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b>Causes a synth to print out the values of the inputs and outputs of its unit generators for one control period to the post window. Causes a group to print the node IDs and names of each node in the group for one control period.</p>
 <p class="p6"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
-<p class="p9"><span class="s4"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>g = <span class="s5">Group</span>.new;</p>
-<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x = <span class="s5">Synth</span>.head(g, <span class="s6">"default"</span>);</p>
+<p class="p9"><span class="s5"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>g = <span class="s6">Group</span>.new;</p>
+<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x = <span class="s6">Synth</span>.head(g, <span class="s7">"default"</span>);</p>
 <p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x.trace;</p>
 <p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>g.trace;</p>
 <p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x.free; g.free;</p>
@@ -236,10 +253,10 @@
 <p class="p6"><span class="Apple-tab-span">	</span></p>
 <p class="p7"><span class="Apple-tab-span">	</span><b>== aNode </b>- Returns true if this Node and aNode have the same nodeID and the same Server object, otherwise returns false. Under certain circumstances this Node and aNode might not be the same object, even though this returns true.</p>
 <p class="p6"><span class="Apple-tab-span">	</span></p>
-<p class="p10"><span class="s12"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span><span class="s2">g = </span><span class="s5">Group</span><span class="s2">.basicNew(s, 1); </span>// the default group of s</p>
-<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>h = <span class="s5">Group</span>.basicNew(s, 1); <span class="s9">// and again</span></p>
-<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>g == h; <span class="Apple-tab-span">	</span><span class="s9">// true</span></p>
-<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>g === h;<span class="Apple-tab-span">	</span><span class="s9">// false</span></p>
+<p class="p10"><span class="s13"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span><span class="s2">g = </span><span class="s6">Group</span><span class="s2">.basicNew(s, 1); </span>// the default group of s</p>
+<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>h = <span class="s6">Group</span>.basicNew(s, 1); <span class="s10">// and again</span></p>
+<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>g == h; <span class="Apple-tab-span">	</span><span class="s10">// true</span></p>
+<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>g === h;<span class="Apple-tab-span">	</span><span class="s10">// false</span></p>
 <p class="p17"><br></p>
 </body>
 </html>

Modified: trunk/build/Help/ServerArchitecture/Server-Command-Reference.html
===================================================================
--- trunk/build/Help/ServerArchitecture/Server-Command-Reference.html	2008-12-22 17:14:36 UTC (rev 8243)
+++ trunk/build/Help/ServerArchitecture/Server-Command-Reference.html	2008-12-22 20:23:28 UTC (rev 8244)
@@ -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.42">
+<meta name="CocoaVersion" content="949.35">
 <style type="text/css">
 p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Helvetica}
 p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px}
@@ -14,16 +14,16 @@
 p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; min-height: 12.0px}
 p.p6 {margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Helvetica}
 p.p7 {margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Helvetica; min-height: 17.0px}
-p.p8 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #894738}
+p.p8 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #7e493b}
 p.p9 {margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Helvetica}
 p.p10 {margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Helvetica}
 p.p11 {margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Helvetica; min-height: 12.0px}
-p.p12 {margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color: #571f4a}
+p.p12 {margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color: #4e224a}
 p.p13 {margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco}
 p.p14 {margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; min-height: 14.0px}
 span.s1 {font: 12.0px Helvetica}
 span.s2 {color: #000000}
-span.s3 {color: #0030dd}
+span.s3 {color: #0a36d9}
 span.Apple-tab-span {white-space:pre}
 </style>
 </head>
@@ -184,6 +184,8 @@
 <p class="p2"><span class="Apple-tab-span">	</span></p>
 <p class="p3">Takes a list of pairs of control indices and values and sets the controls to those values. If the node is a group, then it sets the controls of every node in the group.</p>
 <p class="p2"><br></p>
+<p class="p3">This message now supports array type tags ($[ and $]) in the control/value component of the OSC message.<span class="Apple-converted-space">  </span>Arrayed control values are applied in the manner of n_setn (i.e., sequentially starting at the indexed or named control). <span class="Apple-converted-space"> </span></p>
+<p class="p2"><br></p>
 <p class="p3"><b>/n_setn<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>set ranges of a node's control value(s)</b></p>
 <p class="p3"><span class="Apple-tab-span">	</span>int - node ID</p>
 <p class="p3"><span class="Apple-tab-span">	</span>[</p>
@@ -282,7 +284,10 @@
 <p class="p2"><br></p>
 <p class="p3">If you use a node ID of -1 for any other command, such as <b>/n_map</b>, then it refers to the most recently created node by <b>/s_new</b> (auto generated ID or not). This is how you can map<span class="Apple-converted-space">  </span>the controls of a node with an auto generated ID. In a multi-client situation, the only way you can be sure what node -1 refers to is to put the messages in a bundle.</p>
 <p class="p2"><br></p>
+<p class="p3">This message now supports array type tags ($[ and $]) in the control/value component of the OSC message.<span class="Apple-converted-space">  </span>Arrayed control values are applied in the manner of n_setn (i.e., sequentially starting at the indexed or named control). <span class="Apple-converted-space"> </span></p>
 <p class="p2"><br></p>
+<p class="p2"><br></p>
+<p class="p2"><br></p>
 <p class="p3"><b>/s_get<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>get control value(s)</b></p>
 <p class="p3"><span class="Apple-tab-span">	</span>int - synth ID</p>
 <p class="p3"><span class="Apple-tab-span">	</span>[</p>

Modified: trunk/build/Help/ServerArchitecture/Synth.html
===================================================================
--- trunk/build/Help/ServerArchitecture/Synth.html	2008-12-22 17:14:36 UTC (rev 8243)
+++ trunk/build/Help/ServerArchitecture/Synth.html	2008-12-22 20:23:28 UTC (rev 8244)
@@ -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: 12.0px Helvetica; min-height: 14.0px}
@@ -16,30 +16,30 @@
 p.p7 {margin: 0.0px 0.0px 0.0px 85.0px; text-indent: -85.0px; font: 12.0px Helvetica}
 p.p8 {margin: 0.0px 0.0px 0.0px 85.0px; text-indent: -85.0px; font: 12.0px Helvetica; min-height: 14.0px}
 p.p9 {margin: 0.0px 0.0px 0.0px 85.0px; text-indent: -85.0px; font: 9.0px Monaco; min-height: 12.0px}
-p.p10 {margin: 0.0px 0.0px 0.0px 85.0px; text-indent: -85.0px; font: 12.0px Helvetica; color: #000000}
-p.p11 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 12.0px Helvetica; color: #000000}
-p.p12 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 9.0px Monaco; color: #000000}
-p.p13 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 9.0px Monaco; color: #bf0000}
-p.p14 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #000000}
+p.p10 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 9.0px Monaco}
+p.p11 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 9.0px Monaco; color: #a91616}
+p.p12 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 9.0px Monaco; color: #bf0000}
+p.p13 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 9.0px Monaco; color: #812d1f}
+p.p14 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco}
 p.p15 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 9.0px Monaco; min-height: 12.0px}
-p.p16 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 12.0px Helvetica; color: #000000; min-height: 14.0px}
-p.p17 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 14.0px Helvetica}
-p.p18 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 9.0px Monaco; color: #606060}
-p.p19 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #000000; min-height: 14.0px}
-p.p20 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #000000; min-height: 12.0px}
-p.p21 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #bf0000}
-p.p22 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #606060}
+p.p16 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 14.0px Helvetica}
+p.p17 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 9.0px Monaco; color: #606060}
+p.p18 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; min-height: 12.0px}
+p.p19 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #a91616}
+p.p20 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #606060}
 span.s1 {font: 18.0px Helvetica}
 span.s2 {font: 9.0px Monaco}
-span.s3 {font: 9.0px Monaco; color: #456c20}
-span.s4 {font: 9.0px Monaco; color: #007300}
-span.s5 {color: #007300}
+span.s3 {font: 9.0px Monaco; color: #4f6a22}
+span.s4 {font: 9.0px Monaco; color: #307109}
+span.s5 {color: #307109}
 span.s6 {font: 12.0px Helvetica}
 span.s7 {color: #000000}
-span.s8 {color: #0000bf}
+span.s8 {color: #0014bc}
 span.s9 {color: #606060}
-span.s10 {color: #bf0000}
-span.s11 {font: 12.0px Helvetica; color: #000000}
+span.s10 {color: #0725ae}
+span.s11 {color: #4f6a22}
+span.s12 {color: #812d1f}
+span.s13 {color: #a91616}
 span.Apple-tab-span {white-space:pre}
 </style>
 </head>
@@ -86,34 +86,48 @@
 <p class="p7"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><b>defName </b>- A <b>String</b> or <b>Symbol</b> specifying the name of the <b>SynthDef</b> to use in creating the Synth.</p>
 <p class="p8"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
 <p class="p7"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><b>args </b>- An optional array specifying initial values for the SynthDef's arguments (controls). These are specified in pairs of control name or index and value. If names are used they can be specified with either Strings or Symbols. e.g. <span class="s2">[</span><span class="s3">\frequency</span><span class="s2">, 440, </span><span class="s3">\amplitude</span><span class="s2">, 1, ...]</span></p>
+<p class="p5"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>Values that are arrays are sent using<span class="Apple-converted-space">  </span>OSC array type-tags ($[ and $]).<span class="Apple-converted-space">  </span>These values will<span class="Apple-converted-space"> </span></p>
+<p class="p5"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>be assigned to subsequent controls.</p>
 <p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
 <p class="p7"><span class="s2"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span><b>target </b>- A target for this Synth. If target is not a <b>Group</b> or Synth, it will be converted as follows: If it is a <b>Server</b>, it will be converted to the <b>default_group</b> of that server. If it is nil, to the <b>default_group</b> of the default Server. If it is an integer, it is created relative to a group with that id.<span class="Apple-converted-space"> </span></p>
 <p class="p7"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><b>Note: </b>A Synth is not a valid target for <span class="s3">\addToHead</span> and <span class="s4">\addToTail</span>.</p>
 <p class="p8"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
 <p class="p7"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><b>addAction</b> - one of the following Symbols:<span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
-<p class="p10"><span class="s2"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span><span class="s4">\addToHead</span><span class="s2"> <span class="Apple-tab-span">	</span></span>- (the default) add at the head of the group specified by <b>target</b></p>
-<p class="p11"><span class="s2"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span><span class="s4">\addToTail</span><span class="s2"> <span class="Apple-tab-span">	</span></span>- add at the tail of the group specified by <b>target</b></p>
-<p class="p11"><span class="s2"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span><span class="s4">\addAfter</span> <span class="Apple-tab-span">	</span>- add immediately after <b>target </b>in its server<span class="s5">'s </span>node order</p>
-<p class="p11"><span class="s4"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>\addBefore</span><span class="s5"> <span class="Apple-tab-span">	</span></span>- add immediately before <b>target </b>in its server's node order</p>
-<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s4">\addReplace</span> <span class="Apple-tab-span">	</span>- replace <b>target</b> and take its place in its server's node order</p>
+<p class="p7"><span class="s2"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span><span class="s4">\addToHead</span><span class="s2"> <span class="Apple-tab-span">	</span></span>- (the default) add at the head of the group specified by <b>target</b></p>
+<p class="p5"><span class="s2"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span><span class="s4">\addToTail</span><span class="s2"> <span class="Apple-tab-span">	</span></span>- add at the tail of the group specified by <b>target</b></p>
+<p class="p5"><span class="s2"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span><span class="s4">\addAfter</span> <span class="Apple-tab-span">	</span>- add immediately after <b>target </b>in its server<span class="s5">'s </span>node order</p>
+<p class="p5"><span class="s4"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>\addBefore</span><span class="s5"> <span class="Apple-tab-span">	</span></span>- add immediately before <b>target </b>in its server's node order</p>
+<p class="p5"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s4">\addReplace</span> <span class="Apple-tab-span">	</span>- replace <b>target</b> and take its place in its server's node order</p>
 <p class="p4"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
-<p class="p12"><span class="s6"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>s.boot;</p>
-<p class="p13"><span class="s7"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>// create a Synth at the head of the default Server's default group</p>
-<p class="p13"><span class="s7"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>// based on the SynthDef "default"</p>
-<p class="p12"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x = <span class="s8">Synth</span>.new(<span class="s9">"default"</span>);<span class="Apple-converted-space"> </span></p>
-<p class="p13"><span class="s7"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>s.queryAllNodes; </span>// note the default group (ID 1)</p>
-<p class="p12"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x.free;</p>
+<p class="p10"><span class="s6"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>s.boot;</p>
+<p class="p11"><span class="s7"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>// create a Synth at the head of the default Server's default group</p>
+<p class="p11"><span class="s7"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>// based on the SynthDef "default"</p>
+<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x = <span class="s8">Synth</span>.new(<span class="s9">"default"</span>);<span class="Apple-converted-space"> </span></p>
+<p class="p11"><span class="s7"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>s.queryAllNodes; </span>// note the default group (ID 1)</p>
+<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x.free;</p>
 <p class="p2"><br></p>
+<p class="p12"><span class="s7"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>// Using an arrayed control</p>
+<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>(</p>
+<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x = <span class="s10">SynthDef</span>(<span class="s9">"help-synth"</span>, {<span class="s10">|</span> freq = #[440, 450, 460], out = 0 |</p>
+<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s10">Out</span>.ar(out, Mix(<span class="s10">SinOsc</span>.ar(freq, 0, 0.1)));</p>
+<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>});</p>
+<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x = x.play(s, [freq: [500,501,510] ]);</p>
+<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>)</p>
+<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x.set(<span class="s11">\freq</span>, [1,2,3] * 400 + [1,2,3], <span class="s11">\out</span>, 1); <span class="s12">// two pairs</span></p>
+<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x.set(<span class="s11">\freq</span>, [3] * 400 + [1,2,3], <span class="s11">\out</span>, 1); <span class="s12">// two pairs</span></p>
+<p class="p13"><span class="s7"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x.set(0, [660, 680, 720], 1, 0); </span>// freq is the first argument, so it's index is 0. out is index 1.</p>
+<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x.free;</p>
+<p class="p2"><br></p>
 <p class="p1"><b><span class="Apple-tab-span">	</span>*newPaused(defName, args: [ arg1, value1,... argN, valueN<span class="Apple-converted-space">  </span>], target, addAction)</b></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>As <b>*new</b> above, but creates a node which is paused. This can be started by calling run on it.</p>
 <p class="p2"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
 <p class="p14"><span class="s6"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>s.boot;</p>
-<p class="p12"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x = <span class="s8">Synth</span>.newPaused(<span class="s9">"default"</span>);<span class="Apple-converted-space"> </span></p>
-<p class="p12"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>s.queryAllNodes; <span class="s10">// see I'm here</span></p>
-<p class="p13"><span class="s7"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x.run; </span>// true is the default</p>
-<p class="p13"><span class="s7"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x.run(</span><span class="s8">false</span><span class="s7">); </span>// pause me again</p>
-<p class="p12"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x.free;</p>
+<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x = <span class="s8">Synth</span>.newPaused(<span class="s9">"default"</span>);<span class="Apple-converted-space"> </span></p>
+<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>s.queryAllNodes; <span class="s13">// see I'm here</span></p>
+<p class="p11"><span class="s7"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x.run; </span>// true is the default</p>
+<p class="p11"><span class="s7"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x.run(</span><span class="s8">false</span><span class="s7">); </span>// pause me again</p>
+<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x.free;</p>
 <p class="p2"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
 <p class="p5"><span class="Apple-tab-span">	</span><b>*grain(defName, args: [ arg1, value1, ... argN, valueN<span class="Apple-converted-space">  </span>], target, addAction)</b></p>
 <p class="p4"><b><span class="Apple-tab-span">	</span></b></p>
@@ -156,12 +170,12 @@
 <p class="p4"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
 <p class="p7"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><b>nodeID </b>- An optional node ID number. If not supplied one will be generated by the Server's NodeIDAllocator. Normally you should not need to supply an ID.</p>
 <p class="p4"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
-<p class="p12"><span class="s11"><span class="Apple-tab-span">	</span></span><span class="s6"><span class="Apple-tab-span">	</span></span>s.boot;</p>
-<p class="p13"><span class="s7"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x = </span><span class="s8">Synth</span><span class="s7">.basicNew(</span><span class="s9">"default"</span><span class="s7">, s); </span>// Create without sending</p>
-<p class="p13"><span class="s7"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>s.sendBundle(</span><span class="s8">nil</span><span class="s7">, x.newMsg;); </span>// Now send a message; create at the head of s' default group</p>
-<p class="p12"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>s.queryAllNodes;</p>
-<p class="p12"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x.free;</p>
-<p class="p16"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
+<p class="p10"><span class="s6"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>s.boot;</p>
+<p class="p11"><span class="s7"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x = </span><span class="s8">Synth</span><span class="s7">.basicNew(</span><span class="s9">"default"</span><span class="s7">, s); </span>// Create without sending</p>
+<p class="p11"><span class="s7"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>s.sendBundle(</span><span class="s8">nil</span><span class="s7">, x.newMsg;); </span>// Now send a message; create at the head of s' default group</p>
+<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>s.queryAllNodes;</p>
+<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x.free;</p>
+<p class="p4"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
 <p class="p5"><span class="Apple-tab-span">	</span><b>newMsg(target, args, addAction</b>)</p>
 <p class="p4"><b><span class="Apple-tab-span">	</span></b></p>
 <p class="p5"><b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b>Returns a message of the type <b>s_new</b> which can be bundled. When sent to the server this message will instantiate this synth. If target is nil, it will default to the <b>default_group</b> of the Server specified in <b>*basicNew</b> when this Synth was created. The default addAction is <span class="s3">\addToHead</span>. (See <b>*new</b> above for details of addActions and args.)</p>
@@ -186,7 +200,7 @@
 <p class="p4"><b><span class="Apple-tab-span">	</span></b></p>
 <p class="p5"><b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b>Returns a message of the type <b>s_new</b> which can be bundled. When sent to the server this message will instantiate this synth, replacing <b>nodeToReplace</b> in the server's node order. See <b>*new</b> above for details on <b>args</b>.</p>
 <p class="p4"><br></p>
-<p class="p17"><b>Control</b></p>
+<p class="p16"><b>Control</b></p>
 <p class="p4"><br></p>
 <p class="p5">For further methods of controlling Synths (set, map, busMap, etc.), see the <b>Node</b> helpfile.</p>
 <p class="p4"><br></p>
@@ -195,16 +209,16 @@
 <p class="p4"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
 <p class="p5"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>Query the server for the current value of a <b>Control</b> (argument). <b>index</b> is a control name or index. <b>action</b> is a <b>Function</b> which will be evaluated with the value passed as an argument when the reply is received.</p>
 <p class="p4"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
-<p class="p12"><span class="s6"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>s.boot;</p>
-<p class="p12"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>(</p>
-<p class="p12"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s8">SynthDef</span>(<span class="s9">"help-Synth-get"</span>, { <span class="s8">arg</span> freq = 440;<span class="Apple-converted-space"> </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="s8">Out</span>.ar(0, <span class="s8">SinOsc</span>.ar(freq, 0, 0.1));</p>
-<p class="p12"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>}).send(s);</p>
-<p class="p12"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>)</p>
-<p class="p18"><span class="s7"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x = </span><span class="s8">Synth</span><span class="s7">(</span>"help-Synth-get"<span class="s7">);</span></p>
-<p class="p12"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x.set(<span class="s5">\freq</span>, 220 + 440.rand);</p>
-<p class="p12"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x.get(<span class="s5">\freq</span>, { <span class="s8">arg</span> value; (<span class="s9">"freq is now:"</span> + value + <span class="s9">"Hz"</span>).postln; });</p>
-<p class="p12"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x.free;</p>
+<p class="p10"><span class="s6"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>s.boot;</p>
+<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>(</p>
+<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s8">SynthDef</span>(<span class="s9">"help-Synth-get"</span>, { <span class="s8">arg</span> freq = 440;<span class="Apple-converted-space"> </span></p>
+<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s8">Out</span>.ar(0, <span class="s8">SinOsc</span>.ar(freq, 0, 0.1));</p>
+<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>}).send(s);</p>
+<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>)</p>
+<p class="p17"><span class="s7"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x = </span><span class="s8">Synth</span><span class="s7">(</span>"help-Synth-get"<span class="s7">);</span></p>
+<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x.set(<span class="s5">\freq</span>, 220 + 440.rand);</p>
+<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x.get(<span class="s5">\freq</span>, { <span class="s8">arg</span> value; (<span class="s9">"freq is now:"</span> + value + <span class="s9">"Hz"</span>).postln; });</p>
+<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>x.free;</p>
 <p class="p4"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
 <p class="p5"><span class="Apple-tab-span">	</span><b>getn(index, count, action)</b></p>
 <p class="p5"><b><span class="Apple-tab-span">	</span>getnMsg(index, count)</b></p>
@@ -212,162 +226,162 @@
 <p class="p5"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>Query the server for the current values of a sequential range of Controls (arguments). <b>index</b> is a control name or index. <b>count</b> is the number of sequential controls to query, starting at <b>index</b>. <b>action</b> is a <b>Function</b> which will be evaluated with an <b>Array</b> containing the values passed as an argument when the reply is received.<span class="Apple-tab-span">	</span></p>
 <p class="p4"><br></p>
 <p class="p2"><br></p>
-<p class="p17"><b>Examples</b></p>
-<p class="p19"><br></p>
-<p class="p20"><br></p>
-<p class="p21">// boot the default server</p>
-<p class="p21"><span class="s7">s = </span><span class="s8">Server</span><span class="s7">.default; </span>// just to be sure</p>
+<p class="p16"><b>Examples</b></p>
+<p class="p2"><br></p>
+<p class="p18"><br></p>
+<p class="p19">// boot the default server</p>
+<p class="p19"><span class="s7">s = </span><span class="s8">Server</span><span class="s7">.default; </span>// just to be sure</p>
 <p class="p14">s.boot;</p>
-<p class="p20"><br></p>
-<p class="p20"><br></p>
+<p class="p18"><br></p>
+<p class="p18"><br></p>
 <p class="p14">(</p>
-<p class="p21">// send a synth def to server</p>
+<p class="p19">// send a synth def to server</p>
 <p class="p14"><span class="s8">SynthDef</span>(<span class="s9">"tpulse"</span>, { <span class="s8">arg</span> out = 0,freq = 700, sawFreq = 440.0;<span class="Apple-converted-space"> </span></p>
 <p class="p14"><span class="Apple-tab-span">	</span><span class="s8">Out</span>.ar(out, <span class="s8">SyncSaw</span>.ar(freq, sawFreq, 0.1));</p>
 <p class="p14">}).send(s);</p>
 <p class="p14">)</p>
-<p class="p20"><br></p>
-<p class="p21">// Here the defaults for *new will result in a Synth at the head of the default group</p>
-<p class="p21">// of the default Server. This will use the SynthDef's default arguments;</p>
+<p class="p18"><br></p>
+<p class="p19">// Here the defaults for *new will result in a Synth at the head of the default group</p>
+<p class="p19">// of the default Server. This will use the SynthDef's default arguments;</p>
 <p class="p14">y = <span class="s8">Synth</span>.new(<span class="s9">"tpulse"</span>);<span class="Apple-converted-space"> </span></p>
 <p class="p14">y.free;</p>
-<p class="p20"><br></p>
-<p class="p21">// The same done explicitly</p>
+<p class="p18"><br></p>
+<p class="p19">// The same done explicitly</p>
 <p class="p14">y = <span class="s8">Synth</span>.new(<span class="s9">"tpulse"</span>, <span class="s8">nil</span>, s, <span class="s5">\addToHead</span>);<span class="Apple-converted-space"> </span></p>
 <p class="p14">y.free;</p>
-<p class="p20"><br></p>
-<p class="p21">// With some arguments</p>
+<p class="p18"><br></p>
+<p class="p19">// With some arguments</p>
 <p class="p14">y = <span class="s8">Synth</span>.new(<span class="s9">"tpulse"</span>, [<span class="s5">\freq</span>, 350, <span class="s5">\sawFreq</span>, 220]);</p>
 <p class="p14">y.free;</p>
-<p class="p20"><br></p>
-<p class="p21">// make a new synth</p>
-<p class="p22"><span class="s7">y = </span><span class="s8">Synth</span><span class="s7">(</span>"tpulse"<span class="s7">);</span></p>
-<p class="p20"><br></p>
-<p class="p21">// pause</p>
+<p class="p18"><br></p>
+<p class="p19">// make a new synth</p>
+<p class="p20"><span class="s7">y = </span><span class="s8">Synth</span><span class="s7">(</span>"tpulse"<span class="s7">);</span></p>
+<p class="p18"><br></p>
+<p class="p19">// pause</p>
 <p class="p14">y.run(<span class="s8">false</span>);</p>
-<p class="p20"><br></p>
+<p class="p18"><br></p>
 <p class="p14">y.run(<span class="s8">true</span>);</p>
-<p class="p20"><br></p>
-<p class="p21">// set a control by argument name</p>
+<p class="p18"><br></p>
+<p class="p19">// set a control by argument name</p>
 <p class="p14">y.set(<span class="s9">"freq"</span>, 200);</p>
-<p class="p20"><br></p>
-<p class="p21">// or by index</p>
+<p class="p18"><br></p>
+<p class="p19">// or by index</p>
 <p class="p14">y.set(2, 100.0);</p>
-<p class="p20"><br></p>
-<p class="p21">// modulate out to bus number 1 (the right speaker)</p>
+<p class="p18"><br></p>
+<p class="p19">// modulate out to bus number 1 (the right speaker)</p>
 <p class="p14">y.set(0, 1);</p>
-<p class="p20"><br></p>
-<p class="p21">//<span class="Apple-converted-space">  </span>multiple set commands in one message</p>
+<p class="p18"><br></p>
+<p class="p19">//<span class="Apple-converted-space">  </span>multiple set commands in one message</p>
 <p class="p14">y.set(<span class="s9">"out"</span>, 0, <span class="s9">"freq"</span>,300);</p>
-<p class="p20"><br></p>
-<p class="p21">// free the synth from the server</p>
+<p class="p18"><br></p>
+<p class="p19">// free the synth from the server</p>
 <p class="p14">y.free;</p>
-<p class="p20"><br></p>
-<p class="p20"><br></p>
-<p class="p20"><br></p>
-<p class="p21">//////////// Filtering</p>
-<p class="p20"><br></p>
+<p class="p18"><br></p>
+<p class="p18"><br></p>
+<p class="p18"><br></p>
+<p class="p19">//////////// Filtering</p>
+<p class="p18"><br></p>
 <p class="p14">(</p>
-<p class="p21">// first collect some things to play with</p>
+<p class="p19">// first collect some things to play with</p>
 <p class="p14"><span class="s8">SynthDef</span>(<span class="s9">"moto-rev"</span>, { <span class="s8">arg</span> out=0;</p>
 <p class="p14"><span class="Apple-tab-span">	</span><span class="s8">var</span> x;</p>
 <p class="p14"><span class="Apple-tab-span">	</span>x = <span class="s8">RLPF</span>.ar(<span class="s8">LFPulse</span>.ar(<span class="s8">SinOsc</span>.kr(0.2, 0, 10, 21), [0,0.1], 0.1),<span class="Apple-converted-space"> </span></p>
 <p class="p14"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>100, 0.1).clip2(0.4);</p>
 <p class="p14"><span class="Apple-tab-span">	</span><span class="s8">Out</span>.ar(out, x);</p>
 <p class="p14">}).send(s);</p>
-<p class="p20"><br></p>
+<p class="p18"><br></p>
 <p class="p14"><span class="s8">SynthDef</span>(<span class="s9">"bubbles"</span>, { <span class="s8">arg</span> out=0;</p>
 <p class="p14"><span class="Apple-tab-span">	</span><span class="s8">var</span> f, zout;</p>
 <p class="p14"><span class="Apple-tab-span">	</span>f = <span class="s8">LFSaw</span>.kr(0.4, 0, 24, <span class="s8">LFSaw</span>.kr([8,7.23], 0, 3, 80)).midicps;<span class="Apple-converted-space"> </span></p>
-<p class="p14"><span class="Apple-tab-span">	</span>zout = <span class="s8">CombN</span>.ar(<span class="s8">SinOsc</span>.ar(f, 0, 0.04), 0.2, 0.2, 4); <span class="s10">// echoing sine wave</span></p>
+<p class="p14"><span class="Apple-tab-span">	</span>zout = <span class="s8">CombN</span>.ar(<span class="s8">SinOsc</span>.ar(f, 0, 0.04), 0.2, 0.2, 4); <span class="s13">// echoing sine wave</span></p>
 <p class="p14"><span class="Apple-tab-span">	</span><span class="s8">Out</span>.ar(out, zout);</p>
 <p class="p14">}).send(s);</p>
-<p class="p20"><br></p>
-<p class="p20"><br></p>
+<p class="p18"><br></p>
+<p class="p18"><br></p>
 <p class="p14"><span class="s8">SynthDef</span>(<span class="s9">"rlpf"</span>,{ <span class="s8">arg</span> out=0,ffreq=600,rq=0.1;</p>
 <p class="p14"><span class="Apple-tab-span">	</span><span class="s8">ReplaceOut</span>.ar( out, <span class="s8">RLPF</span>.ar( <span class="s8">In</span>.ar(out), ffreq,rq) )</p>
 <p class="p14">}).send(s);</p>
-<p class="p20"><br></p>
-<p class="p20"><br></p>
+<p class="p18"><br></p>
+<p class="p18"><br></p>
 <p class="p14"><span class="s8">SynthDef</span>(<span class="s9">"wah"</span>, { <span class="s8">arg</span> out, rate = 1.5, cfreq = 1400, mfreq = 1200, rq=0.1;</p>
 <p class="p14"><span class="Apple-tab-span">	</span><span class="s8">var</span> zin, zout;</p>
-<p class="p20"><br></p>
+<p class="p18"><br></p>
 <p class="p14"><span class="Apple-tab-span">	</span>zin = <span class="s8">In</span>.ar(out, 2);</p>
 <p class="p14"><span class="Apple-tab-span">	</span>cfreq = <span class="s8">Lag3</span>.kr(cfreq, 0.1);</p>
 <p class="p14"><span class="Apple-tab-span">	</span>mfreq = <span class="s8">Lag3</span>.kr(mfreq, 0.1);</p>
 <p class="p14"><span class="Apple-tab-span">	</span>rq <span class="Apple-converted-space">  </span>= <span class="s8">Ramp</span>.kr(rq, 0.1);</p>
 <p class="p14"><span class="Apple-tab-span">	</span>zout = <span class="s8">RLPF</span>.ar(zin, <span class="s8">LFNoise1</span>.kr(rate, mfreq, cfreq), rq, 10).distort<span class="Apple-converted-space"> </span></p>
 <p class="p14"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>* 0.15;</p>
-<p class="p20"><br></p>
-<p class="p21"><span class="s7"><span class="Apple-tab-span">	</span></span>// replace the incoming bus with the effected version</p>
+<p class="p18"><br></p>
+<p class="p19"><span class="s7"><span class="Apple-tab-span">	</span></span>// replace the incoming bus with the effected version</p>
 <p class="p14"><span class="Apple-tab-span">	</span><span class="s8">ReplaceOut</span>.ar( out , zout );<span class="Apple-converted-space"> </span></p>
-<p class="p20"><span class="Apple-tab-span">	</span></p>
+<p class="p18"><span class="Apple-tab-span">	</span></p>
 <p class="p14">}).send(s);</p>
-<p class="p20"><br></p>
+<p class="p18"><br></p>
 <p class="p14"><span class="s8">SynthDef</span>(<span class="s9">"modulate"</span>,{ <span class="s8">arg</span> out = 0, freq = 1, center = 440, plusMinus = 110;</p>
 <p class="p14"><span class="Apple-tab-span">	</span><span class="s8">Out</span>.kr(out, <span class="s8">SinOsc</span>.kr(freq, 0, plusMinus, center));</p>
 <p class="p14">}).send(s);</p>
 <p class="p14">)</p>
-<p class="p20"><br></p>
-<p class="p21">// execute these one at a time</p>
-<p class="p20"><br></p>
-<p class="p21">// y is playing on bus 0</p>
-<p class="p22"><span class="s7">y = </span><span class="s8">Synth</span><span class="s7">(</span>"moto-rev"<span class="s7">,[</span>"out"<span class="s7">,0]);</span></p>
-<p class="p20"><br></p>
-<p class="p21">// z is reading from bus 0 and replacing that; It must be *after* y</p>
+<p class="p18"><br></p>
+<p class="p19">// execute these one at a time</p>
+<p class="p18"><br></p>
+<p class="p19">// y is playing on bus 0</p>
+<p class="p20"><span class="s7">y = </span><span class="s8">Synth</span><span class="s7">(</span>"moto-rev"<span class="s7">,[</span>"out"<span class="s7">,0]);</span></p>
+<p class="p18"><br></p>
+<p class="p19">// z is reading from bus 0 and replacing that; It must be *after* y</p>
 <p class="p14">z = <span class="s8">Synth</span>.after(y,<span class="s9">"wah"</span>,[<span class="s9">"out"</span>,0]);</p>
-<p class="p20"><br></p>
-<p class="p21">// stop the wah-ing</p>
+<p class="p18"><br></p>
+<p class="p19">// stop the wah-ing</p>
 <p class="p14">z.run(<span class="s8">false</span>);</p>
-<p class="p20"><br></p>
-<p class="p21">// resume the wah-ing</p>
+<p class="p18"><br></p>
+<p class="p19">// resume the wah-ing</p>
 <p class="p14">z.run(<span class="s8">true</span>);</p>
-<p class="p20"><br></p>
-<p class="p21">// add a rlpf after that, reading and writing to the same buss</p>
+<p class="p18"><br></p>
+<p class="p19">// add a rlpf after that, reading and writing to the same buss</p>
 <p class="p14">x = <span class="s8">Synth</span>.after(z,<span class="s9">"rlpf"</span>,[<span class="s9">"out"</span>,0]);</p>
-<p class="p20"><br></p>
-<p class="p21">// create another rlpf after x</p>
+<p class="p18"><br></p>
+<p class="p19">// create another rlpf after x</p>
 <p class="p14">t = <span class="s8">Synth</span>.after(x,<span class="s9">"rlpf"</span>,[<span class="s9">"out"</span>,0]);</p>
-<p class="p20"><br></p>
+<p class="p18"><br></p>
 <p class="p14">x.set(<span class="s9">"ffreq"</span>, 400);</p>
-<p class="p20"><br></p>
-<p class="p21"><span class="s7">x.set(</span><span class="s5">\ffreq</span><span class="s7">, 800); </span>// Symbols work for control names too</p>
-<p class="p20"><br></p>
-<p class="p21">// Now let's modulate x's ffreq arg</p>
-<p class="p21">// First get a control Bus</p>
+<p class="p18"><br></p>
+<p class="p19"><span class="s7">x.set(</span><span class="s5">\ffreq</span><span class="s7">, 800); </span>// Symbols work for control names too</p>
+<p class="p18"><br></p>
+<p class="p19">// Now let's modulate x's ffreq arg</p>
+<p class="p19">// First get a control Bus</p>
 <p class="p14">b = <span class="s8">Bus</span>.control(s, 1);</p>
-<p class="p20"><br></p>
-<p class="p21">// now the modulator, *before* x</p>
+<p class="p18"><br></p>
+<p class="p19">// now the modulator, *before* x</p>
 <p class="p14">m = <span class="s8">Synth</span>.before(x, <span class="s9">"modulate"</span>, [<span class="s5">\out</span>, b]);</p>
-<p class="p20"><br></p>
-<p class="p21">// now map x's ffreq to b</p>
+<p class="p18"><br></p>
+<p class="p19">// now map x's ffreq to b</p>
 <p class="p14">x.busMap(<span class="s9">"ffreq"</span>, b);</p>
-<p class="p20"><br></p>
+<p class="p18"><br></p>
 <p class="p14">m.set(<span class="s9">"freq"</span>, 4, <span class="s9">"plusMinus"</span>, 20);</p>
-<p class="p20"><br></p>
+<p class="p18"><br></p>
 <p class="p14">x.free;</p>
 <p class="p14">z.free;</p>
 <p class="p14">m.free;</p>
-<p class="p20"><br></p>
-<p class="p21">// now place another synth after y, on the same bus</p>
-<p class="p21">// they both write to the buss, adding their outputs</p>
+<p class="p18"><br></p>
+<p class="p19">// now place another synth after y, on the same bus</p>
+<p class="p19">// they both write to the buss, adding their outputs</p>
 <p class="p14">r = <span class="s8">Synth</span>.after(y,<span class="s9">"bubbles"</span>,[<span class="s9">"out"</span>,0]);</p>
-<p class="p20"><br></p>
+<p class="p18"><br></p>
 <p class="p14">y.free;</p>
-<p class="p20"><br></p>
+<p class="p18"><br></p>
 <p class="p14">r.free;</p>
-<p class="p20"><br></p>
-<p class="p21">// look at the Server window</p>
-<p class="p21">// still see 4 Ugens and 1 synth?</p>
-<p class="p21">// you can't hear me, but don't forget to free me</p>
+<p class="p18"><br></p>
+<p class="p19">// look at the Server window</p>
+<p class="p19">// still see 4 Ugens and 1 synth?</p>
+<p class="p19">// you can't hear me, but don't forget to free me</p>
 <p class="p14">t.free;</p>
-<p class="p20"><br></p>
-<p class="p20"><br></p>
-<p class="p20"><br></p>
-<p class="p20"><br></p>
-<p class="p20"><br></p>
-<p class="p20"><br></p>
-<p class="p20"><br></p>
-<p class="p20"><br></p>
+<p class="p18"><br></p>
+<p class="p18"><br></p>
+<p class="p18"><br></p>
+<p class="p18"><br></p>
+<p class="p18"><br></p>
+<p class="p18"><br></p>
+<p class="p18"><br></p>
+<p class="p18"><br></p>
 </body>
 </html>


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/