supernova: fixes for boost-1.49 and gcc-4.7
[supercollider.git] / Help / ServerArchitecture / Server-Command-Reference.html
blobc2c5727eb451189d502def51e5f0300481ed44f9
1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
2 <html>
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5 <meta http-equiv="Content-Style-Type" content="text/css">
6 <title></title>
7 <meta name="Generator" content="Cocoa HTML Writer">
8 <meta name="CocoaVersion" content="1038.29">
9 <style type="text/css">
10 p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Helvetica}
11 p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px}
12 p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica}
13 p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco}
14 p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; min-height: 12.0px}
15 p.p6 {margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Helvetica}
16 p.p7 {margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Helvetica; min-height: 17.0px}
17 p.p8 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #bf0000}
18 p.p9 {margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Helvetica}
19 p.p10 {margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Helvetica}
20 p.p11 {margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Helvetica; min-height: 12.0px}
21 p.p12 {margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color: #0000bf}
22 p.p13 {margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco}
23 p.p14 {margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; min-height: 14.0px}
24 span.s1 {font: 12.0px Helvetica}
25 span.s2 {color: #0000bf}
26 span.s3 {color: #000000}
27 span.Apple-tab-span {white-space:pre}
28 </style>
29 </head>
30 <body>
31 <p class="p1"><b>SuperCollider Server Synth Engine Command Reference</b></p>
32 <p class="p2"><br></p>
33 <p class="p3">The following is a list of all server commands and their arguments.<span class="Apple-converted-space"> </span></p>
34 <p class="p2"><br></p>
35 <p class="p3">Each command has a command number which can be sent to the server as a 32 bit integer instead of an OSC style string. Command numbers are listed at the end of this document.</p>
36 <p class="p2"><br></p>
37 <p class="p3">If a command's description contains the word <b>Asynchronous</b>, then that command will be passed to a background thread to complete so as not to steal CPU time from the audio synthesis thread. All asynchronous commands send a reply to the client when they are completed. Many asynchronous commands can contain an OSC message or bundle to be executed upon completion.</p>
38 <p class="p2"><br></p>
39 <p class="p3"><span class="Apple-tab-span"> </span>eg.<span class="Apple-converted-space"> </span></p>
40 <p class="p4"><span class="s1"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span>["/d_load", "synthdefs/void.scsyndef",<span class="Apple-converted-space"> </span></p>
41 <p class="p4"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>["/s_new", "void", 1001, 1, 0] // completion message</p>
42 <p class="p4"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>]</p>
43 <p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p>
44 <p class="p2"><br></p>
45 <p class="p2"><br></p>
46 <p class="p6"><b>Master Controls</b></p>
47 <p class="p2"><br></p>
48 <p class="p3"><b>/quit<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>quit program</b></p>
49 <p class="p3"><span class="Apple-tab-span"> </span>no arguments.</p>
50 <p class="p2"><br></p>
51 <p class="p3">Exits the synthesis server.</p>
52 <p class="p3"><b>Asynchronous</b>. Replies to sender with <b>/done </b>just before completion.</p>
53 <p class="p2"><br></p>
54 <p class="p3"><b>/notify</b><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><b>register to receive notifications from server</b></p>
55 <p class="p3"><span class="Apple-tab-span"> </span>int - one to receive notifications, zero to stop receiving them.</p>
56 <p class="p2"><span class="Apple-tab-span"> </span></p>
57 <p class="p3">If argument is one, server will remember your return address and send you notifications. if argument is zero, server will stop sending you notifications.<span class="Apple-converted-space"> </span></p>
58 <p class="p3"><b>Asynchronous</b>. Replies to sender with <b>/done </b>when complete.</p>
59 <p class="p2"><br></p>
60 <p class="p3"><b>/status<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>query the status</b></p>
61 <p class="p3"><span class="Apple-tab-span"> </span>no arguments.</p>
62 <p class="p2"><br></p>
63 <p class="p3">Replies to sender with the following message.</p>
64 <p class="p3">/status.reply</p>
65 <p class="p3"><span class="Apple-tab-span"> </span>int - 1. unused.</p>
66 <p class="p3"><span class="Apple-tab-span"> </span>int - number of unit generators.</p>
67 <p class="p3"><span class="Apple-tab-span"> </span>int - number of synths.</p>
68 <p class="p3"><span class="Apple-tab-span"> </span>int - number of groups.</p>
69 <p class="p3"><span class="Apple-tab-span"> </span>int - number of loaded synth definitions.</p>
70 <p class="p3"><span class="Apple-tab-span"> </span>float - average percent CPU usage for signal processing</p>
71 <p class="p3"><span class="Apple-tab-span"> </span>float - peak percent CPU usage for signal processing</p>
72 <p class="p3"><span class="Apple-tab-span"> </span>double - nominal sample rate</p>
73 <p class="p3"><span class="Apple-tab-span"> </span>double - actual sample rate</p>
74 <p class="p2"><br></p>
75 <p class="p2"><br></p>
76 <p class="p3"><b>/cmd<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>plug-in defined command</b></p>
77 <p class="p3"><span class="Apple-tab-span"> </span>string - command name</p>
78 <p class="p3"><span class="Apple-tab-span"> </span>...any arguments</p>
79 <p class="p2"><span class="Apple-tab-span"> </span></p>
80 <p class="p3">Commands are defined by plug-ins.</p>
81 <p class="p2"><br></p>
82 <p class="p2"><br></p>
83 <p class="p3"><b>/dumpOSC<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>display incoming OSC messages</b></p>
84 <p class="p3"><span class="Apple-tab-span"> </span>int - code</p>
85 <p class="p2"><br></p>
86 <p class="p3">Turns on and off printing of the contents of incoming Open Sound Control messages. This is useful when debugging your command stream.</p>
87 <p class="p3">The values for the code are as follows:</p>
88 <p class="p3">0 - turn dumping OFF.</p>
89 <p class="p3">1 - print the parsed contents of the message.</p>
90 <p class="p3">2 - print the contents in hexadecimal.</p>
91 <p class="p3">3 - print both the parsed and hexadecimal representations of the contents.<span class="Apple-tab-span"> </span></p>
92 <p class="p2"><br></p>
93 <p class="p3"><b>/sync<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>notify when async commands have completed.</b></p>
94 <p class="p3"><span class="Apple-tab-span"> </span>int - a unique number identifying this command.</p>
95 <p class="p2"><span class="Apple-tab-span"> </span></p>
96 <p class="p3">Replies with a /synced message when all asynchronous commands received before this one have completed. The reply will contain the sent unique ID.</p>
97 <p class="p3"><b>Asynchronous</b>. Replies to sender with <b>/synced, ID </b>when complete.</p>
98 <p class="p2"><br></p>
99 <p class="p2"><br></p>
100 <p class="p3"><b>/clearSched<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>clear all scheduled bundles.</b></p>
101 <p class="p2"><span class="Apple-tab-span"> </span></p>
102 <p class="p3">Removes all bundles from the scheduling queue.</p>
103 <p class="p2"><br></p>
104 <p class="p2"><br></p>
105 <p class="p3"><b>/error<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>enable/disable error message posting</b></p>
106 <p class="p3"><span class="Apple-tab-span"> </span>int - mode</p>
107 <p class="p2"><br></p>
108 <p class="p3">Turn on or off error messages sent to the SuperCollider post window. Useful when sending a message, such as /n_free, whose failure does not necessarily indicate anything wrong.</p>
109 <p class="p2"><br></p>
110 <p class="p3">The values for mode are as follows:</p>
111 <p class="p3">0 = turn off error posting until the next ['/error', 1] message.</p>
112 <p class="p3">1 = turn on error posting.</p>
113 <p class="p2"><br></p>
114 <p class="p3">For convenience of client-side methods, you can also suppress errors temporarily, for the scope of a single bundle.</p>
115 <p class="p2"><br></p>
116 <p class="p3">-1 = turn off locally in the bundle -- error posting reverts to the "permanent" setting for the next message or bundle.</p>
117 <p class="p3">-2 = turn on locally in the bundle.</p>
118 <p class="p2"><br></p>
119 <p class="p3">These "temporary" states accumulate within a single bundle -- so if you have nested calls to methods that use bundle-local error suppression, error posting remains off until all the layers have been unwrapped. If you use ['/error', -1] within a self-bundling method, you should always close it with ['/error', -2] so that subsequent bundled messages will take the correct error posting status. However, even if this is not done, the next bundle or message received will begin with the standard error posting status, as set by modes 0 or 1.</p>
120 <p class="p2"><br></p>
121 <p class="p3">Temporary error suppression may not affect asynchronous commands in every case.</p>
122 <p class="p2"><br></p>
123 <p class="p2"><br></p>
124 <p class="p6"><b>Synth Definition Commands</b></p>
125 <p class="p2"><br></p>
126 <p class="p3"><b>/d_recv</b><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><b>receive a synth definition file</b></p>
127 <p class="p3"><span class="Apple-tab-span"> </span>bytes - buffer of data.<span class="Apple-converted-space"> </span></p>
128 <p class="p3"><span class="Apple-tab-span"> </span>bytes - an OSC message to execute upon completion. (optional)</p>
129 <p class="p2"><br></p>
130 <p class="p3">Loads a file of synth definitions from a buffer in the message. Resident definitions with the same names are overwritten.<span class="Apple-converted-space"> </span></p>
131 <p class="p3"><b>Asynchronous</b>. Replies to sender with <b>/done </b>when complete.</p>
132 <p class="p2"><br></p>
133 <p class="p2"><br></p>
134 <p class="p3"><b>/d_load</b><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><b>load synth definition</b></p>
135 <p class="p3"><span class="Apple-tab-span"> </span>string - pathname of file. Can be a pattern like "synthdefs/perc-*"</p>
136 <p class="p3"><span class="Apple-tab-span"> </span>bytes - an OSC message to execute upon completion. (optional)</p>
137 <p class="p2"><br></p>
138 <p class="p3">Loads a file of synth definitions. Resident definitions with the same names are overwritten.<span class="Apple-converted-space"> </span></p>
139 <p class="p3"><b>Asynchronous</b>. Replies to sender with <b>/done </b>when complete.</p>
140 <p class="p2"><br></p>
141 <p class="p2"><br></p>
142 <p class="p3"><b>/d_loadDir<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>load a directory of synth definitions</b></p>
143 <p class="p3"><span class="Apple-tab-span"> </span>string - pathname of directory.</p>
144 <p class="p3"><span class="Apple-tab-span"> </span>bytes - an OSC message to execute upon completion. (optional)</p>
145 <p class="p2"><span class="Apple-tab-span"> </span></p>
146 <p class="p3">Loads a directory of synth definitions files. Resident definitions with the same names are overwritten.<span class="Apple-converted-space"> </span></p>
147 <p class="p3"><b>Asynchronous</b>. Replies to sender with <b>/done </b>when complete.</p>
148 <p class="p2"><br></p>
149 <p class="p2"><br></p>
150 <p class="p3"><b>/d_free</b><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><b>delete synth definition</b></p>
151 <p class="p3"><span class="Apple-tab-span"> </span>[</p>
152 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>string - synth def name</p>
153 <p class="p3"><span class="Apple-tab-span"> </span>] * N</p>
154 <p class="p2"><br></p>
155 <p class="p3">Removes a synth definition once all synths using it have ended.<span class="Apple-converted-space"> </span></p>
156 <p class="p2"><br></p>
157 <p class="p2"><br></p>
158 <p class="p2"><br></p>
159 <p class="p6"><b>Node Commands</b></p>
160 <p class="p2"><br></p>
161 <p class="p3"><b>/n_free<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>delete a node.</b></p>
162 <p class="p3"><b><span class="Apple-tab-span"> </span></b>[</p>
163 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int - node ID</p>
164 <p class="p3"><span class="Apple-tab-span"> </span>] * N</p>
165 <p class="p2"><span class="Apple-tab-span"> </span></p>
166 <p class="p3">Stops a node abruptly, removes it from its group, and frees its memory. A list of node IDs may be specified. Using this method can cause a click if the node is not silent at the time it is freed.</p>
167 <p class="p2"><br></p>
168 <p class="p3"><b>/n_run<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>turn node on or off</b></p>
169 <p class="p3"><span class="Apple-tab-span"> </span>[</p>
170 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int - node ID</p>
171 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int - run flag</p>
172 <p class="p3"><span class="Apple-tab-span"> </span>] * N</p>
173 <p class="p2"><span class="Apple-tab-span"> </span></p>
174 <p class="p3">If the run flag set to zero then the node will not be executed.</p>
175 <p class="p3">If the run flag is set back to one, then it will be executed.</p>
176 <p class="p3">Using this method to start and stop nodes can cause a click if the node is not silent at the time run flag is toggled.<span class="Apple-converted-space"> </span></p>
177 <p class="p2"><br></p>
178 <p class="p3"><b>/n_set<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 a node's control value(s)</b></p>
179 <p class="p3"><span class="Apple-tab-span"> </span>int - node ID</p>
180 <p class="p3"><span class="Apple-tab-span"> </span>[</p>
181 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int or string - a control index or name</p>
182 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>float or int - a control value</p>
183 <p class="p3"><span class="Apple-tab-span"> </span>] * N</p>
184 <p class="p2"><span class="Apple-tab-span"> </span></p>
185 <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>
186 <p class="p2"><br></p>
187 <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>
188 <p class="p2"><br></p>
189 <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>
190 <p class="p3"><span class="Apple-tab-span"> </span>int - node ID</p>
191 <p class="p3"><span class="Apple-tab-span"> </span>[</p>
192 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int or string - a control index or name</p>
193 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int - number of sequential controls to change (M)</p>
194 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>[</p>
195 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>float or int - a control value</p>
196 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>] * M</p>
197 <p class="p3"><span class="Apple-tab-span"> </span>] * N</p>
198 <p class="p2"><span class="Apple-tab-span"> </span></p>
199 <p class="p3">Set contiguous ranges of control indices to sets of values. For each range, the starting control index is given followed by the number of controls to change, followed by the values. If the node is a group, then it sets the controls of every node in the group.</p>
200 <p class="p2"><br></p>
201 <p class="p3"><b>/n_fill<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>fill ranges of a node's control value(s)</b></p>
202 <p class="p3"><span class="Apple-tab-span"> </span>int - node ID</p>
203 <p class="p3"><span class="Apple-tab-span"> </span>[</p>
204 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int or string - a control index or name</p>
205 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int - number of values to fill (M)</p>
206 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>float or int - value</p>
207 <p class="p3"><span class="Apple-tab-span"> </span>] * N</p>
208 <p class="p2"><span class="Apple-tab-span"> </span></p>
209 <p class="p3">Set contiguous ranges of control indices to single values. For each range, the starting control index is given followed by the number of controls to change, followed by the value to fill. If the node is a group, then it sets the controls of every node in the group.</p>
210 <p class="p2"><br></p>
211 <p class="p3"><b>/n_map<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>map a node's controls to read from a bus</b></p>
212 <p class="p3"><span class="Apple-tab-span"> </span>int - node ID</p>
213 <p class="p3"><span class="Apple-tab-span"> </span>[</p>
214 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int or string - a control index or name</p>
215 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int - control bus index</p>
216 <p class="p3"><span class="Apple-tab-span"> </span>] * N</p>
217 <p class="p2"><span class="Apple-tab-span"> </span></p>
218 <p class="p3">Takes a list of pairs of control names or indices and bus indices and causes those controls to be read continuously from a global control bus. If the node is a group, then it maps the controls of every node in the group. If the control bus index is -1 then any current mapping is undone. Any <b>n_set</b>, <b>n_setn</b> and <b>n_fill</b> command will also unmap the control.</p>
219 <p class="p2"><br></p>
220 <p class="p3"><b>/n_mapn<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>map a node's controls to read from buses</b></p>
221 <p class="p3"><span class="Apple-tab-span"> </span>int - node ID</p>
222 <p class="p3"><span class="Apple-tab-span"> </span>[</p>
223 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int or string - a control index or name</p>
224 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int - control bus index</p>
225 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int - number of controls to map</p>
226 <p class="p3"><span class="Apple-tab-span"> </span>] * N</p>
227 <p class="p2"><span class="Apple-tab-span"> </span></p>
228 <p class="p3">Takes a list of triplets of control names or indices, bus indices, and number of controls to map and causes those controls to be mapped sequentially to buses. If the node is a group, then it maps the controls of every node in the group. If the control bus index is -1 then any current mapping is undone. Any <b>n_set</b>, <b>n_setn</b> and <b>n_fill</b> command will also unmap the control.</p>
229 <p class="p2"><br></p>
230 <p class="p3"><b>/n_mapa<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>map a node's controls to read from an audio bus</b></p>
231 <p class="p3"><span class="Apple-tab-span"> </span>int - node ID</p>
232 <p class="p3"><span class="Apple-tab-span"> </span>[</p>
233 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int or string - a control index or name</p>
234 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int - control bus index</p>
235 <p class="p3"><span class="Apple-tab-span"> </span>] * N</p>
236 <p class="p2"><span class="Apple-tab-span"> </span></p>
237 <p class="p3">Takes a list of pairs of control names or indices and audio bus indices and causes those controls to be read continuously from a global audio bus. If the node is a group, then it maps the controls of every node in the group. If the audio bus index is -1 then any current mapping is undone. Any <b>n_set</b>, <b>n_setn</b> and <b>n_fill</b> command will also unmap the control. For the full audio rate signal, the argument must have its rate set to \ar.</p>
238 <p class="p2"><br></p>
239 <p class="p3"><b>/n_mapan<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>map a node's controls to read from audio buses</b></p>
240 <p class="p3"><span class="Apple-tab-span"> </span>int - node ID</p>
241 <p class="p3"><span class="Apple-tab-span"> </span>[</p>
242 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int or string - a control index or name</p>
243 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int - control bus index</p>
244 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int - number of controls to map</p>
245 <p class="p3"><span class="Apple-tab-span"> </span>] * N</p>
246 <p class="p2"><span class="Apple-tab-span"> </span></p>
247 <p class="p3">Takes a list of triplets of control names or indices, audio bus indices, and number of controls to map and causes those controls to be mapped sequentially to buses. If the node is a group, then it maps the controls of every node in the group. If the audio bus index is -1 then any current mapping is undone. Any <b>n_set</b>, <b>n_setn</b> and <b>n_fill</b> command will also unmap the control. For the full audio rate signal, the argument must have its rate set to \ar.</p>
248 <p class="p2"><br></p>
249 <p class="p3"><b>/n_before<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>place a node before another</b></p>
250 <p class="p3"><span class="Apple-tab-span"> </span>[</p>
251 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int - the ID of the node to place (A)</p>
252 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int - the ID of the node before which the above is placed (B)</p>
253 <p class="p3"><span class="Apple-tab-span"> </span>] * N</p>
254 <p class="p2"><br></p>
255 <p class="p3">Places node A in the same group as node B, to execute immediately before node B.</p>
256 <p class="p2"><br></p>
257 <p class="p3"><b>/n_after<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>place a node after another</b></p>
258 <p class="p3"><span class="Apple-tab-span"> </span>[</p>
259 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int - the ID of the node to place (A)</p>
260 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int - the ID of the node after which the above is placed (B)</p>
261 <p class="p3"><span class="Apple-tab-span"> </span>] * N</p>
262 <p class="p2"><br></p>
263 <p class="p3">Places node A in the same group as node B, to execute immediately after node B.</p>
264 <p class="p2"><br></p>
265 <p class="p3"><b>/n_query<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 info about a node</b></p>
266 <p class="p3"><span class="Apple-tab-span"> </span>[</p>
267 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int - node ID</p>
268 <p class="p3"><span class="Apple-tab-span"> </span>] * N</p>
269 <p class="p2"><br></p>
270 <p class="p3">The server sends an <b>/n_info</b> message for each node to registered clients.<span class="Apple-converted-space"> </span></p>
271 <p class="p3">See <b>Node Notifications </b>below for the format of the <b>/n_info</b> message.</p>
272 <p class="p2"><br></p>
273 <p class="p3"><b>/n_trace<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>trace a node</b></p>
274 <p class="p3"><span class="Apple-tab-span"> </span>[</p>
275 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int - node ID</p>
276 <p class="p3"><span class="Apple-tab-span"> </span>] * N</p>
277 <p class="p2"><br></p>
278 <p class="p3">Causes a synth to print out the values of the inputs and outputs of its unit generators for one control period. Causes a group to print the node IDs and names of each node in the group for one control period.</p>
279 <p class="p2"><br></p>
280 <p class="p3"><b>/n_order<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>move and order a list of nodes</b></p>
281 <p class="p3"><span class="Apple-tab-span"> </span>int - add action (0,1,2, 3 or 4 see below)</p>
282 <p class="p3"><span class="Apple-tab-span"> </span>int - add target ID</p>
283 <p class="p3"><span class="Apple-tab-span"> </span>[</p>
284 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int - node ID</p>
285 <p class="p3"><span class="Apple-tab-span"> </span>] * N</p>
286 <p class="p2"><span class="Apple-tab-span"> </span></p>
287 <p class="p3">Move the listed nodes to the location specified by the target and add action, and place them in the order specified. Nodes which have already been freed will be ignored.</p>
288 <p class="p3"><b>add actions:</b></p>
289 <p class="p3"><span class="Apple-tab-span"> </span>0 - construct the node order at the head of the group specified by the add target ID.</p>
290 <p class="p3"><span class="Apple-tab-span"> </span>1 - construct the node order at the tail of the group specified by the add target ID.</p>
291 <p class="p3"><span class="Apple-tab-span"> </span>2 - construct the node order just before the node specified by the add target ID.</p>
292 <p class="p3"><span class="Apple-tab-span"> </span>3 - construct the node order<span class="Apple-converted-space">  </span>just after the node specified by the add target ID.</p>
293 <p class="p2"><br></p>
294 <p class="p6"><b>Synth Commands</b></p>
295 <p class="p2"><br></p>
296 <p class="p3"><b>/s_new<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>create a new synth</b></p>
297 <p class="p3"><span class="Apple-tab-span"> </span>string - synth definition name</p>
298 <p class="p3"><span class="Apple-tab-span"> </span>int - synth ID</p>
299 <p class="p3"><span class="Apple-tab-span"> </span>int - add action (0,1,2, 3 or 4 see below)</p>
300 <p class="p3"><span class="Apple-tab-span"> </span>int - add target ID</p>
301 <p class="p3"><span class="Apple-tab-span"> </span>[</p>
302 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int or string - a control index or name</p>
303 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>float or int - a control value</p>
304 <p class="p3"><span class="Apple-tab-span"> </span>] * N</p>
305 <p class="p2"><span class="Apple-tab-span"> </span></p>
306 <p class="p3">Create a new synth from a synth definition, give it an ID, and add it to the tree of nodes. There are four ways to add the node to the tree as determined by the add action argument which is defined as follows:</p>
307 <p class="p3"><b>add actions:</b></p>
308 <p class="p3"><span class="Apple-tab-span"> </span>0 - add the new node to the the head of the group specified by the add target ID.</p>
309 <p class="p3"><span class="Apple-tab-span"> </span>1 - add the new node to the the tail of the group specified by the add target ID.</p>
310 <p class="p3"><span class="Apple-tab-span"> </span>2 - add the new node just before the node specified by the add target ID.</p>
311 <p class="p3"><span class="Apple-tab-span"> </span>3 - add the new node just after the node specified by the add target ID.</p>
312 <p class="p3"><span class="Apple-tab-span"> </span>4 - the new node replaces the node specified by the add target ID. The target node is freed.</p>
313 <p class="p3">Controls may be set when creating the synth. The control arguments are the same as for the <b>n_set</b> command.</p>
314 <p class="p2"><br></p>
315 <p class="p3">If you send <b>/s_new</b> with a synth ID of -1, then the server will generate an ID for you. The server reserves all negative IDs. Since you don't know what the ID is, you cannot talk to this node directly later. So this is useful for nodes that are of finite duration and that get the control information they need from arguments and buses or messages directed to their group. In addition no notifications are sent when there are changes of state for this node, such as /go, /end, /on, /off.</p>
316 <p class="p2"><br></p>
317 <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>
318 <p class="p2"><br></p>
319 <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). See the <a href="NodeMessaging.html"><span class="s2">NodeMessaging</span></a> helpfile.</p>
320 <p class="p2"><br></p>
321 <p class="p2"><br></p>
322 <p class="p2"><br></p>
323 <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>
324 <p class="p3"><span class="Apple-tab-span"> </span>int - synth ID</p>
325 <p class="p3"><span class="Apple-tab-span"> </span>[</p>
326 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int or string - a control index or name</p>
327 <p class="p3"><span class="Apple-tab-span"> </span>] * N</p>
328 <p class="p2"><span class="Apple-tab-span"> </span></p>
329 <p class="p3">Replies to sender with the corresponding <b>/n_set</b> command.</p>
330 <p class="p2"><br></p>
331 <p class="p3"><b>/s_getn<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 ranges of control value(s)</b></p>
332 <p class="p3"><span class="Apple-tab-span"> </span>int - synth ID</p>
333 <p class="p3"><span class="Apple-tab-span"> </span>[</p>
334 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int or string - a control index or name</p>
335 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int - number of sequential controls to get (M)</p>
336 <p class="p3"><span class="Apple-tab-span"> </span>] * N</p>
337 <p class="p2"><span class="Apple-tab-span"> </span></p>
338 <p class="p3">Get contiguous ranges of controls. Replies to sender with the corresponding <b>/n_setn</b> command.<span class="Apple-converted-space"> </span></p>
339 <p class="p2"><br></p>
340 <p class="p3"><b>/s_noid<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>auto-reassign synth's ID to a reserved value</b></p>
341 <p class="p3"><span class="Apple-tab-span"> </span>[</p>
342 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int - synth ID</p>
343 <p class="p3"><span class="Apple-tab-span"> </span>] * N</p>
344 <p class="p2"><span class="Apple-tab-span"> </span></p>
345 <p class="p3">This command is used when the client no longer needs to communicate with the synth and wants to have the freedom to reuse the ID. The server will reassign this synth to a reserved negative number. This command is purely for bookkeeping convenience of the client. No notification is sent when this occurs.</p>
346 <p class="p2"><br></p>
347 <p class="p7"><br></p>
348 <p class="p6"><b>Group Commands</b></p>
349 <p class="p2"><br></p>
350 <p class="p3"><b>/g_new<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>create a new group</b></p>
351 <p class="p3"><span class="Apple-tab-span"> </span>[</p>
352 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int - new group ID</p>
353 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int - add action (0,1,2, 3 or 4 see below)</p>
354 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int - add target ID</p>
355 <p class="p3"><span class="Apple-tab-span"> </span>] * N</p>
356 <p class="p2"><span class="Apple-tab-span"> </span></p>
357 <p class="p3">Create a new group and add it to the tree of nodes.</p>
358 <p class="p3">There are four ways to add the group to the tree as determined by the add action argument which is defined as follows (the same as for "/s_new"):</p>
359 <p class="p3"><b>add actions:</b></p>
360 <p class="p3"><span class="Apple-tab-span"> </span>0 - add the new group to the the head of the group specified by the add target ID.</p>
361 <p class="p3"><span class="Apple-tab-span"> </span>1 - add the new group to the the tail of the group specified by the add target ID.</p>
362 <p class="p3"><span class="Apple-tab-span"> </span>2 - add the new group just before the node specified by the add target ID.</p>
363 <p class="p3"><span class="Apple-tab-span"> </span>3 - add the new group just after the node specified by the add target ID.</p>
364 <p class="p3"><span class="Apple-tab-span"> </span>4 - the new node replaces the node specified by the add target ID. The target node is freed.</p>
365 <p class="p3">Multiple groups may be created in one command by adding arguments.</p>
366 <p class="p2"><br></p>
367 <p class="p3"><b>/p_new<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>create a new parallel group</b></p>
368 <p class="p3"><span class="Apple-tab-span"> </span>[</p>
369 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int - new group ID</p>
370 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int - add action (0,1,2, 3 or 4 see below)</p>
371 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int - add target ID</p>
372 <p class="p3"><span class="Apple-tab-span"> </span>] * N</p>
373 <p class="p2"><span class="Apple-tab-span"> </span></p>
374 <p class="p3">Create a new parallel group and add it to the tree of nodes. Parallel groups are relaxed groups, their child nodes are evaluated in unspecified order.</p>
375 <p class="p3">There are four ways to add the group to the tree as determined by the add action argument which is defined as follows (the same as for "/s_new"):</p>
376 <p class="p3"><b>add actions:</b></p>
377 <p class="p3"><span class="Apple-tab-span"> </span>0 - add the new group to the the head of the group specified by the add target ID.</p>
378 <p class="p3"><span class="Apple-tab-span"> </span>1 - add the new group to the the tail of the group specified by the add target ID.</p>
379 <p class="p3"><span class="Apple-tab-span"> </span>2 - add the new group just before the node specified by the add target ID.</p>
380 <p class="p3"><span class="Apple-tab-span"> </span>3 - add the new group just after the node specified by the add target ID.</p>
381 <p class="p3"><span class="Apple-tab-span"> </span>4 - the new node replaces the node specified by the add target ID. The target node is freed.</p>
382 <p class="p3">Multiple groups may be created in one command by adding arguments.</p>
383 <p class="p2"><br></p>
384 <p class="p3"><b>/g_head<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>add node to head of group</b></p>
385 <p class="p3"><span class="Apple-tab-span"> </span>[</p>
386 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int - group ID</p>
387 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int - node ID</p>
388 <p class="p3"><span class="Apple-tab-span"> </span>] * N</p>
389 <p class="p2"><span class="Apple-tab-span"> </span></p>
390 <p class="p3">Adds the node to the head (first to be executed) of the group.</p>
391 <p class="p2"><br></p>
392 <p class="p3"><b>/g_tail<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>add node to tail of group</b></p>
393 <p class="p3"><span class="Apple-tab-span"> </span>[</p>
394 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int - group ID</p>
395 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int - node ID</p>
396 <p class="p3"><span class="Apple-tab-span"> </span>] * N</p>
397 <p class="p2"><span class="Apple-tab-span"> </span></p>
398 <p class="p3">Adds the node to the tail (last to be executed) of the group.</p>
399 <p class="p2"><br></p>
400 <p class="p3"><b>/g_freeAll<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>delete all nodes in a group.</b></p>
401 <p class="p3"><span class="Apple-tab-span"> </span>[</p>
402 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int - group ID</p>
403 <p class="p3"><span class="Apple-tab-span"> </span>] * N</p>
404 <p class="p2"><span class="Apple-tab-span"> </span></p>
405 <p class="p3">Frees all nodes in the group. A list of groups may be specified.</p>
406 <p class="p2"><br></p>
407 <p class="p3"><b>/g_deepFree<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>free all synths in this group and all its sub-groups.</b></p>
408 <p class="p3"><span class="Apple-tab-span"> </span>[</p>
409 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int - group ID</p>
410 <p class="p3"><span class="Apple-tab-span"> </span>] * N</p>
411 <p class="p2"><span class="Apple-tab-span"> </span></p>
412 <p class="p3">Traverses all groups below this group and frees all the synths. Sub-groups are not freed. A list of groups may be specified.</p>
413 <p class="p2"><br></p>
414 <p class="p3"><b>/g_dumpTree<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>post a representation of this group's node subtree.</b></p>
415 <p class="p3"><span class="Apple-tab-span"> </span>[</p>
416 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int - group ID</p>
417 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int - flag; if not 0 the current control (arg) values for synths will be posted</p>
418 <p class="p3"><span class="Apple-tab-span"> </span>] * N</p>
419 <p class="p2"><span class="Apple-tab-span"> </span></p>
420 <p class="p3">Posts a representation of this group's node subtree, i.e. all the groups and synths contained within it, optionally including the current control values for synths.</p>
421 <p class="p2"><br></p>
422 <p class="p3"><b>/g_queryTree<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 a representation of this group's node subtree.</b></p>
423 <p class="p3"><span class="Apple-tab-span"> </span>[</p>
424 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int - group ID</p>
425 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int - flag: if not 0 the current control (arg) values for synths will be included</p>
426 <p class="p3"><span class="Apple-tab-span"> </span>] * N</p>
427 <p class="p2"><span class="Apple-tab-span"> </span></p>
428 <p class="p3">Request a representation of this group's node subtree, i.e. all the groups and synths contained within it. Replies to the sender with a <b>/g_queryTree.reply </b>message listing all of the nodes contained within the group in the following format:</p>
429 <p class="p2"><br></p>
430 <p class="p3"><span class="Apple-tab-span"> </span>int - flag: if synth control values are included 1, else 0</p>
431 <p class="p3"><span class="Apple-tab-span"> </span>int - node ID of the requested group</p>
432 <p class="p3"><span class="Apple-tab-span"> </span>int - number of child nodes contained within the requested group</p>
433 <p class="p3"><span class="Apple-tab-span"> </span><i>then for each node in the subtree:</i></p>
434 <p class="p3"><span class="Apple-tab-span"> </span>[</p>
435 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int - node ID</p>
436 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int - number of child nodes contained within this node. If -1this is a synth, if &gt;=0 it's a group</p>
437 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><i>then, if this node is a synth:</i></p>
438 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>symbol - the SynthDef name for this node.</p>
439 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><i>then, if flag (see above) is true:</i></p>
440 <p class="p3"><i><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></i>int - numControls for this synth (M)</p>
441 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>[</p>
442 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>symbol or int: control name or index</p>
443 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>float or symbol: value or control bus mapping symbol (e.g. 'c1')</p>
444 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>] * M</p>
445 <p class="p3"><span class="Apple-tab-span"> </span>] * the number of nodes in the subtree</p>
446 <p class="p2"><span class="Apple-tab-span"> </span></p>
447 <p class="p3"><b>N.B. </b>The order of nodes corresponds to their execution order on the server. Thus child nodes (those contained within a group) are listed immediately following their parent. See the method Server:queryAllNodes for an example of how to process this reply.</p>
448 <p class="p2"><br></p>
449 <p class="p2"><br></p>
450 <p class="p6"><b>Unit Generator Commands</b></p>
451 <p class="p2"><br></p>
452 <p class="p3"><b>/u_cmd<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>send a command to a unit generator</b></p>
453 <p class="p3"><span class="Apple-tab-span"> </span>int - node ID</p>
454 <p class="p3"><span class="Apple-tab-span"> </span>int - unit generator index</p>
455 <p class="p3"><span class="Apple-tab-span"> </span>string - command name</p>
456 <p class="p3"><span class="Apple-tab-span"> </span>...any arguments</p>
457 <p class="p2"><span class="Apple-tab-span"> </span></p>
458 <p class="p3">Sends all arguments following the command name to the unit generator to be performed. Commands are defined by unit generator plug ins.</p>
459 <p class="p2"><br></p>
460 <p class="p2"><br></p>
461 <p class="p6"><b>Buffer Commands</b></p>
462 <p class="p2"><br></p>
463 <p class="p3">Buffers are stored in a global array, indexed by integers starting at zero.<span class="Apple-converted-space"> </span></p>
464 <p class="p2"><br></p>
465 <p class="p3"><b>/b_alloc<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>allocate buffer space.</b></p>
466 <p class="p3"><span class="Apple-tab-span"> </span>int - buffer number</p>
467 <p class="p3"><span class="Apple-tab-span"> </span>int - number of frames</p>
468 <p class="p3"><span class="Apple-tab-span"> </span>int - number of channels (optional. default = 1 channel)</p>
469 <p class="p3"><span class="Apple-tab-span"> </span>bytes - an OSC message to execute upon completion. (optional)</p>
470 <p class="p2"><span class="Apple-tab-span"> </span></p>
471 <p class="p3">Allocates zero filled buffer to number of channels and samples.</p>
472 <p class="p3"><b>Asynchronous</b>. Replies to sender with <b>/done </b>when complete.</p>
473 <p class="p2"><br></p>
474 <p class="p3"><b>/b_allocRead<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>allocate buffer space and read a sound file.</b></p>
475 <p class="p3"><span class="Apple-tab-span"> </span>int - buffer number</p>
476 <p class="p3"><span class="Apple-tab-span"> </span>string - path name of a sound file.</p>
477 <p class="p3"><span class="Apple-tab-span"> </span>int - starting frame in file (optional. default = 0)</p>
478 <p class="p3"><span class="Apple-tab-span"> </span>int - number of frames to read (optional. default = 0, see below)</p>
479 <p class="p3"><span class="Apple-tab-span"> </span>bytes - an OSC message to execute upon completion. (optional)</p>
480 <p class="p2"><span class="Apple-tab-span"> </span></p>
481 <p class="p3">Allocates buffer to number of channels of file and number of samples requested, or fewer if sound file is smaller than requested. Reads sound file data from the given starting frame in the file. If the number of frames argument is less than or equal to zero, the entire file is read.<span class="Apple-converted-space"> </span></p>
482 <p class="p3"><b>Asynchronous</b>. Replies to sender with <b>/done </b>when complete.</p>
483 <p class="p2"><br></p>
484 <p class="p3"><b>/b_allocReadChannel<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>allocate buffer space and read channels from a sound file.</b></p>
485 <p class="p3"><span class="Apple-tab-span"> </span>int<span class="Apple-converted-space">  </span>- buffer number</p>
486 <p class="p3"><span class="Apple-tab-span"> </span>string - path name of a sound file</p>
487 <p class="p3"><span class="Apple-tab-span"> </span>int - starting frame in file</p>
488 <p class="p3"><span class="Apple-tab-span"> </span>int - number of frames to read</p>
489 <p class="p3"><span class="Apple-tab-span"> </span>[</p>
490 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-converted-space">  </span>int<span class="Apple-converted-space">  </span>- source file channel index</p>
491 <p class="p3"><span class="Apple-tab-span"> </span>] * N<span class="Apple-converted-space">    </span>N &gt;= 0</p>
492 <p class="p3"><span class="Apple-tab-span"> </span>bytes - an OSC message to execute upon completion. (optional)</p>
493 <p class="p2"><span class="Apple-tab-span"> </span></p>
494 <p class="p3">As b_allocRead, but reads individual channels into the allocated buffer in the order specified.</p>
495 <p class="p3"><b>Asynchronous</b>. Replies to sender with <b>/done </b>when complete.</p>
496 <p class="p2"><br></p>
497 <p class="p3"><b>/b_read<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>read sound file data into an existing buffer.</b></p>
498 <p class="p3"><span class="Apple-tab-span"> </span>int - buffer number</p>
499 <p class="p3"><span class="Apple-tab-span"> </span>string - path name of a sound file.</p>
500 <p class="p3"><span class="Apple-tab-span"> </span>int - starting frame in file (optional. default = 0)</p>
501 <p class="p3"><span class="Apple-tab-span"> </span>int - number of frames to read (optional. default = -1, see below)</p>
502 <p class="p3"><span class="Apple-tab-span"> </span>int - starting frame in buffer (optional. default = 0)</p>
503 <p class="p3"><span class="Apple-tab-span"> </span>int - leave file open (optional. default = 0)</p>
504 <p class="p3"><span class="Apple-tab-span"> </span>bytes - an OSC message to execute upon completion. (optional)</p>
505 <p class="p2"><span class="Apple-tab-span"> </span></p>
506 <p class="p3">Reads sound file data from the given starting frame in the file and writes it to the given starting frame in the buffer. If number of frames is less than zero, the entire file is read.<span class="Apple-converted-space"> </span></p>
507 <p class="p3">If reading a file to be used by DiskIn ugen then you will want to set "leave file open" to one, otherwise set it to zero.</p>
508 <p class="p3"><b>Asynchronous</b>. Replies to sender with <b>/done </b>when complete.</p>
509 <p class="p2"><br></p>
510 <p class="p3"><b>/b_readChannel<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>read sound file channel data into an existing buffer</b></p>
511 <p class="p3"><span class="Apple-tab-span"> </span>int - buffer number</p>
512 <p class="p3"><span class="Apple-tab-span"> </span>string - path name of a sound file</p>
513 <p class="p3"><span class="Apple-tab-span"> </span>int - starting frame in file</p>
514 <p class="p3"><span class="Apple-tab-span"> </span>int - number of frames to read</p>
515 <p class="p3"><span class="Apple-tab-span"> </span>int - starting frame in buffer</p>
516 <p class="p3"><span class="Apple-tab-span"> </span>int - leave file open</p>
517 <p class="p3"><span class="Apple-tab-span"> </span>[</p>
518 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-converted-space">  </span>int<span class="Apple-converted-space">  </span>- source file channel index</p>
519 <p class="p3"><span class="Apple-tab-span"> </span>] * N<span class="Apple-converted-space">    </span>N &gt;= 0</p>
520 <p class="p3"><span class="Apple-tab-span"> </span>bytes - completion message</p>
521 <p class="p2"><span class="Apple-tab-span"> </span></p>
522 <p class="p3">As b_read, but reads individual channels in the order specified. The number of channels requested must match the number of channels in the buffer.</p>
523 <p class="p3"><b>Asynchronous</b>. Replies to sender with <b>/done </b>when complete.</p>
524 <p class="p2"><br></p>
525 <p class="p3"><b>/b_write<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>write sound file data.</b></p>
526 <p class="p3"><span class="Apple-tab-span"> </span>int - buffer number</p>
527 <p class="p3"><span class="Apple-tab-span"> </span>string - path name of a sound file.</p>
528 <p class="p3"><span class="Apple-tab-span"> </span>string - header format.</p>
529 <p class="p3"><span class="Apple-tab-span"> </span>string - sample format.</p>
530 <p class="p3"><span class="Apple-tab-span"> </span>int - number of frames to write (optional. default = -1, see below)</p>
531 <p class="p3"><span class="Apple-tab-span"> </span>int - starting frame in buffer (optional. default = 0)</p>
532 <p class="p3"><span class="Apple-tab-span"> </span>int - leave file open (optional. default = 0)</p>
533 <p class="p3"><span class="Apple-tab-span"> </span>bytes - an OSC message to execute upon completion. (optional)</p>
534 <p class="p2"><br></p>
535 <p class="p3">Write a buffer as a sound file.</p>
536 <p class="p3">Header format is one of:<span class="Apple-converted-space"> </span></p>
537 <p class="p3"><span class="Apple-tab-span"> </span>"aiff", "next", "wav", "ircam"", "raw"</p>
538 <p class="p3">Sample format is one of:</p>
539 <p class="p3"><span class="Apple-tab-span"> </span>"int8", "int16", "int24", "int32", "float", "double", "mulaw", "alaw"</p>
540 <p class="p3">Not all combinations of header format and sample format are possible.</p>
541 <p class="p3">If number of frames is less than zero, all samples from the starting frame to the end of the buffer are written.</p>
542 <p class="p3">If opening a file to be used by DiskOut ugen then you will want to set "leave file open" to one, otherwise set it to zero. If "leave file open" is set to one then the file is created, but no frames are written until the DiskOut ugen does so.</p>
543 <p class="p3"><b>Asynchronous</b>. Replies to sender with <b>/done </b>when complete.</p>
544 <p class="p2"><br></p>
545 <p class="p3"><b>/b_free<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>free buffer data.</b></p>
546 <p class="p3"><span class="Apple-tab-span"> </span>int - buffer number</p>
547 <p class="p3"><span class="Apple-tab-span"> </span>bytes - an OSC message to execute upon completion. (optional)</p>
548 <p class="p2"><span class="Apple-tab-span"> </span></p>
549 <p class="p3">Frees buffer space allocated for this buffer.<span class="Apple-converted-space"> </span></p>
550 <p class="p3"><b>Asynchronous</b>. Replies to sender with <b>/done </b>when complete.</p>
551 <p class="p2"><br></p>
552 <p class="p3"><b>/b_zero<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>zero sample data</b></p>
553 <p class="p3"><span class="Apple-tab-span"> </span>int - buffer number</p>
554 <p class="p3"><span class="Apple-tab-span"> </span>bytes - an OSC message to execute upon completion. (optional)</p>
555 <p class="p2"><span class="Apple-tab-span"> </span></p>
556 <p class="p3">Sets all samples in the buffer to zero.<span class="Apple-converted-space"> </span></p>
557 <p class="p3"><b>Asynchronous</b>. Replies to sender with <b>/done </b>when complete.</p>
558 <p class="p2"><br></p>
559 <p class="p3"><b>/b_set<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 sample value(s)</b></p>
560 <p class="p3"><span class="Apple-tab-span"> </span>int - buffer number</p>
561 <p class="p3"><span class="Apple-tab-span"> </span>[</p>
562 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int - a sample index</p>
563 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>float - a sample value</p>
564 <p class="p3"><span class="Apple-tab-span"> </span>] * N</p>
565 <p class="p2"><span class="Apple-tab-span"> </span></p>
566 <p class="p3">Takes a list of pairs of sample indices and values and sets the samples to those values.<span class="Apple-converted-space"> </span></p>
567 <p class="p2"><br></p>
568 <p class="p3"><b>/b_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 sample value(s)</b></p>
569 <p class="p3"><span class="Apple-tab-span"> </span>int - buffer number</p>
570 <p class="p3"><span class="Apple-tab-span"> </span>[</p>
571 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int - sample starting index</p>
572 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int - number of sequential samples to change (M)</p>
573 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>[</p>
574 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>float - a sample value</p>
575 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>] * M</p>
576 <p class="p3"><span class="Apple-tab-span"> </span>] * N</p>
577 <p class="p2"><span class="Apple-tab-span"> </span></p>
578 <p class="p3">Set contiguous ranges of sample indices to sets of values. For each range, the starting sample index is given followed by the number of samples to change, followed by the values.</p>
579 <p class="p2"><br></p>
580 <p class="p3"><b>/b_fill<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>fill ranges of sample value(s)</b></p>
581 <p class="p3"><span class="Apple-tab-span"> </span>int - buffer number</p>
582 <p class="p3"><span class="Apple-tab-span"> </span>[</p>
583 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int - sample starting index</p>
584 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int - number of samples to fill (M)</p>
585 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>float - value</p>
586 <p class="p3"><span class="Apple-tab-span"> </span>] * N</p>
587 <p class="p2"><span class="Apple-tab-span"> </span></p>
588 <p class="p3">Set contiguous ranges of sample indices to single values. For each range, the starting sample index is given followed by the number of samples to change, followed by the value to fill. This is only meant for setting a few samples, not whole buffers or large sections.</p>
589 <p class="p2"><br></p>
590 <p class="p2"><br></p>
591 <p class="p3"><b>/b_gen<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>call a command to fill a buffer</b></p>
592 <p class="p3"><span class="Apple-tab-span"> </span>int - buffer number</p>
593 <p class="p3"><span class="Apple-tab-span"> </span>string - command name</p>
594 <p class="p3"><span class="Apple-tab-span"> </span>.. command arguments</p>
595 <p class="p2"><br></p>
596 <p class="p3">Plug-ins can define commands that operate on buffers. The arguments after the command name are defined by the command. The currently defined buffer fill commands are listed below in a separate section.</p>
597 <p class="p3"><b>Asynchronous</b>. Replies to sender with <b>/done </b>when complete.</p>
598 <p class="p2"><br></p>
599 <p class="p3"><b>/b_close</b></p>
600 <p class="p3"><span class="Apple-tab-span"> </span>int - buffer number</p>
601 <p class="p2"><span class="Apple-tab-span"> </span></p>
602 <p class="p3">After using a buffer with DiskOut, close the soundfile and write header information.</p>
603 <p class="p3"><b>Asynchronous</b>. Replies to sender with <b>/done </b>when complete.</p>
604 <p class="p2"><br></p>
605 <p class="p3"><b>/b_query</b></p>
606 <p class="p3"><span class="Apple-tab-span"> </span>[</p>
607 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int - buffer number</p>
608 <p class="p3"><span class="Apple-tab-span"> </span>] * N</p>
609 <p class="p2"><span class="Apple-tab-span"> </span></p>
610 <p class="p3">Responds to the sender with a <b>/b_info</b> message.<span class="Apple-converted-space">  </span>The arguments to <b>/b_info</b> are as follows:</p>
611 <p class="p3"><span class="Apple-tab-span"> </span>[</p>
612 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int - buffer number</p>
613 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int - number of frames</p>
614 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int - number of channels</p>
615 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>float - sample rate</p>
616 <p class="p3"><span class="Apple-tab-span"> </span>] * N</p>
617 <p class="p2"><br></p>
618 <p class="p3"><b>/b_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 sample value(s)</b></p>
619 <p class="p3"><span class="Apple-tab-span"> </span>int - buffer number</p>
620 <p class="p3"><span class="Apple-tab-span"> </span>[</p>
621 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int - a sample index</p>
622 <p class="p3"><span class="Apple-tab-span"> </span>] * N</p>
623 <p class="p2"><span class="Apple-tab-span"> </span></p>
624 <p class="p3">Replies to sender with the corresponding <b>/b_set</b> command.</p>
625 <p class="p2"><br></p>
626 <p class="p3"><b>/b_getn<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 ranges of sample value(s)</b></p>
627 <p class="p3"><span class="Apple-tab-span"> </span>int - buffer number</p>
628 <p class="p3"><span class="Apple-tab-span"> </span>[</p>
629 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int - starting sample index</p>
630 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int - number of sequential samples to get (M)</p>
631 <p class="p3"><span class="Apple-tab-span"> </span>] * N</p>
632 <p class="p2"><span class="Apple-tab-span"> </span></p>
633 <p class="p3">Get contiguous ranges of samples. Replies to sender with the corresponding <b>/b_setn</b> command. This is only meant for getting a few samples, not whole buffers or large sections.</p>
634 <p class="p2"><br></p>
635 <p class="p2"><br></p>
636 <p class="p2"><br></p>
637 <p class="p6"><b>Control Bus Commands</b></p>
638 <p class="p2"><br></p>
639 <p class="p3"><b>/c_set<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 bus value(s)</b></p>
640 <p class="p3"><span class="Apple-tab-span"> </span>[</p>
641 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int - a bus index</p>
642 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>float or int - a control value</p>
643 <p class="p3"><span class="Apple-tab-span"> </span>] * N</p>
644 <p class="p2"><span class="Apple-tab-span"> </span></p>
645 <p class="p3">Takes a list of pairs of bus indices and values and sets the buses to those values.<span class="Apple-converted-space"> </span></p>
646 <p class="p2"><br></p>
647 <p class="p3"><b>/c_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 bus value(s)</b></p>
648 <p class="p3"><span class="Apple-tab-span"> </span>[</p>
649 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int - starting bus index</p>
650 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int - number of sequential buses to change (M)</p>
651 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>[</p>
652 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>float or int - a control value</p>
653 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>] * M</p>
654 <p class="p3"><span class="Apple-tab-span"> </span>] * N</p>
655 <p class="p2"><span class="Apple-tab-span"> </span></p>
656 <p class="p3">Set contiguous ranges of buses to sets of values. For each range, the starting bus index is given followed by the number of channels to change, followed by the values.</p>
657 <p class="p2"><br></p>
658 <p class="p3"><b>/c_fill<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>fill ranges of bus value(s)</b></p>
659 <p class="p3"><span class="Apple-tab-span"> </span>[</p>
660 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int - starting bus index</p>
661 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int - number of buses to fill (M)</p>
662 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>float or int - value</p>
663 <p class="p3"><span class="Apple-tab-span"> </span>] * N</p>
664 <p class="p2"><span class="Apple-tab-span"> </span></p>
665 <p class="p3">Set contiguous ranges of buses to single values. For each range, the starting sample index is given followed by the number of buses to change, followed by the value to fill.</p>
666 <p class="p2"><br></p>
667 <p class="p3"><b>/c_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 bus value(s)</b></p>
668 <p class="p3"><span class="Apple-tab-span"> </span>[</p>
669 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int - a bus index</p>
670 <p class="p3"><span class="Apple-tab-span"> </span>] * N</p>
671 <p class="p2"><span class="Apple-tab-span"> </span></p>
672 <p class="p3">Takes a list of buses and replies to sender with the corresponding <b>/c_set</b> command.</p>
673 <p class="p2"><br></p>
674 <p class="p3"><b>/c_getn<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 ranges of bus value(s)</b></p>
675 <p class="p3"><span class="Apple-tab-span"> </span>[</p>
676 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int - starting bus index</p>
677 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int - number of sequential buses to get (M)</p>
678 <p class="p3"><span class="Apple-tab-span"> </span>] * N</p>
679 <p class="p2"><span class="Apple-tab-span"> </span></p>
680 <p class="p3">Get contiguous ranges of buses. Replies to sender with the corresponding <b>/c_setn</b> command.</p>
681 <p class="p2"><br></p>
682 <p class="p2"><br></p>
683 <p class="p2"><br></p>
684 <p class="p6"><b>Non Real Time Mode Commands</b></p>
685 <p class="p2"><br></p>
686 <p class="p3"><b>/nrt_end<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>end real time mode, close file</b></p>
687 <p class="p8"><b>not yet implemented</b><span class="s3"><b><span class="Apple-converted-space"> </span></b></span></p>
688 <p class="p3"><span class="Apple-tab-span"> </span>no arguments.</p>
689 <p class="p2"><span class="Apple-tab-span"> </span></p>
690 <p class="p3">This message should be sent in a bundle in non real time mode.<span class="Apple-converted-space"> </span></p>
691 <p class="p3">The bundle timestamp will establish the ending time of the file.<span class="Apple-converted-space"> </span></p>
692 <p class="p3">This command will end non real time mode and close the sound file.</p>
693 <p class="p3">Replies to sender with <b>/done </b>when complete.</p>
694 <p class="p2"><br></p>
695 <p class="p2"><br></p>
696 <p class="p7"><br></p>
697 <p class="p6"><b>Replies to Commands</b></p>
698 <p class="p2"><br></p>
699 <p class="p3">These messages are sent by the server in reponse to some commands.</p>
700 <p class="p2"><br></p>
701 <p class="p3"><b>/done<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>an asynchronous message has completed.</b></p>
702 <p class="p3"><span class="Apple-tab-span"> </span>string - the name of the command</p>
703 <p class="p2"><br></p>
704 <p class="p3">Sent in response to all asynchronous commands. Sent only to the sender of the original message.</p>
705 <p class="p2"><br></p>
706 <p class="p3"><b>/fail<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>an error occurred.</b></p>
707 <p class="p3"><span class="Apple-tab-span"> </span>string - the name of the command</p>
708 <p class="p3"><span class="Apple-tab-span"> </span>string - the error message.</p>
709 <p class="p2"><br></p>
710 <p class="p3">There was a problem. Sent only to the sender of the original message.</p>
711 <p class="p2"><br></p>
712 <p class="p3"><b>/late<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>a command was received too late.</b></p>
713 <p class="p8"><b>not yet implemented</b><span class="s3"><b><span class="Apple-converted-space"> </span></b></span></p>
714 <p class="p3"><span class="Apple-tab-span"> </span>int - the high 32 bits of the original time stamp.</p>
715 <p class="p3"><span class="Apple-tab-span"> </span>int - the low 32 bits of the original time stamp.</p>
716 <p class="p3"><span class="Apple-tab-span"> </span>int - the high 32 bits of the time it was executed.</p>
717 <p class="p3"><span class="Apple-tab-span"> </span>int - the low 32 bits of the time it was executed.</p>
718 <p class="p2"><br></p>
719 <p class="p3">The command was received too late to be executed on time. Sent only to the sender of the original message.</p>
720 <p class="p2"><br></p>
721 <p class="p2"><br></p>
722 <p class="p6"><b>Notifications from Server</b></p>
723 <p class="p2"><br></p>
724 <p class="p3">These messages are sent as notification of some event to all clients who have registered via the /notify command .</p>
725 <p class="p2"><br></p>
726 <p class="p3"><b>Node Notifications</b></p>
727 <p class="p2"><br></p>
728 <p class="p3">All of these have the same arguments:</p>
729 <p class="p3"><span class="Apple-tab-span"> </span>int - node ID</p>
730 <p class="p3"><span class="Apple-tab-span"> </span>int - the node's parent group ID</p>
731 <p class="p3"><span class="Apple-tab-span"> </span>int - previous node ID, -1 if no previous node.</p>
732 <p class="p3"><span class="Apple-tab-span"> </span>int - next node ID, -1 if no next node.</p>
733 <p class="p3"><span class="Apple-tab-span"> </span>int - 1 if the node is a group, 0 if it is a synth</p>
734 <p class="p3"><span class="Apple-tab-span"> </span><i>The following two arguments are only sent if the node is a group:</i></p>
735 <p class="p3"><span class="Apple-tab-span"> </span>int - the ID of the head node, -1 if there is no head node.</p>
736 <p class="p3"><span class="Apple-tab-span"> </span>int - the ID of the tail node, -1 if there is no tail node.</p>
737 <p class="p2"><br></p>
738 <p class="p3"><b>/n_go<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>a node was started</b></p>
739 <p class="p2"><span class="Apple-tab-span"> </span></p>
740 <p class="p3">This command is sent to all registered clients when a node is created.</p>
741 <p class="p2"><br></p>
742 <p class="p3"><b>/n_end<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>a node ended</b></p>
743 <p class="p2"><span class="Apple-tab-span"> </span></p>
744 <p class="p3">This command is sent to all registered clients when a node ends and is deallocated.</p>
745 <p class="p2"><br></p>
746 <p class="p3"><b>/n_off<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>a node was turned off</b></p>
747 <p class="p2"><span class="Apple-tab-span"> </span></p>
748 <p class="p3">This command is sent to all registered clients when a node is turned off.</p>
749 <p class="p2"><br></p>
750 <p class="p3"><b>/n_on<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>a node was turned on</b></p>
751 <p class="p2"><span class="Apple-tab-span"> </span></p>
752 <p class="p3">This command is sent to all registered clients when a node is turned on.</p>
753 <p class="p2"><br></p>
754 <p class="p3"><b>/n_move<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>a node was moved</b></p>
755 <p class="p2"><br></p>
756 <p class="p3">This command is sent to all registered clients when a node is moved.</p>
757 <p class="p2"><br></p>
758 <p class="p3"><b>/n_info<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>reply to /n_query</b></p>
759 <p class="p2"><br></p>
760 <p class="p3">This command is sent to all registered clients in response to an <b>/n_query</b> command.</p>
761 <p class="p2"><br></p>
762 <p class="p2"><br></p>
763 <p class="p9"><b>Trigger Notification</b></p>
764 <p class="p2"><span class="Apple-tab-span"> </span></p>
765 <p class="p3">This command is sent to all registered clients when a node is moved from one group to another.</p>
766 <p class="p2"><br></p>
767 <p class="p3"><b>/tr<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>a trigger message</b></p>
768 <p class="p3"><span class="Apple-tab-span"> </span>int - node ID</p>
769 <p class="p3"><span class="Apple-tab-span"> </span>int - trigger ID</p>
770 <p class="p3"><span class="Apple-tab-span"> </span>float - trigger value</p>
771 <p class="p2"><br></p>
772 <p class="p3">This command is the mechanism that synths can use to trigger events in clients.</p>
773 <p class="p3">The node ID is the node that is sending the trigger. The trigger ID and value are determined by inputs to the SendTrig unit generator which is the originator of this message.</p>
774 <p class="p2"><br></p>
775 <p class="p10">copyright © 2002 James McCartney</p>
776 <p class="p11"><br></p>
777 <p class="p11"><br></p>
778 <p class="p11"><br></p>
779 <p class="p6"><b>Buffer Fill Commands</b></p>
780 <p class="p2"><br></p>
781 <p class="p3">These are the currently defined fill routines for use with the <b>/b_gen</b> command.</p>
782 <p class="p2"><br></p>
783 <p class="p3"><b>Wave Fill Commands</b></p>
784 <p class="p11"><br></p>
785 <p class="p3">There are three defined fill routines for sine waves.</p>
786 <p class="p2"><br></p>
787 <p class="p3"><span class="Apple-tab-span"> </span>The flags are defined as follows:</p>
788 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>1 - normalize - Normalize peak amplitude of wave to 1.0.</p>
789 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>2 - wavetable - If set, then the buffer is written in wavetable format so that it can be read by interpolating oscillators.</p>
790 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>4 - clear - if set then the buffer is cleared before new partials are written into it. Otherwise the new partials are summed with the existing contents of the buffer.</p>
791 <p class="p2"><br></p>
792 <p class="p3"><span class="Apple-tab-span"> </span><b>sine1</b></p>
793 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int - flags, see above</p>
794 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>[</p>
795 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>float - partial amplitude</p>
796 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>] * N</p>
797 <p class="p2"><br></p>
798 <p class="p3"><span class="Apple-tab-span"> </span>Fills a buffer with a series of sine wave partials. The first float value specifies the amplitude of the first partial, the second float value specifies the amplitude of the second partial, and so on.</p>
799 <p class="p2"><br></p>
800 <p class="p3"><span class="Apple-tab-span"> </span><b>sine2</b></p>
801 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int - flags, see above</p>
802 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>[</p>
803 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>float - partial frequency (in cycles per buffer)</p>
804 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>float - partial amplitude</p>
805 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>] * N</p>
806 <p class="p2"><br></p>
807 <p class="p3"><span class="Apple-tab-span"> </span>Similar to sine1 except that each partial frequency is specified explicitly instead of being an integer series of partials. Non-integer partial frequencies are possible.</p>
808 <p class="p2"><br></p>
809 <p class="p3"><span class="Apple-tab-span"> </span><b>sine3</b></p>
810 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int - flags, see above</p>
811 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>[</p>
812 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>float - partial frequency (in cycles per buffer)</p>
813 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>float - partial amplitude</p>
814 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>float - partial phase</p>
815 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>] * N</p>
816 <p class="p2"><br></p>
817 <p class="p3"><span class="Apple-tab-span"> </span>Similar to sine2 except that each partial may have a nonzero starting phase.</p>
818 <p class="p2"><br></p>
819 <p class="p3"><span class="Apple-tab-span"> </span><b>cheby</b></p>
820 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int - flags, see above</p>
821 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>[</p>
822 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>float - amplitude</p>
823 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>] * N</p>
824 <p class="p2"><br></p>
825 <p class="p3"><span class="Apple-tab-span"> </span>Fills a buffer with a series of chebyshev polynomials, which can be defined as:</p>
826 <p class="p3">cheby(n) = amplitude<span class="Apple-converted-space">  </span>* cos(n * acos(x))</p>
827 <p class="p3">The first float value specifies the amplitude for n = 1, the second float value specifies the amplitude for n = 2, and so on. To eliminate a DC offset when used as a waveshaper, the wavetable is offset so that the center value is zero.<span class="Apple-converted-space"> </span></p>
828 <p class="p2"><br></p>
829 <p class="p3"><b>Other Commands</b></p>
830 <p class="p2"><br></p>
831 <p class="p3"><b><span class="Apple-tab-span"> </span>copy</b></p>
832 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int - sample position in destination</p>
833 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int - source buffer number</p>
834 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int - sample position in source</p>
835 <p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>int - number of samples to copy</p>
836 <p class="p2"><br></p>
837 <p class="p3"><span class="Apple-tab-span"> </span>Copy samples from the source buffer to the destination buffer specified in the <b>b_gen</b> command. If the number of samples to copy is negative, the maximum number of samples possible is copied.</p>
838 <p class="p3"><b>Asynchronous</b>. Replies to sender with <b>/done </b>when complete.</p>
839 <p class="p2"><br></p>
840 <p class="p10">copyright © 2002 James McCartney</p>
841 <p class="p2"><br></p>
842 <p class="p11"><br></p>
843 <p class="p3"><b>Command Numbers</b></p>
844 <p class="p11"><br></p>
845 <p class="p3">These are the currently defined command numbers. More may be added to the end of the list in the future.</p>
846 <p class="p11"><br></p>
847 <p class="p12">enum<span class="s3"> {</span></p>
848 <p class="p13"><span class="Apple-tab-span"> </span>cmd_none = <span class="s2">0</span>,</p>
849 <p class="p14"><br></p>
850 <p class="p13"><span class="Apple-tab-span"> </span>cmd_notify = <span class="s2">1</span>,</p>
851 <p class="p13"><span class="Apple-tab-span"> </span>cmd_status = <span class="s2">2</span>,</p>
852 <p class="p13"><span class="Apple-tab-span"> </span>cmd_quit = <span class="s2">3</span>,</p>
853 <p class="p13"><span class="Apple-tab-span"> </span>cmd_cmd = <span class="s2">4</span>,</p>
854 <p class="p14"><br></p>
855 <p class="p13"><span class="Apple-tab-span"> </span>cmd_d_recv = <span class="s2">5</span>,</p>
856 <p class="p13"><span class="Apple-tab-span"> </span>cmd_d_load = <span class="s2">6</span>,</p>
857 <p class="p13"><span class="Apple-tab-span"> </span>cmd_d_loadDir = <span class="s2">7</span>,</p>
858 <p class="p13"><span class="Apple-tab-span"> </span>cmd_d_freeAll = <span class="s2">8</span>,</p>
859 <p class="p14"><br></p>
860 <p class="p13"><span class="Apple-tab-span"> </span>cmd_s_new = <span class="s2">9</span>,</p>
861 <p class="p14"><span class="Apple-tab-span"> </span></p>
862 <p class="p13"><span class="Apple-tab-span"> </span>cmd_n_trace = <span class="s2">10</span>,</p>
863 <p class="p13"><span class="Apple-tab-span"> </span>cmd_n_free = <span class="s2">11</span>,</p>
864 <p class="p13"><span class="Apple-tab-span"> </span>cmd_n_run = <span class="s2">12</span>,</p>
865 <p class="p13"><span class="Apple-tab-span"> </span>cmd_n_cmd = <span class="s2">13</span>,</p>
866 <p class="p13"><span class="Apple-tab-span"> </span>cmd_n_map = <span class="s2">14</span>,</p>
867 <p class="p13"><span class="Apple-tab-span"> </span>cmd_n_set = <span class="s2">15</span>,</p>
868 <p class="p13"><span class="Apple-tab-span"> </span>cmd_n_setn = <span class="s2">16</span>,</p>
869 <p class="p13"><span class="Apple-tab-span"> </span>cmd_n_fill = <span class="s2">17</span>,</p>
870 <p class="p13"><span class="Apple-tab-span"> </span>cmd_n_before = <span class="s2">18</span>,</p>
871 <p class="p13"><span class="Apple-tab-span"> </span>cmd_n_after = <span class="s2">19</span>,</p>
872 <p class="p14"><br></p>
873 <p class="p13"><span class="Apple-tab-span"> </span>cmd_u_cmd = <span class="s2">20</span>,</p>
874 <p class="p14"><br></p>
875 <p class="p13"><span class="Apple-tab-span"> </span>cmd_g_new = <span class="s2">21</span>,</p>
876 <p class="p13"><span class="Apple-tab-span"> </span>cmd_g_head = <span class="s2">22</span>,</p>
877 <p class="p13"><span class="Apple-tab-span"> </span>cmd_g_tail = <span class="s2">23</span>,</p>
878 <p class="p13"><span class="Apple-tab-span"> </span>cmd_g_freeAll = <span class="s2">24</span>,</p>
879 <p class="p14"><span class="Apple-tab-span"> </span></p>
880 <p class="p13"><span class="Apple-tab-span"> </span>cmd_c_set = <span class="s2">25</span>,</p>
881 <p class="p13"><span class="Apple-tab-span"> </span>cmd_c_setn = <span class="s2">26</span>,</p>
882 <p class="p13"><span class="Apple-tab-span"> </span>cmd_c_fill = <span class="s2">27</span>,</p>
883 <p class="p14"><br></p>
884 <p class="p13"><span class="Apple-tab-span"> </span>cmd_b_alloc = <span class="s2">28</span>,</p>
885 <p class="p13"><span class="Apple-tab-span"> </span>cmd_b_allocRead = <span class="s2">29</span>,</p>
886 <p class="p13"><span class="Apple-tab-span"> </span>cmd_b_read = <span class="s2">30</span>,</p>
887 <p class="p13"><span class="Apple-tab-span"> </span>cmd_b_write = <span class="s2">31</span>,</p>
888 <p class="p13"><span class="Apple-tab-span"> </span>cmd_b_free = <span class="s2">32</span>,</p>
889 <p class="p13"><span class="Apple-tab-span"> </span>cmd_b_close = <span class="s2">33</span>,</p>
890 <p class="p13"><span class="Apple-tab-span"> </span>cmd_b_zero = <span class="s2">34</span>,</p>
891 <p class="p13"><span class="Apple-tab-span"> </span>cmd_b_set = <span class="s2">35</span>,</p>
892 <p class="p13"><span class="Apple-tab-span"> </span>cmd_b_setn = <span class="s2">36</span>,</p>
893 <p class="p13"><span class="Apple-tab-span"> </span>cmd_b_fill = <span class="s2">37</span>,</p>
894 <p class="p13"><span class="Apple-tab-span"> </span>cmd_b_gen = <span class="s2">38</span>,</p>
895 <p class="p14"><span class="Apple-tab-span"> </span></p>
896 <p class="p13"><span class="Apple-tab-span"> </span>cmd_dumpOSC = <span class="s2">39</span>,</p>
897 <p class="p14"><br></p>
898 <p class="p13"><span class="Apple-tab-span"> </span>cmd_c_get = <span class="s2">40</span>,</p>
899 <p class="p13"><span class="Apple-tab-span"> </span>cmd_c_getn = <span class="s2">41</span>,</p>
900 <p class="p13"><span class="Apple-tab-span"> </span>cmd_b_get = <span class="s2">42</span>,</p>
901 <p class="p13"><span class="Apple-tab-span"> </span>cmd_b_getn = <span class="s2">43</span>,</p>
902 <p class="p13"><span class="Apple-tab-span"> </span>cmd_s_get = <span class="s2">44</span>,</p>
903 <p class="p13"><span class="Apple-tab-span"> </span>cmd_s_getn = <span class="s2">45</span>,</p>
904 <p class="p14"><span class="Apple-tab-span"> </span></p>
905 <p class="p13"><span class="Apple-tab-span"> </span>cmd_n_query = <span class="s2">46</span>,</p>
906 <p class="p13"><span class="Apple-tab-span"> </span>cmd_b_query = <span class="s2">47</span>,</p>
907 <p class="p14"><br></p>
908 <p class="p13"><span class="Apple-tab-span"> </span>cmd_n_mapn = <span class="s2">48</span>,</p>
909 <p class="p13"><span class="Apple-tab-span"> </span>cmd_s_noid = <span class="s2">49</span>,</p>
910 <p class="p14"><br></p>
911 <p class="p13"><span class="Apple-tab-span"> </span>cmd_g_deepFree = <span class="s2">50</span>,</p>
912 <p class="p13"><span class="Apple-tab-span"> </span>cmd_clearSched = <span class="s2">51</span>,</p>
913 <p class="p14"><br></p>
914 <p class="p13"><span class="Apple-tab-span"> </span>cmd_sync = <span class="s2">52</span>,</p>
915 <p class="p14"><span class="Apple-tab-span"> </span></p>
916 <p class="p13"><span class="Apple-tab-span"> </span>cmd_d_free = <span class="s2">53</span>,</p>
917 <p class="p14"><br></p>
918 <p class="p13"><span class="Apple-tab-span"> </span>cmd_b_allocReadChannel = <span class="s2">54</span>,</p>
919 <p class="p13"><span class="Apple-tab-span"> </span>cmd_b_readChannel = <span class="s2">55</span>,</p>
920 <p class="p14"><span class="Apple-tab-span"> </span></p>
921 <p class="p13"><span class="Apple-tab-span"> </span>cmd_g_dumpTree = <span class="s2">56</span>,</p>
922 <p class="p13"><span class="Apple-tab-span"> </span>cmd_g_queryTree = <span class="s2">57</span>,</p>
923 <p class="p14"><br></p>
924 <p class="p14"><span class="Apple-tab-span"> </span></p>
925 <p class="p13"><span class="Apple-converted-space">     </span>cmd_error = 58,</p>
926 <p class="p14"><br></p>
927 <p class="p13"><span class="Apple-converted-space">     </span>cmd_s_newargs = 59,</p>
928 <p class="p14"><br></p>
929 <p class="p13"><span class="Apple-tab-span"> </span>cmd_n_mapa = 60,</p>
930 <p class="p13"><span class="Apple-tab-span"> </span>cmd_n_mapan = 61,</p>
931 <p class="p13"><span class="Apple-tab-span"> </span>cmd_n_order = 62,</p>
932 <p class="p14"><span class="Apple-tab-span"> </span></p>
933 <p class="p13"><span class="Apple-tab-span"> </span>NUMBER_OF_COMMANDS = <span class="s2">63</span></p>
934 <p class="p13">};</p>
935 <p class="p10">copyright © 2002 James McCartney</p>
936 </body>
937 </html>