[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[sc-dev] SF.net SVN: supercollider:[8272] trunk/build/Help/ServerArchitecture/Server .html
Revision: 8272
http://supercollider.svn.sourceforge.net/supercollider/?rev=8272&view=rev
Author: jrhb
Date: 2008-12-24 12:50:16 +0000 (Wed, 24 Dec 2008)
Log Message:
-----------
updated Server helpfile
Modified Paths:
--------------
trunk/build/Help/ServerArchitecture/Server.html
Modified: trunk/build/Help/ServerArchitecture/Server.html
===================================================================
--- trunk/build/Help/ServerArchitecture/Server.html 2008-12-24 12:47:12 UTC (rev 8271)
+++ trunk/build/Help/ServerArchitecture/Server.html 2008-12-24 12:50:16 UTC (rev 8272)
@@ -5,36 +5,40 @@
<meta http-equiv="Content-Style-Type" content="text/css">
<title></title>
<meta name="Generator" content="Cocoa HTML Writer">
-<meta name="CocoaVersion" content="949">
+<meta name="CocoaVersion" content="949.43">
<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: 14.0px Helvetica}
-p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #553120}
+p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #503122}
p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #595959}
p.p6 {margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Helvetica}
p.p7 {margin: 0.0px 0.0px 0.0px 0.0px; font: 15.0px Helvetica; min-height: 18.0px}
p.p8 {margin: 0.0px 0.0px 0.0px 0.0px; font: 15.0px Helvetica}
-p.p9 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco}
-p.p10 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #553120; min-height: 12.0px}
-p.p11 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; min-height: 12.0px}
-p.p12 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #223b99}
-p.p13 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #632f1c}
-p.p14 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #223b99; min-height: 12.0px}
-p.p15 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #595c2e}
+p.p9 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #bf0000}
+p.p10 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #000000}
+p.p11 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco}
+p.p12 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #503122; min-height: 12.0px}
+p.p13 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; min-height: 12.0px}
+p.p14 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #233f95}
+p.p15 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #5c301e}
+p.p16 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #233f95; min-height: 12.0px}
+p.p17 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #5a5b31}
span.s1 {font: 18.0px Helvetica}
-span.s2 {color: #0b29ee}
-span.s3 {color: #2c4fd9}
+span.s2 {color: #0036e7}
+span.s3 {color: #2d55d4}
span.s4 {color: #000000}
-span.s5 {color: #223b99}
+span.s5 {color: #0000bf}
span.s6 {font: 12.0px Helvetica}
-span.s7 {color: #595959}
-span.s8 {color: #2244eb}
-span.s9 {font: 9.0px Monaco}
-span.s10 {color: #595c2e}
-span.s11 {color: #553120}
-span.s12 {color: #1c35a4}
-span.s13 {color: #535e24}
+span.s7 {color: #606060}
+span.s8 {color: #595959}
+span.s9 {color: #204ce5}
+span.s10 {font: 9.0px Monaco}
+span.s11 {color: #233f95}
+span.s12 {color: #5a5b31}
+span.s13 {color: #503122}
+span.s14 {color: #1c3aa0}
+span.s15 {color: #565d28}
span.Apple-tab-span {white-space:pre}
</style>
</head>
@@ -99,10 +103,12 @@
<p class="p2"><br></p>
<p class="p1"><b>*default - </b>returns the default server. By default this is the local server (see above)</p>
<p class="p2"><br></p>
-<p class="p1"><b>*default(aServer) - </b>sets the default Server to be aServer</p>
+<p class="p1"><b>*default_(aServer) - </b>sets the default Server to be aServer</p>
<p class="p2"><span class="Apple-tab-span"> </span></p>
-<p class="p4"><span class="s5"><span class="Apple-tab-span"> </span>Server</span><span class="s4">.default = </span><span class="s5">Server</span><span class="s4">.internal; </span>// set the internal Server to be the default Server</p>
-<p class="p2"><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><span class="s5">Server</span><span class="s4">.default = </span><span class="s5">Server</span><span class="s4">.internal; </span>// set the internal Server to be the default Server</p>
+<p class="p2"><b></b><br></p>
+<p class="p1"><b>*all</b> - the set of all servers.<span class="Apple-tab-span"> </span></p>
+<p class="p2"><b></b><br></p>
<p class="p1"><b>*quitAll - </b>quit all registered servers</p>
<p class="p2"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p>
<p class="p1"><b>*killAll - </b>query the system for any sc-server apps and hard quit them</p>
@@ -118,11 +124,12 @@
<p class="p2"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p>
<p class="p1"><b>sendMsg(arg1, arg2, arg3, ... argN) - </b>send an osc message to the server.</p>
<p class="p2"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p>
-<p class="p9"><span class="s6"><span class="Apple-tab-span"> </span></span>s.sendMsg(<span class="s7">"/s_new"</span>, <span class="s7">"default"</span>, s.nextNodeID, 0, 1);</p>
+<p class="p10"><span class="s6"><span class="Apple-tab-span"> </span></span>s.sendMsg(<span class="s7">"/s_new"</span>, <span class="s7">"default"</span>, s.nextNodeID, 0, 1);</p>
<p class="p2"><br></p>
<p class="p2"><br></p>
<p class="p1"><b>sendBundle(time, array1, array1, array1, ... arrayN) - </b>send an osc bundle to the server. Since the network may have irregular performance, <b>time</b> allows for the bundle to be evaluated at a specified point in the future. Thus all messages are synchronous relative to each other, but delayed by a constant offset. If such a bundle arrives late, the server replies with a late message but still evaluates it.<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="s6"><span class="Apple-tab-span"> </span></span>s.sendBundle(0.2, [<span class="s7">"/s_new"</span>, <span class="s7">"default"</span>, x = s.nextNodeID, 0, 1], [<span class="s7">"/n_set"</span>, x, <span class="s7">"freq"</span>, 500]);</p>
+<p class="p2"><span class="Apple-tab-span"> </span></p>
+<p class="p10"><span class="s6"><span class="Apple-tab-span"> </span></span>s.sendBundle(0.2, [<span class="s7">"/s_new"</span>, <span class="s7">"default"</span>, x = s.nextNodeID, 0, 1], [<span class="s7">"/n_set"</span>, x, <span class="s7">"freq"</span>, 500]);</p>
<p class="p2"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p>
<p class="p2"><br></p>
<p class="p1"><b>sendRaw(aRawArray)</b></p>
@@ -133,8 +140,8 @@
<p class="p2"><br></p>
<p class="p1"><b>listSendBundle(time, [array1, array1, array1, ... arrayN]) - </b>as sendBundle, but takes an array as argument. This allows you to collect messages in an array and then send them.</p>
<p class="p2"><br></p>
-<p class="p9"><span class="s6"><span class="Apple-tab-span"> </span></span>s.listSendBundle(0.2, [[<span class="s7">"/s_new"</span>, <span class="s7">"default"</span>, x = s.nextNodeID, 0, 1],<span class="Apple-converted-space"> </span></p>
-<p class="p9"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>[<span class="s7">"/n_set"</span>, x, <span class="s7">"freq"</span>, 600]]);</p>
+<p class="p11"><span class="s6"><span class="Apple-tab-span"> </span></span>s.listSendBundle(0.2, [[<span class="s8">"/s_new"</span>, <span class="s8">"default"</span>, x = s.nextNodeID, 0, 1],<span class="Apple-converted-space"> </span></p>
+<p class="p11"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>[<span class="s8">"/n_set"</span>, x, <span class="s8">"freq"</span>, 600]]);</p>
<p class="p2"><br></p>
<p class="p2"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p>
<p class="p1"><b>sendSynthDef(name, dir) - </b>send a synthDef to the server that was written in a local directory</p>
@@ -178,94 +185,94 @@
<p class="p1"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>2 - print the contents in hexadecimal.</p>
<p class="p1"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>3 - print both the parsed and hexadecimal representations of the contents.</p>
<p class="p2"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p>
-<p class="p1"><b>queryAllNodes - </b>Post a representation of this Server's current node tree to the post window. Very helpful for debugging. For local servers this uses g_dumpTree and for remote g_queryTree. See <a href="Group.html"><span class="s8">Group</span></a> and <a href="Server-Command-Reference.html"><span class="s8">Server-Command-Reference</span></a> for more info.</p>
-<p class="p10"><span class="Apple-tab-span"> </span></p>
-<p class="p9"><span class="Apple-tab-span"> </span>s.boot;</p>
+<p class="p1"><b>queryAllNodes - </b>Post a representation of this Server's current node tree to the post window. Very helpful for debugging. For local servers this uses g_dumpTree and for remote g_queryTree. See <a href="Group.html"><span class="s9">Group</span></a> and <a href="Server-Command-Reference.html"><span class="s9">Server-Command-Reference</span></a> for more info.</p>
+<p class="p12"><span class="Apple-tab-span"> </span></p>
+<p class="p11"><span class="Apple-tab-span"> </span>s.boot;</p>
<p class="p4"><span class="s4"><span class="Apple-tab-span"> </span>s.queryAllNodes; </span>// note the root node (ID 0) and the default group (ID 1)</p>
-<p class="p9"><span class="Apple-tab-span"> </span>s.quit;</p>
-<p class="p11"><span class="Apple-tab-span"> </span></p>
+<p class="p11"><span class="Apple-tab-span"> </span>s.quit;</p>
+<p class="p13"><span class="Apple-tab-span"> </span></p>
<p class="p1"><b>ping(numberOfTimes, waitBewteen, completionFunction)</b></p>
-<p class="p1"><span class="s9"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span>measure the time between server and client, which may vary. the completionFunction is</p>
+<p class="p1"><span class="s10"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span>measure the time between server and client, which may vary. the completionFunction is</p>
<p class="p1"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>evaluated after numberOfTimes and is passed the resulting maximum.<span class="Apple-converted-space"> </span></p>
-<p class="p11"><br></p>
-<p class="p11"><br></p>
+<p class="p13"><br></p>
+<p class="p13"><br></p>
<p class="p1"><b>options - </b>returns this Server's <a href="ServerOptions.html"><span class="s3">ServerOptions</span></a> object. Changes take effect when the server is rebooted.</p>
<p class="p2"><br></p>
<p class="p1"><b>options_(aServerOptions) - </b>sets this Server's <a href="ServerOptions.html"><span class="s3">ServerOptions</span></a> object. Changes take effect when the server is rebooted.</p>
-<p class="p11"><br></p>
+<p class="p13"><br></p>
<p class="p1"><b>defaultGroup - </b>returns this Server's default group.</p>
-<p class="p11"><span class="Apple-tab-span"> </span></p>
+<p class="p13"><span class="Apple-tab-span"> </span></p>
<p class="p1"><b>volume -</b> an instance of Volume that runs after the defualt group.</p>
<p class="p2"><br></p>
<p class="p1"><b>volume_(level) -</b> sets the Volume of the Server's output to level. Level is in db.</p>
-<p class="p11"><br></p>
+<p class="p13"><br></p>
<p class="p1"><b>mute - </b>mute the server's output. This can also be toggled from the Server window with the 'm' key.</p>
-<p class="p11"><br></p>
+<p class="p13"><br></p>
<p class="p1"><b>unmute - </b>unmute the server. This can also be toggled from the Server window with the 'm' key.</p>
-<p class="p11"><br></p>
+<p class="p13"><br></p>
<p class="p8"><b>Automatic Message Bundling</b></p>
<p class="p7"><br></p>
<p class="p1">Server provides support for automatically bundling messages. This is quite convenient in object style, and ensures synchronous execution. See also <b>bundledCommands</b>.</p>
<p class="p2"><br></p>
<p class="p1"><b>makeBundle(time, func, bundle) </b>- The Function <b>func </b>is evaluated, and all OSC messages generated by it are deferred and added to a bundle. This method returns the bundle so that it can be further used if needed. If <b>time</b> is set to nil or a number the bundle will be automatically sent and executed after the corresponding delay in seconds<i>. </i>If <b>time </b>is set to false the bundle will not be sent.<span class="Apple-converted-space"> </span><i> </i><b>bundle </b>allows you to pass in a preexisting bundle and continue adding to it. If an error is encountered while evaluating <b>func</b> this method will throw an <b>Error</b> and stop message deferral.</p>
<p class="p2"><br></p>
-<p class="p9"><span class="Apple-tab-span"> </span>s.boot;</p>
-<p class="p9"><span class="Apple-tab-span"> </span>(</p>
+<p class="p11"><span class="Apple-tab-span"> </span>s.boot;</p>
+<p class="p11"><span class="Apple-tab-span"> </span>(</p>
<p class="p4"><span class="s4"><span class="Apple-tab-span"> </span></span>// send a synth def to server</p>
-<p class="p9"><span class="Apple-tab-span"> </span><span class="s5">SynthDef</span>(<span class="s7">"tpulse"</span>, { <span class="s5">arg</span> out=0,freq=700,sawFreq=440.0;</p>
-<p class="p9"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s5">Out</span>.ar(out, <span class="s5">SyncSaw</span>.ar(freq,<span class="Apple-converted-space"> </span>sawFreq,0.1) )</p>
-<p class="p9"><span class="Apple-tab-span"> </span>}).send(s);</p>
-<p class="p9"><span class="Apple-tab-span"> </span>)</p>
-<p class="p11"><span class="Apple-tab-span"> </span></p>
+<p class="p11"><span class="Apple-tab-span"> </span><span class="s11">SynthDef</span>(<span class="s8">"tpulse"</span>, { <span class="s11">arg</span> out=0,freq=700,sawFreq=440.0;</p>
+<p class="p11"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s11">Out</span>.ar(out, <span class="s11">SyncSaw</span>.ar(freq,<span class="Apple-converted-space"> </span>sawFreq,0.1) )</p>
+<p class="p11"><span class="Apple-tab-span"> </span>}).send(s);</p>
+<p class="p11"><span class="Apple-tab-span"> </span>)</p>
+<p class="p13"><span class="Apple-tab-span"> </span></p>
<p class="p4"><span class="s4"><span class="Apple-tab-span"> </span></span>// all OSC commands generated in the function contained below will be added to a bundle</p>
<p class="p4"><span class="s4"><span class="Apple-tab-span"> </span></span>// and executed simultaneously after 2 seconds.</p>
-<p class="p9"><span class="Apple-tab-span"> </span>(</p>
-<p class="p9"><span class="Apple-tab-span"> </span>s.makeBundle(2.0, {</p>
-<p class="p9"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>x = <span class="s5">Synth</span>.new(<span class="s7">"tpulse"</span>);</p>
-<p class="p9"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>a = <span class="s5">Bus</span>.control.set(440);</p>
-<p class="p9"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>x.busMap(<span class="s10">\freq</span>, a);</p>
-<p class="p9"><span class="Apple-tab-span"> </span>});</p>
-<p class="p9"><span class="Apple-tab-span"> </span>)</p>
-<p class="p9"><span class="Apple-tab-span"> </span>x.free;</p>
-<p class="p11"><span class="Apple-tab-span"> </span></p>
+<p class="p11"><span class="Apple-tab-span"> </span>(</p>
+<p class="p11"><span class="Apple-tab-span"> </span>s.makeBundle(2.0, {</p>
+<p class="p11"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>x = <span class="s11">Synth</span>.new(<span class="s8">"tpulse"</span>);</p>
+<p class="p11"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>a = <span class="s11">Bus</span>.control.set(440);</p>
+<p class="p11"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>x.busMap(<span class="s12">\freq</span>, a);</p>
+<p class="p11"><span class="Apple-tab-span"> </span>});</p>
+<p class="p11"><span class="Apple-tab-span"> </span>)</p>
+<p class="p11"><span class="Apple-tab-span"> </span>x.free;</p>
+<p class="p13"><span class="Apple-tab-span"> </span></p>
<p class="p4"><span class="s4"><span class="Apple-tab-span"> </span></span>// don't send</p>
-<p class="p9"><span class="Apple-tab-span"> </span>(</p>
-<p class="p9"><span class="Apple-tab-span"> </span>b = s.makeBundle(<span class="s5">false</span>, {<span class="Apple-converted-space"> <span class="Apple-tab-span"> </span></span></p>
-<p class="p9"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>x = { <span class="s5">PinkNoise</span>.ar(0.1) * <span class="s5">In</span>.kr(0, 1); }.play;</p>
-<p class="p9"><span class="Apple-tab-span"> </span>});</p>
-<p class="p9"><span class="Apple-tab-span"> </span>)</p>
+<p class="p11"><span class="Apple-tab-span"> </span>(</p>
+<p class="p11"><span class="Apple-tab-span"> </span>b = s.makeBundle(<span class="s11">false</span>, {<span class="Apple-converted-space"> <span class="Apple-tab-span"> </span></span></p>
+<p class="p11"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>x = { <span class="s11">PinkNoise</span>.ar(0.1) * <span class="s11">In</span>.kr(0, 1); }.play;</p>
+<p class="p11"><span class="Apple-tab-span"> </span>});</p>
+<p class="p11"><span class="Apple-tab-span"> </span>)</p>
<p class="p4"><span class="s4"><span class="Apple-tab-span"> </span></span>// now pass b as a pre-existing bundle, and start both synths synchronously</p>
-<p class="p9"><span class="Apple-tab-span"> </span>(</p>
-<p class="p4"><span class="s4"><span class="Apple-tab-span"> </span>s.makeBundle(</span><span class="s5">nil</span><span class="s4">, { </span>// nil executes ASAP</p>
-<p class="p9"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>y = { <span class="s5">SinOsc</span>.kr(0.2).abs }.play(x, 0, 0, <span class="s10">\addBefore</span>); <span class="s11">// sine envelope</span></p>
-<p class="p9"><span class="Apple-tab-span"> </span>}, b);</p>
-<p class="p9"><span class="Apple-tab-span"> </span>)</p>
-<p class="p9"><span class="Apple-tab-span"> </span>x.free; y.free;</p>
-<p class="p11"><span class="Apple-tab-span"> </span></p>
+<p class="p11"><span class="Apple-tab-span"> </span>(</p>
+<p class="p4"><span class="s4"><span class="Apple-tab-span"> </span>s.makeBundle(</span><span class="s11">nil</span><span class="s4">, { </span>// nil executes ASAP</p>
+<p class="p11"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>y = { <span class="s11">SinOsc</span>.kr(0.2).abs }.play(x, 0, 0, <span class="s12">\addBefore</span>); <span class="s13">// sine envelope</span></p>
+<p class="p11"><span class="Apple-tab-span"> </span>}, b);</p>
+<p class="p11"><span class="Apple-tab-span"> </span>)</p>
+<p class="p11"><span class="Apple-tab-span"> </span>x.free; y.free;</p>
+<p class="p13"><span class="Apple-tab-span"> </span></p>
<p class="p4"><span class="s4"><span class="Apple-tab-span"> </span></span>// Throw an Error</p>
-<p class="p9"><span class="Apple-tab-span"> </span>(</p>
-<p class="p9"><span class="Apple-tab-span"> </span>try {</p>
-<p class="p9"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>s.makeBundle(<span class="s5">nil</span>, {</p>
-<p class="p9"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>s.farkermartin;</p>
-<p class="p9"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>});</p>
-<p class="p12"><span class="s4"><span class="Apple-tab-span"> </span>} { </span>|error|</p>
+<p class="p11"><span class="Apple-tab-span"> </span>(</p>
+<p class="p11"><span class="Apple-tab-span"> </span>try {</p>
+<p class="p11"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>s.makeBundle(<span class="s11">nil</span>, {</p>
+<p class="p11"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>s.farkermartin;</p>
+<p class="p11"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>});</p>
+<p class="p14"><span class="s4"><span class="Apple-tab-span"> </span>} { </span>|error|</p>
<p class="p5"><span class="s4"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>(</span>"Look Ma, normal operations resume even though:\n"<span class="s4"> + error.errorString).postln;<span class="Apple-converted-space"> </span></span></p>
-<p class="p9"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>x = { <span class="s5">FSinOsc</span>.ar(440, 0, 0.2) }.play; <span class="s11">// This works fine</span></p>
-<p class="p9"><span class="Apple-tab-span"> </span>}</p>
-<p class="p9"><span class="Apple-tab-span"> </span>)</p>
-<p class="p9"><span class="Apple-tab-span"> </span>x.free;</p>
+<p class="p11"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>x = { <span class="s11">FSinOsc</span>.ar(440, 0, 0.2) }.play; <span class="s13">// This works fine</span></p>
+<p class="p11"><span class="Apple-tab-span"> </span>}</p>
+<p class="p11"><span class="Apple-tab-span"> </span>)</p>
+<p class="p11"><span class="Apple-tab-span"> </span>x.free;</p>
<p class="p7"><br></p>
<p class="p2"><br></p>
<p class="p1"><b>bind(func) </b>- Just as in <b>makeBundle</b>, the Function <b>func </b>is evaluated, and all OSC messages generated by it are deferred and added to a bundle, which is sent to the server, using the server default latency.</p>
-<p class="p11"><br></p>
-<p class="p13"><span class="s4"><span class="Apple-tab-span"> </span></span>// example</p>
-<p class="p9"><span class="Apple-tab-span"> </span>(</p>
-<p class="p9"><span class="Apple-tab-span"> </span>s.bind {</p>
-<p class="p9"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>a = { <span class="s12">|freq=100|</span> <span class="s12">SinOsc</span>.ar(freq, <span class="s12">LFTri</span>.ar(freq)) * 0.2 }.play;</p>
-<p class="p9"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>s.sync;</p>
-<p class="p9"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>a.set(<span class="s13">\freq</span>, 400);</p>
-<p class="p9"><span class="Apple-tab-span"> </span>}</p>
-<p class="p9"><span class="Apple-tab-span"> </span>)</p>
+<p class="p13"><br></p>
+<p class="p15"><span class="s4"><span class="Apple-tab-span"> </span></span>// example</p>
+<p class="p11"><span class="Apple-tab-span"> </span>(</p>
+<p class="p11"><span class="Apple-tab-span"> </span>s.bind {</p>
+<p class="p11"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>a = { <span class="s14">|freq=100|</span> <span class="s14">SinOsc</span>.ar(freq, <span class="s14">LFTri</span>.ar(freq)) * 0.2 }.play;</p>
+<p class="p11"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>s.sync;</p>
+<p class="p11"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>a.set(<span class="s15">\freq</span>, 400);</p>
+<p class="p11"><span class="Apple-tab-span"> </span>}</p>
+<p class="p11"><span class="Apple-tab-span"> </span>)</p>
<p class="p7"><br></p>
<p class="p8"><b>Shared Controls</b></p>
<p class="p2"><br></p>
@@ -287,11 +294,11 @@
<p class="p2"><span class="Apple-converted-space"> <span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span></p>
<p class="p1"><b>tree_(aFunction) - </b>sets the function to be evaluated</p>
<p class="p2"><br></p>
-<p class="p9"><span class="s6"><span class="Apple-tab-span"> </span></span>s.quit;</p>
-<p class="p9"><span class="Apple-tab-span"> </span>s.tree = {<span class="s5">Group</span>.new(s.defaultGroup); <span class="s7">"Other code can be evaluated too"</span>.postln;};</p>
-<p class="p9"><span class="Apple-tab-span"> </span>s.boot;</p>
+<p class="p11"><span class="s6"><span class="Apple-tab-span"> </span></span>s.quit;</p>
+<p class="p11"><span class="Apple-tab-span"> </span>s.tree = {<span class="s11">Group</span>.new(s.defaultGroup); <span class="s8">"Other code can be evaluated too"</span>.postln;};</p>
+<p class="p11"><span class="Apple-tab-span"> </span>s.boot;</p>
<p class="p4"><span class="s4"><span class="Apple-tab-span"> </span>s.queryAllNodes; </span>// note the group within the default group</p>
-<p class="p9"><span class="Apple-tab-span"> </span>s.tree = <span class="s5">nil</span>; s.quit; <span class="s11">// reset to default</span></p>
+<p class="p11"><span class="Apple-tab-span"> </span>s.tree = <span class="s11">nil</span>; s.quit; <span class="s13">// reset to default</span></p>
<p class="p2"><b><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></b></p>
<p class="p1"><b>tree - </b>returns the contents of this Server's tree instance variable (most likely a Function).</p>
<p class="p2"><br></p>
@@ -307,7 +314,7 @@
<p class="p1"><b>n</b><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>post a representation of the node tree</p>
<p class="p1"><b>N<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></b>post a representation of the node tree and the current control values of any synths</p>
<p class="p1"><b>s</b><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>scope (internal server only)</p>
-<p class="p10"><br></p>
+<p class="p12"><br></p>
<p class="p2"><br></p>
<p class="p2"><br></p>
<p class="p2"><br></p>
@@ -335,8 +342,8 @@
<p class="p1">This functionality is also available through the recording button on the server windows. Pressing it once calls <b>prepareForRecord</b>, pressing it again calls <b>record</b>, and pressing it a third time calls <b>stopRecording</b> (see below). When doing so the file created will be in your recordings folder and be named for the current date and time. The default location of the recordings folder varies from platform to platform but is always stored in <b>thisProcess.platform.recordingsDir</b>. Setting this variable allows you to change the default.</p>
<p class="p2"><br></p>
<p class="p1"><b>NOTE:</b> <b>record</b> creates the recording synth after the Server's default group and uses <b>In.ar</b>. Thus if you add nodes after the recording synth their output will not be captured. To avoid this, either use <b>Node</b> objects (which use the default node as their target) or (when using messaging style) use a target nodeID of 1 .</p>
-<p class="p14"><br></p>
-<p class="p9">s.sendMsg(<span class="s7">"/s_new"</span>, <span class="s7">"default"</span>, s.nextNodeID, 1,1);</p>
+<p class="p16"><br></p>
+<p class="p11">s.sendMsg(<span class="s8">"/s_new"</span>, <span class="s8">"default"</span>, s.nextNodeID, 1,1);</p>
<p class="p2"><br></p>
<p class="p1">For more detail on this subject see <a href="Order-of-execution.html"><span class="s3">Order-of-execution</span></a><b>,</b> <a href="default_group.html"><span class="s3">default_group</span></a>, and <a href="NodeMessaging.html"><span class="s3">NodeMessaging</span></a>.</p>
<p class="p2"><br></p>
@@ -363,39 +370,39 @@
<p class="p2"><br></p>
<p class="p2"><br></p>
<p class="p4"><span class="s4">s.boot; </span>// start the server</p>
-<p class="p11"><br></p>
+<p class="p13"><br></p>
<p class="p4">// something to record</p>
-<p class="p9">(</p>
-<p class="p5"><span class="s5">SynthDef</span><span class="s4">(</span>"bubbles"<span class="s4">, {</span></p>
-<p class="p9"><span class="Apple-tab-span"> </span><span class="s5">var</span> f, zout;</p>
-<p class="p9"><span class="Apple-tab-span"> </span>f = <span class="s5">LFSaw</span>.kr(0.4, 0, 24, <span class="s5">LFSaw</span>.kr([8,7.23], 0, 3, 80)).midicps; <span class="s11">// glissando function</span></p>
-<p class="p9"><span class="Apple-tab-span"> </span>zout = <span class="s5">CombN</span>.ar(<span class="s5">SinOsc</span>.ar(f, 0, 0.04), 0.2, 0.2, 4); <span class="s11">// echoing sine wave</span></p>
-<p class="p9"><span class="Apple-tab-span"> </span><span class="s5">Out</span>.ar(0, zout);</p>
-<p class="p9">}).send(s);</p>
-<p class="p9"><span class="s5">SynthDef</span>(<span class="s7">"tpulse"</span>, { <span class="s5">arg</span> out=0,freq=700,sawFreq=440.0;<span class="Apple-converted-space"> </span></p>
-<p class="p9"><span class="Apple-tab-span"> </span><span class="s5">Out</span>.ar(out, <span class="s5">SyncSaw</span>.ar(freq,<span class="Apple-converted-space"> </span>sawFreq,0.1) )<span class="Apple-converted-space"> </span></p>
-<p class="p9">}).send(s);</p>
-<p class="p11"><br></p>
-<p class="p9">)</p>
-<p class="p11"><br></p>
-<p class="p9">x = <span class="s5">Synth</span>.new(<span class="s7">"bubbles"</span>);</p>
-<p class="p11"><br></p>
+<p class="p11">(</p>
+<p class="p5"><span class="s11">SynthDef</span><span class="s4">(</span>"bubbles"<span class="s4">, {</span></p>
+<p class="p11"><span class="Apple-tab-span"> </span><span class="s11">var</span> f, zout;</p>
+<p class="p11"><span class="Apple-tab-span"> </span>f = <span class="s11">LFSaw</span>.kr(0.4, 0, 24, <span class="s11">LFSaw</span>.kr([8,7.23], 0, 3, 80)).midicps; <span class="s13">// glissando function</span></p>
+<p class="p11"><span class="Apple-tab-span"> </span>zout = <span class="s11">CombN</span>.ar(<span class="s11">SinOsc</span>.ar(f, 0, 0.04), 0.2, 0.2, 4); <span class="s13">// echoing sine wave</span></p>
+<p class="p11"><span class="Apple-tab-span"> </span><span class="s11">Out</span>.ar(0, zout);</p>
+<p class="p11">}).send(s);</p>
+<p class="p11"><span class="s11">SynthDef</span>(<span class="s8">"tpulse"</span>, { <span class="s11">arg</span> out=0,freq=700,sawFreq=440.0;<span class="Apple-converted-space"> </span></p>
+<p class="p11"><span class="Apple-tab-span"> </span><span class="s11">Out</span>.ar(out, <span class="s11">SyncSaw</span>.ar(freq,<span class="Apple-converted-space"> </span>sawFreq,0.1) )<span class="Apple-converted-space"> </span></p>
+<p class="p11">}).send(s);</p>
+<p class="p13"><br></p>
+<p class="p11">)</p>
+<p class="p13"><br></p>
+<p class="p11">x = <span class="s11">Synth</span>.new(<span class="s8">"bubbles"</span>);</p>
+<p class="p13"><br></p>
<p class="p4"><span class="s4">s.prepareForRecord; </span>// you have to call this first</p>
-<p class="p11"><br></p>
-<p class="p9">s.record;</p>
-<p class="p11"><br></p>
-<p class="p9">s.pauseRecording; <span class="s11">// pausable</span></p>
-<p class="p11"><br></p>
+<p class="p13"><br></p>
+<p class="p11">s.record;</p>
+<p class="p13"><br></p>
+<p class="p11">s.pauseRecording; <span class="s13">// pausable</span></p>
+<p class="p13"><br></p>
<p class="p4"><span class="s4">s.record </span>// start again</p>
-<p class="p11"><br></p>
+<p class="p13"><br></p>
<p class="p4"><span class="s4">s.stopRecording; </span>// this closes the file and deallocates the buffer recording node, etc.</p>
-<p class="p10"><br></p>
+<p class="p12"><br></p>
<p class="p4"><span class="s4">x.free; </span>// stop the synths</p>
-<p class="p10"><br></p>
+<p class="p12"><br></p>
<p class="p4">// look in your recordings folder and you'll find a file named for this date and time</p>
-<p class="p10"><br></p>
-<p class="p10"><br></p>
-<p class="p10"><br></p>
+<p class="p12"><br></p>
+<p class="p12"><br></p>
+<p class="p12"><br></p>
<p class="p8"><b>Asynchronous Commands</b></p>
<p class="p7"><br></p>
<p class="p1">Server provides support for waiting on the completion of asynchronous OSC commands such as reading or writing soundfiles. <b>N.B. </b>The following methods must be called from within a running <a href="../Core/Kernel/Routine.html"><span class="s3">Routine</span></a>. Explicitly passing in a <a href="../Scheduling/Condition.html"><span class="s3">Condition</span></a> allows multiple elements to depend on different conditions. The examples below should make clear how all this works.</p>
@@ -406,46 +413,46 @@
<p class="p2"><br></p>
<p class="p1"><b>sync(condition, bundles, latency)</b> - Send a /sync message to the server, which will replie with the message /synced when all pending asynchronous commands have been completed. <b>condition</b> is an optional instance of <a href="../Scheduling/Condition.html"><span class="s3">Condition</span></a> used for evaluating this. This may be slightly less safe then <b>sendMsgSync</b> under UDP on a wide area network, as packets may arrive out of order, but on a local network should be okay. Under TCP this should always be safe. <b>bundles</b> is one or more OSC messages which will be bundled before the sync message (thus ensuring that they will arrive before the /sync message). <b>latency </b>allows for the message to be evaluated at a specific point in the future.</p>
<p class="p2"><br></p>
-<p class="p9">(</p>
-<p class="p12">Routine<span class="s4">.run {</span></p>
-<p class="p9"><span class="Apple-tab-span"> </span><span class="s5">var</span> c;</p>
-<p class="p11"><br></p>
+<p class="p11">(</p>
+<p class="p14">Routine<span class="s4">.run {</span></p>
+<p class="p11"><span class="Apple-tab-span"> </span><span class="s11">var</span> c;</p>
+<p class="p13"><br></p>
<p class="p4"><span class="s4"><span class="Apple-tab-span"> </span></span>// create a condition variable to control execution of the Routine</p>
-<p class="p9"><span class="Apple-tab-span"> </span>c = <span class="s5">Condition</span>.new;</p>
-<p class="p11"><span class="Apple-tab-span"> </span></p>
-<p class="p9"><span class="Apple-tab-span"> </span>s.bootSync(c);</p>
-<p class="p9"><span class="Apple-tab-span"> </span><span class="s10">\BOOTED</span>.postln;</p>
-<p class="p11"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p>
-<p class="p9"><span class="Apple-tab-span"> </span>s.sendMsgSync(c, <span class="s7">"/b_alloc"</span>, 0, 44100, 2);</p>
-<p class="p9"><span class="Apple-tab-span"> </span>s.sendMsgSync(c, <span class="s7">"/b_alloc"</span>, 1, 44100, 2);</p>
-<p class="p9"><span class="Apple-tab-span"> </span>s.sendMsgSync(c, <span class="s7">"/b_alloc"</span>, 2, 44100, 2);</p>
-<p class="p15"><span class="s4"><span class="Apple-tab-span"> </span></span>\b_alloc_DONE<span class="s4">.postln;</span></p>
-<p class="p9">};</p>
-<p class="p9">)</p>
-<p class="p11"><br></p>
-<p class="p9">(</p>
-<p class="p12">Routine<span class="s4">.run {</span></p>
-<p class="p9"><span class="Apple-tab-span"> </span><span class="s5">var</span> c;</p>
-<p class="p11"><br></p>
+<p class="p11"><span class="Apple-tab-span"> </span>c = <span class="s11">Condition</span>.new;</p>
+<p class="p13"><span class="Apple-tab-span"> </span></p>
+<p class="p11"><span class="Apple-tab-span"> </span>s.bootSync(c);</p>
+<p class="p11"><span class="Apple-tab-span"> </span><span class="s12">\BOOTED</span>.postln;</p>
+<p class="p13"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p>
+<p class="p11"><span class="Apple-tab-span"> </span>s.sendMsgSync(c, <span class="s8">"/b_alloc"</span>, 0, 44100, 2);</p>
+<p class="p11"><span class="Apple-tab-span"> </span>s.sendMsgSync(c, <span class="s8">"/b_alloc"</span>, 1, 44100, 2);</p>
+<p class="p11"><span class="Apple-tab-span"> </span>s.sendMsgSync(c, <span class="s8">"/b_alloc"</span>, 2, 44100, 2);</p>
+<p class="p17"><span class="s4"><span class="Apple-tab-span"> </span></span>\b_alloc_DONE<span class="s4">.postln;</span></p>
+<p class="p11">};</p>
+<p class="p11">)</p>
+<p class="p13"><br></p>
+<p class="p11">(</p>
+<p class="p14">Routine<span class="s4">.run {</span></p>
+<p class="p11"><span class="Apple-tab-span"> </span><span class="s11">var</span> c;</p>
+<p class="p13"><br></p>
<p class="p4"><span class="s4"><span class="Apple-tab-span"> </span></span>// create a condition variable to control execution of the Routine</p>
-<p class="p9"><span class="Apple-tab-span"> </span>c = <span class="s5">Condition</span>.new;</p>
-<p class="p11"><span class="Apple-tab-span"> </span></p>
-<p class="p9"><span class="Apple-tab-span"> </span>s.bootSync(c);</p>
-<p class="p9"><span class="Apple-tab-span"> </span><span class="s10">\BOOTED</span>.postln;</p>
-<p class="p11"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p>
-<p class="p9"><span class="Apple-tab-span"> </span>s.sendMsg(<span class="s7">"/b_alloc"</span>, 0, 44100, 2);</p>
-<p class="p9"><span class="Apple-tab-span"> </span>s.sendMsg(<span class="s7">"/b_alloc"</span>, 1, 44100, 2);</p>
-<p class="p9"><span class="Apple-tab-span"> </span>s.sendMsg(<span class="s7">"/b_alloc"</span>, 2, 44100, 2);</p>
-<p class="p9"><span class="Apple-tab-span"> </span>s.sync(c);</p>
-<p class="p15"><span class="s4"><span class="Apple-tab-span"> </span></span>\b_alloc_DONE<span class="s4">.postln;</span></p>
-<p class="p9">};</p>
-<p class="p9">)</p>
+<p class="p11"><span class="Apple-tab-span"> </span>c = <span class="s11">Condition</span>.new;</p>
+<p class="p13"><span class="Apple-tab-span"> </span></p>
+<p class="p11"><span class="Apple-tab-span"> </span>s.bootSync(c);</p>
+<p class="p11"><span class="Apple-tab-span"> </span><span class="s12">\BOOTED</span>.postln;</p>
+<p class="p13"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p>
+<p class="p11"><span class="Apple-tab-span"> </span>s.sendMsg(<span class="s8">"/b_alloc"</span>, 0, 44100, 2);</p>
+<p class="p11"><span class="Apple-tab-span"> </span>s.sendMsg(<span class="s8">"/b_alloc"</span>, 1, 44100, 2);</p>
+<p class="p11"><span class="Apple-tab-span"> </span>s.sendMsg(<span class="s8">"/b_alloc"</span>, 2, 44100, 2);</p>
+<p class="p11"><span class="Apple-tab-span"> </span>s.sync(c);</p>
+<p class="p17"><span class="s4"><span class="Apple-tab-span"> </span></span>\b_alloc_DONE<span class="s4">.postln;</span></p>
+<p class="p11">};</p>
+<p class="p11">)</p>
<p class="p2"><br></p>
<p class="p2"><br></p>
<p class="p7"><br></p>
-<p class="p10"><br></p>
-<p class="p10"><br></p>
-<p class="p10"><br></p>
-<p class="p10"><br></p>
+<p class="p12"><br></p>
+<p class="p12"><br></p>
+<p class="p12"><br></p>
+<p class="p12"><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/