]> Shamusworld >> Repos - ardour-manual-diverged/blob - include/osc-control.html
Sync with master branch.
[ardour-manual-diverged] / include / osc-control.html
1 ---
2 layout: default
3 title: OSC: Controlling Ardour with OSC
4 ---
5
6 <p>
7   <abbr title="Open Sound Control"><dfn>OSC</dfn></abbr> lets synthesizers
8   and other devices communicate with Ardour. OSC devices can send commands
9   relating to playback (such as play or stop), performance (such as volume,
10   play, stop, and almost any other function (such as Edit, or Undo).
11 </p>
12
13 <p class="note">
14   <em>Note:</em> OSC control has changed dramatically since Ardour 4.7.
15   The Path structure has been completely redone, Banking has been introduced,
16   The controller is now able to tell Ardour what kind of feedback it can
17   work with (including bank size) and two new math styles have been added
18   to gain controls. If you are using an Ardour version of 4.7 or less,
19   please read <a
20   href="/using-control-surfaces/controlling-ardour-with-osc/osc-control-in-ardour-4.7-and-prior/">
21   Osc control in ardour 4.7 and prior.</a>
22 </p>
23
24 <p>
25   Ardour is probably one of the most OSC-controllable audio applications
26   around, but as with all OSC-controllable apps, you can't do much without
27   knowing what <dfn>messages</dfn> can be sent. This document describes the
28   various categories of messages that Ardour understands. It is subject to
29   change, particularly the "Actions" part below, since this relates to the
30   GTK GUI for Ardour rather than the backend.
31 </p>
32
33 <h2>Connecting to Ardour via OSC</h2>
34 <p>
35   OSC support is not enabled by default, but can be turned on via
36   <kbd class="menu">Edit &gt; Preferences &gt; Control Surfaces</kbd>.
37   Once enabled, Ardour will listen on port <code>3819</code> by default.
38   This port number can be changed by editing <code>$ARDOUR_CONFIG</code>
39   and adding this line within the <code>&lt;Config&gt;</code> section:
40 </p>
41 <kbd class="input">&lt;Option name="osc-port" value="<em>Your choice
42 here</em>"/&gt;</kbd>
43
44 <p>
45   Ardour sends any feedback to the port and address that sent any
46   feedback request. The port does not have to match Ardour's port. In
47   fact it is better not to. This means that Ardour can deal with more
48   than one controller at a time. The two controllers can bank
49   independently and even use different math for faders. This could be
50   used to allow talent to adjust their own monitor mix using a tablet
51   or phone that can run an OSC controller. For a full explanation of
52   how Ardour's feedback works please read <a
53   href="/using-control-surfaces/controlling-ardour-with-osc/feedback-in-osc/">
54   OSC feedback In Ardour.</a>
55 </p>
56
57 <h2>Control Surface Set Up</h2>
58
59 <p>
60   Control surface set up allows the controller to tell Ardour about it's
61   capabilities. The surface can tell Ardour how many control strips it
62   has for banking, if it is capable of setting it's faders or buttons
63   to values set by Ardour's GUI or automation, What kind of math the
64   faders use and more.
65 </p>
66 <p>
67   Any time the <em>/set_surface</em> command is sent, the current bank
68   is recalculated and if feedback is turned on, the values of each
69   strip's controls are sent (or refreshed) as well. This will also
70   refresh the Master feedback setup.
71 </p>
72 <p class="note">
73   Surface Port Setting is available in the OSC GUI.
74 </p>
75 <p>
76   As of Ardour 5.1, There is now a GUI setup in response to those using
77   tablets with applications such as touchOSC or AndrOSC who need to be
78   able to set a port for Ardour to send to. It can also change the
79   default setting for set_surface. For more information about Ardour's
80   OSC configuration GUI please read <a
81   href="/using-control-surfaces/controlling-ardour-with-osc/osc-setup-dialog/">
82   Ardour's Setup Dialog.</a>
83 </p>
84 <p>If /set_surface is not sent, the default values are used:
85   <ul>
86           <li><em>Bank Size</em>: 0 - No banking (or infinite bank size).</li>
87           <li><em>Strip Types</em>: All strip types except hidden and special.</li>
88           <li><em>Feedback</em>: 0 - All off.</li>
89           <li><em>Fader Mode</em>: 0 - gain in dB (not relevant with feedback off)</li>
90   </ul>
91 </p>
92 <p>
93   These values give the same behaviour as prior versions of Ardour. (or the closest possible)
94 </p>
95 <dl class="bindings">
96   <dt><kbd class="osc">/set_surface <em>bank_size</em> <em>strip_types</em>
97   <em>feedback</em> <em>fadermode</em></kbd></dt>
98   <dd>
99           See below for an explanation of each parameter.
100   </dd>
101 </dl>
102 <h3>bank_size</h3>
103 <p>
104   Bank Size is the number of channel strips the controller supports
105   without banking. Setting this to 0 turns banking off by setting the
106   bank size to infinite.
107 </p>
108 <p class="note">
109         Bank size can also be set with <em>/set_surface/bank_size size.</em>
110 </p>
111 <h3>strip_types</h3>
112 <p>
113   strip_types is an integer made up of bits. The easy way to
114   deal with this is to think of strip_types items being worth a number and
115   then adding all those numbers together for a value to send.
116   Strip Types will determine what kind of strips will be included in
117   bank. This would include: Audio, MIDI, buses, VCAs, Master, Monitor
118   and hidden or selected strips.
119 </p>
120 <p>
121   Aside from setting the track types for the main mix assignments, using
122   /set_surface/strip_types with more than one surface button will allow
123   switching between modes for example: inputs only, buses only,
124   selected only, hidden only, by having the buttons send values of: 3,
125   12, 256, 512. A full mix button might have a value 31.
126 </p>
127 <p>
128   While Master and Monitor are listed as possibilities, most surfaces
129   will not use them. Using /master and /monitor makes more sense.
130   However, in the case where there are no master or monitor fader strips
131   on the surface, it may be necessary to include them in the banked
132   strips.
133 </p>
134 <p>Please see: <a
135   href="/using-control-surfaces/controlling-ardour-with-osc/calculating-feedback-and-strip-types-values/">
136   Calculating Feedback and Strip-types Values.</a>
137 </p>
138 <p class="note">
139         Strip types can also be set with <em>/set_surface/strip_types types.</em>
140 </p>
141 <h3>feedback</h3>
142 <p>Feedback is an integer made up of bits. The easy way to
143   deal with this is to think of feedback items being worth a number and
144   then adding all those numbers together for a value to send.
145 </p>
146 <p>Please see: <a
147   href="/using-control-surfaces/controlling-ardour-with-osc/calculating-feedback-and-strip-types-values/">
148   Calculating Feedback and Strip-types Values.</a></p>
149 <p class="note">
150         Feedback can also be set with <em>/set_surface/feedback feedback.</em>
151 </p>
152
153 <h3>gainmode</h3>
154 <p>
155   Gainmode is a an int that acts as a bool:
156   <ul>
157           <li><em>0 (or false)</em> dB value as a float from -193 to +6. Sent as
158           /strip/gain SSID value. (-193 or below are the same as -inf)</li>
159           <li><em>1 (or true)</em> A positional fader based on the same math
160           as Ardour's GUI.  An Float from 0 to 1. Sent as
161           /strip/fader SSID value</li>
162   </ul>
163 </p>
164 <p>
165   Gainmode applies only to feedback values. The controller can choose
166   which gain math to use by choosing to use the /*/gain or /*/fader path
167   to send to Ardour. This makes sure a controller that doesn't set up
168   Ardour's OSC can still use either math. The gainmode for feedback also
169   determines the path Ardour uses for feedback so that the feedback
170   messages match the control messages.
171 </p>
172 <p class="note">
173         Gain mode can also be set with <em>/set_surface/gainmode gainmode.</em>
174 </p>
175
176 <h2>Querying Ardour for information</h2>
177 <p>
178   The control Surface may wish to control the type a frequency of
179   updates it receives. It can do this with querying commands. See: <a
180   href="/using-control-surfaces/controlling-ardour-with-osc/querying-ardour-with-osc/">
181   Querying Ardour with OSC.</a>
182 </p>
183
184 <h2>List of OSC messages</h2>
185 <p class="note">
186         Parameter types show how the value will be used. However, they may
187         be sent as a different type if needed, see: <a
188         href="/using-control-surfaces/controlling-ardour-with-osc/parameter-types-in-osc/">
189         Parameter Types in OSC.</a>
190 </p>
191 <h3>Master or Global messages</h3>
192
193 <h4>Transport Control</h4>
194 <dl class="bindings">
195   <dt><kbd class="osc">/transport_stop</kbd></dt>
196   <dd></dd>
197   <dt><kbd class="osc">/transport_play</kbd></dt>
198   <dd></dd>
199   <dt><kbd class="osc">/toggle_roll</kbd></dt>
200   <dd>Toggles between play and stop</dd>
201   <dt><kbd class="osc">/set_transport_speed <em>s</em></kbd></dt>
202   <dd>where <em>s</em> is a float ranging from -8.0f to 8.0f</dd>
203   <dt><kbd class="osc">/ffwd</kbd></dt>
204   <dd></dd>
205   <dt><kbd class="osc">/rewind</kbd></dt>
206   <dd></dd>
207   <dt><kbd class="osc">/goto_start</kbd></dt>
208   <dd></dd>
209   <dt><kbd class="osc">/goto_end</kbd></dt>
210   <dd></dd>
211   <dt><kbd class="osc">/jump_bars <em>bars</em></kbd></dt>
212   <dd>Where <em>bars</em> is a float (+/-) of the number of bars to jump</dd>
213   <dt><kbd class="osc">/jump_seconds <em>seconds</em></kbd></dt>
214   <dd>Where <em>seconds</em> is a float (+/-) of the number of seconds to jump</dd>
215   <dt><kbd class="osc">/add_marker</kbd></dt>
216   <dd>(adds marker to the current transport position)</dd>
217   <dt><kbd class="osc">/remove_marker</kbd></dt>
218   <dd>Removes marker at the current transport position (if there is one)</dd>
219   <dt><kbd class="osc">/mark_in</kbd></dt>
220   <dd>Marks the begining of a range at the current transport position</dd>
221   <dt><kbd class="osc">/mark_out</kbd></dt>
222   <dd>Marks the end of a range at the current transport position</dd>
223   <dt><kbd class="osc">/next_marker</kbd></dt>
224   <dd></dd>
225   <dt><kbd class="osc">/prev_marker</kbd></dt>
226   <dd></dd>
227   <dt><kbd class="osc">/locate <em>spos</em> <em>roll</em></kbd></dt>
228   <dd>where <em>spos</em> is the target position in samples and
229   <em>roll</em> is a bool/integer defining whether you want transport
230   to be kept rolling or not</dd>
231   <dt><kbd class="osc">/loop_toggle</kbd></dt>
232   <dd></dd>
233   <dt><kbd class="osc">/loop_location <em>start</em> <em>end</em></kbd></dt>
234   <dd><em>start</em> is the beginning of a loop and <em>end</em> is the
235   end of a loop both are integer frame positions.</dd>
236   <dt><kbd class="osc">/set_loop_range</kbd></dt>
237   <dd>Uses edit range as loop range</dd>
238   <dt><kbd class="osc">/set_session_range</kbd></dt>
239   <dd>Uses edit range as session range</dd>
240   <dt><kbd class="osc">/toggle_click</kbd></dt>
241   <dd></dd>
242   <dt><kbd class="osc">/midi_panic</kbd></dt>
243   <dd>Ardour will send an all notes off to all midi tracks</dd>
244   <dt><kbd class="osc">/cancel_all_solos</kbd></dt>
245   <dd>Cancel All Solos/PFLs/AFLs</dd>
246 </dl>
247
248 <h4>Transport Information</h4>
249 <dl>
250   <dt><kbd class="osc">/transport_frame</kbd></dt>
251   <dd>Ardour sends /transport_frame <em>current_frame</em></dd>
252   <dt><kbd class="osc">/transport_speed</kbd></dt>
253   <dd>Ardour sends /transport_speed <em>speed</em></dd>
254   <dt><kbd class="osc">/record_enabled</kbd></dt>
255   <dd>Ardour sends /record_enabled <em>recordenable_status</em></dd>
256 </dl>
257
258 <h4>Editing-related</h4>
259 <dl class="bindings">
260   <dt><kbd class="osc">/undo</kbd></dt>
261   <dd></dd>
262   <dt><kbd class="osc">/redo</kbd></dt>
263   <dd></dd>
264   <dt><kbd class="osc">/save_state</kbd></dt>
265   <dd>(this is the regular <kbd class="menu">Session &gt; Save</kbd>
266   operation)</dd>
267   <dt><kbd class="osc">/quick_snapshot_switch</kbd></dt>
268   <dd>Take a snapshot and switch to new version</dd>
269   <dt><kbd class="osc">/quick_snapshot_stay</kbd></dt>
270   <dd>Take a snapshot and keep working on this version</dd>
271   <dt><kbd class="osc">/fit_*_track(s)</kbd></dt>
272   <dd>Were <em>*</em> is one of 1, 2, 4, 8, 16, 32 or all. Fits this
273   many tracks in editor window. (add s for more than 1)</dd>
274   <dt><kbd class="osc">/zoom_*</kbd></dt>
275   <dd>Zoom editor to include <em>*</em> where <em>*</em> is 100_ms, 1_sec,
276   10_sec, 1_min, 5_min, 10_min or to_session</dd>
277   <dt><kbd class="osc">/temporal_zoom_in</kbd></dt>
278   <dd>Zoom editor in to show less time</dd>
279   <dt><kbd class="osc">/temporal_zoom_out</kbd></dt>
280   <dd>Zoom editor out to show more time</dd>
281   <dt><kbd class="osc">/scroll_up_1_track</kbd></dt>
282   <dd>Scroll the editor pane up 1 track</dd>
283   <dt><kbd class="osc">/scroll_up_1_page</kbd></dt>
284   <dd>Scroll the editor pane up 1 page</dd>
285   <dt><kbd class="osc">/scroll_dn_1_track</kbd></dt>
286   <dd>Scroll the editor pane down 1 track</dd>
287   <dt><kbd class="osc">/scroll_dn_1_page</kbd></dt>
288   <dd>Scroll the editor pane down 1 page</dd>
289 </dl>
290
291 <h4>Recording control</h4>
292 <dl class="bindings">
293   <dt><kbd class="osc">/toggle_punch_in</kbd></dt>
294   <dd></dd>
295   <dt><kbd class="osc">/toggle_punch_out</kbd></dt>
296   <dd></dd>
297   <dt><kbd class="osc">/set_punch_range</kbd></dt>
298   <dd>Uses edit range as punch range</dd>
299   <dt><kbd class="osc">/rec_enable_toggle</kbd></dt>
300   <dd></dd>
301   <!--dt><kbd class="osc">/toggle_all_rec_enables</kbd></dt>
302   <dd>(toggles all tracks' recording state)</dd-->
303   <dt><kbd class="osc">/stop_forget</kbd></dt>
304   <dd>Stop transport and delete/forget last take</dd>
305 </dl>
306
307 <h4>Master and Monitor strip control</h4>
308 <dl class="bindings">
309   <dt><kbd class="osc">/master/gain <em>dB</em></kbd></dt>
310   <dd>See gain in strips</dd>
311   <dt><kbd class="osc">/master/fader  <em>position</em></kbd></dt>
312   <dd>See fader in strips</dd>
313   <dt><kbd class="osc">/master/trimdB <em>dB</em></kbd></dt>
314   <dd>see trimdb in strips</dd>
315   <dt><kbd class="osc">/master/pan_stereo_position <em>position</em></kbd></dt>
316   <dd>See pan_stereo_position in strips</dd>
317   <dt><kbd class="osc">/master/mute  <em>yn</em></kbd></dt>
318   <dd>See mute in strips</dd>
319   <dt><kbd class="osc">/monitor/gain <em>dB</em></kbd></dt>
320   <dd>See gain in strips</dd>
321   <dt><kbd class="osc">/monitor/fader  <em>position</em></kbd></dt>
322   <dd>See fader in strips</dd>
323 </dl>
324
325 <h3>Track specific operations</h3>
326 <p>
327   For each of the following, <em>ssid</em> is the Surface Strip ID for the track
328 </p>
329 <p class="note">
330   SSID has a different meaning than RID in Ardour version 4.7 and before.
331   Effectively, banking is always being used and the SSID is generated on
332   the fly. The SSID is the position of the strip within bank as an int
333   1 to bank size. There are no gaps as there have been in the past.
334   Depending on the value of strip_types sent to Ardour, Master and
335   Monitor, may be included in the list of SSIDs or not as set in
336   <em>/set_surface</em>.
337 </p>
338 <p class="note">
339   Some Surfaces (many Android applets) are not able to deal with more
340   than one parameter in a command. However, the two parameter commands
341   below can also be sent as /strip/command/ssid param. In this case the
342   param should be a float even if an int is required below.
343 </p>
344 <dl class="bindings">
345   <dt><kbd class="osc">/bank_up </kbd></dt>
346   <dd>Change bank to the next higher bank.</dd>
347   <dt><kbd class="osc">/bank_down </kbd></dt>
348   <dd>Change bank to the next lower bank.</dd>
349   <dt><kbd class="osc">/strip/mute <em>ssid</em> <em>mute_st</em></kbd></dt>
350   <dd>where <em>mute_st</em> is a bool/int representing the desired mute state of the track</dd>
351   <dt><kbd class="osc">/strip/solo <em>ssid</em> <em>solo_st</em></kbd></dt>
352   <dd>where <em>solo_st</em> is a bool/int representing the desired solo state of the track</dd>
353   <dt><kbd class="osc">/strip/solo_iso <em>ssid</em> <em>state</em></kbd></dt>
354   <dd>where <em>state</em> is a bool/int representing the desired solo isolate state of the track</dd>
355   <dt><kbd class="osc">/strip/solo_safe <em>ssid</em> <em>state</em></kbd></dt>
356   <dd>where <em>state</em> is a bool/int representing the desired solo safe/lock state of the track</dd>
357   <dt><kbd class="osc">/strip/monitor_input <em>ssid</em> <em>monitor_st</em></kbd></dt>
358   <dd>where <em>monitor_st</em> is a bool/int where 1 is forced input monitoring.</dd>
359   <dt><kbd class="osc">/strip/monitor_disk <em>ssid</em> <em>monitor_st</em></kbd></dt>
360   <dd>where <em>monitor_st</em> is a bool/int where 1 is forced disk monitoring. When input and disk are both off,
361   Auto monitoring is enabled.</dd>
362   <dt><kbd class="osc">/strip/recenable <em>ssid</em> <em>rec_st</em></kbd></dt>
363   <dd>where <em>rec_st</em> is a bool/int representing the desired rec state of the track</dd>
364   <dt><kbd class="osc">/strip/record_safe <em>ssid</em> <em>rec_st</em></kbd></dt>
365   <dd>where <em>rec_st</em> is a bool/int representing the desired record safe state of the track</dd>
366   <dt><kbd class="osc">/strip/polarity <em>ssid</em> <em>invert</em></kbd></dt>
367   <dd>where <em>invert</em> is a bool/int representing the desired polarity of the track</dd>
368   <dt><kbd class="osc">/strip/gain <em>ssid</em>  <em>gain</em></kbd></dt>
369   <dd>where <em>gain</em> is a float ranging from -193 to 6 representing the desired gain of the track in dB.</dd>
370   <dt><kbd class="osc">/strip/fader <em>ssid</em>  <em>position</em></kbd></dt>
371   <dd>where <em>position</em> is a float ranging from 0 to 1 representing the fader control position.</dd>
372   <dt><kbd class="osc">/strip/trimdB <em>ssid</em>  <em>trim_db</em></kbd></dt>
373   <dd>where <em>trim_db</em> is a float ranging from -20 to 20 representing the desired trim of the track in dB.</dd>
374   <dt><kbd class="osc">/strip/pan_stereo_position <em>ssid</em> <em>position</em></kbd></dt>
375   <dd>where <em>position</em> is a float ranging from 0 to 1 representing the desired pan position of the track</dd>
376   <dt><kbd class="osc">/strip/pan_stereo_width <em>ssid</em> <em>width</em></kbd></dt>
377   <dd>where <em>width</em> is a float ranging from 0 to 1 representing the desired pan width of the track</dd>
378   <dt><kbd class="osc">/strip/send/gain <em>ssid</em> <em>sendid</em> <em>send_gain</em></kbd></dt>
379   <dd>where <em>sendid</em> = nth_send, <em>send_gain</em> is a float
380   ranging from -193 to +6 representing the desired gain in dB for the send</dd>
381   <dt><kbd class="osc">/strip/send/fader <em>ssid</em> <em>sendid</em> <em>send_gain</em></kbd></dt>
382   <dd>where <em>sendid</em> = nth_send, <em>send_gain</em> is a float
383   ranging from 0 to 1 representing the desired position for the send as a fader</dd>
384   <dt><kbd class="osc">/strip/send/enable <em>ssid</em> <em>sendid</em> <em>state</em></kbd></dt>
385   <dd>where <em>sendid</em> = nth_send, <em>state</em> is 1 for enabled and 0 for disabled</dd>
386   <dt><kbd class="osc">/strip/list </kbd></dt>
387   <dd>see: <a href="/using-control-surfaces/controlling-ardour-with-osc/querying-ardour-with-osc/">
388   Querying Ardour with OSC.</a></dd>
389   <dt><kbd class="osc">/strip/sends <em>ssid</em></kbd></dt>
390   <dd>see: <a href="/using-control-surfaces/controlling-ardour-with-osc/querying-ardour-with-osc/">
391   Querying Ardour with OSC.</a></dd>
392   <dt><kbd class="osc">/strip/receives <em>ssid</em></kbd></dt>
393   <dd>see: <a href="/using-control-surfaces/controlling-ardour-with-osc/querying-ardour-with-osc/">
394   Querying Ardour with OSC.</a></dd>
395   <dt><kbd class="osc">/strip/plugin/list <em>ssid</em></kbd></dt>
396   <dd>see: <a href="/using-control-surfaces/controlling-ardour-with-osc/querying-ardour-with-osc/">
397   Querying Ardour with OSC.</a></dd>
398   <dt><kbd class="osc">/strip/plugin/descriptor <em>ssid</em></kbd></dt>
399   <dd>see: <a href="/using-control-surfaces/controlling-ardour-with-osc/querying-ardour-with-osc/">
400   Querying Ardour with OSC.</a></dd>
401   <dt><kbd class="osc">/strip/plugin/reset <em>ssid</em> <em>piid</em> </kbd></dt>
402   <dd>where <em>piid</em> = nth Plugin, will reset all values to the plugin's original values</dd>
403   <dt><kbd class="osc">/strip/plugin/activate <em>ssid</em> <em>piid</em> </kbd></dt>
404   <dd>where <em>piid</em> = nth Plugin, will set the plugin's state to active</dd>
405   <dt><kbd class="osc">/strip/plugin/deactivate <em>ssid</em> <em>piid</em> </kbd></dt>
406   <dd>where <em>piid</em> = nth Plugin, will set the plugin's state to inactive</dd>
407   <dt><kbd class="osc">/strip/plugin/parameter <em>ssid</em> <em>piid</em> <em>param</em> <em>value</em></kbd></dt>
408   <dd>where <em>piid</em> = nth Plugin, <em>param</em> = nth param, <em>value</em>
409   is a float ranging from 0 to 1 representing the desired parameter value</dd>
410   <dt><kbd class="osc">/strip/name <em>ssid</em> <em>name</em></kbd></dt>
411   <dd>where <em>name</em> is a string for the desired name of the track</dd>
412 </dl>
413 <h3>Selected Strip Operations</h3>
414 <p>
415   New for Ardour 5, A whole set of operations that work on the selected
416   or expanded strip.
417 </p>
418 <p class="note">
419   Selected strip operations are complex enough for their own page.
420   Please read: <a
421   href="/using-control-surfaces/controlling-ardour-with-osc/selection-considerations-in-osc/">
422   Selection Considerations in OSC.</a> This is most important if more
423   than one OSC surface is being used with Ardour.
424 </p>
425 <p>
426   There are two kinds of selection in OSC. GUI selection and local
427   expansion. By default expansion follows selection.
428   <ul>
429         <li>
430                 GUI selection: Use <em>/strip/select</em> to set.  Selecting
431                 a strip in the GUI will set OSC surface select and the surface
432                 will set GUI selection as well.
433         </li>
434         <li>
435                 Local expansion: Use <em>/strip/expand</em> to expand a strip
436                 without changing overall selection. When /strip/expand is set
437                 to 0 or false, the select channel will go back to using the
438                 strip selected by the GUI. While expand is turned on,
439                 selecting a strip on the GUI does not
440                 select the OSC strip. Sending a /strip/select message will
441                 override the expand as if it had been set to false.
442                 Good for more than one OSC controller at a time.
443         </li>
444   </ul>
445 </p>
446
447 <dl class="bindings">
448   <dt><kbd class="osc">/strip/select <em>ssid</em> <em>y/n</em></kbd></dt>
449   <dd>Where <em>y/n</em> = 1 for select. Sets both GUI select and strip
450   to expanded mode. (0 is ignored)</dd>
451   <dt><kbd class="osc">/strip/expand <em>ssid</em> <em>y/n</em></kbd></dt>
452   <dd>Where <em>y/n</em> = 1 for expanded mode. Sets only local strip to
453   Expanded. Setting to 0 resets the expansion to follow selection.</dd>
454   <dt><kbd class="osc">/select/expand <em>y/n</em></kbd></dt>
455   <dd>Where <em>y/n</em> = 1 for expanded mode, 0 for Select mode.</dd>
456   <dt><kbd class="osc">/select/recenable <em>y/n</em></kbd></dt>
457   <dd>Where <em>y/n</em> is 1 for enabled and 0 for disabled</dd>
458   <dt><kbd class="osc">/select/record_safe <em>y/n</em></kbd></dt>
459   <dd>Where <em>y/n</em> is 1 for safe and 0 for unlocked</dd>
460   <dt><kbd class="osc">/select/mute <em>y/n</em></kbd></dt>
461   <dd>Where <em>y/n</em> is 1 for enabled and 0 for disabled</dd>
462   <dt><kbd class="osc">/select/solo <em>y/n</em></kbd></dt>
463   <dd>Where <em>y/n</em> is 1 for enabled and 0 for disabled</dd>
464   <dt><kbd class="osc">/select/solo_iso <em>state</em></kbd></dt>
465   <dd>where <em>state</em> is a bool/int representing the desired solo isolate state of the track</dd>
466   <dt><kbd class="osc">/select/solo_safe <em>state</em></kbd></dt>
467   <dd>where <em>state</em> is a bool/int representing the desired solo safe/lock state of the track</dd>
468   <dt><kbd class="osc">/select/monitor_input <em>y/n</em></kbd></dt>
469   <dd>Where <em>y/n</em> is 1 for monitor from input and 0 for auto</dd>
470   <dt><kbd class="osc">/select/monitor_disk <em>y/n</em></kbd></dt>
471   <dd>Where <em>y/n</em> is 1 for monitor from disk and 0 for auto</dd>
472   <dt><kbd class="osc">/select/polarity <em>invert</em></kbd></dt>
473   <dd>where <em>invert</em> is a bool/int representing the desired polarity of the track</dd>
474   <dt><kbd class="osc">/select/gain <em>gain</em></kbd></dt>
475   <dd>Where <em>gain</em> is a float ranging from -193 to 6 representing the desired gain of the track in dB.</dd>
476   <dt><kbd class="osc">/select/fader <em>position</em></kbd></dt>
477   <dd>Where <em>position</em> is an float ranging from 0 to 1 representing the fader control position.</dd>
478   <dt><kbd class="osc">/select/trimdB <em>trim_db</em></kbd></dt>
479   <dd>where <em>trim_db</em> is a float ranging from -20 to 20 representing the desired trim of the track in dB.</dd>
480   <dt><kbd class="osc">/select/pan_stereo_position <em>position</em></kbd></dt>
481   <dd>where <em>position</em> is a float ranging from 0 to 1 representing the desired pan position of the track</dd>
482   <dt><kbd class="osc">/select/pan_stereo_width <em>width</em></kbd></dt>
483   <dd>where <em>width</em> is a float ranging from 0 to 1 representing the desired pan width of the track</dd>
484   <dt><kbd class="osc">/select/pan_elevation_position <em>position</em></kbd></dt>
485   <dd>where <em>position</em> is a float ranging from 0 to 1 representing the desired pan elevation of the track</dd>
486   <dt><kbd class="osc">/select/pan_frontback_position <em>position</em></kbd></dt>
487   <dd>where <em>position</em> is a float ranging from 0 to 1 representing the desired front to back position of the track</dd>
488   <dt><kbd class="osc">/select/pan_lfe_control <em>value</em></kbd></dt>
489   <dd>where <em>value</em> is a float ranging from 0 to 1 representing the desired LFE control value for the track</dd>
490   <dt><kbd class="osc">/select/send_gain", <em>sendid</em> <em>send_gain</em></kbd></dt>
491   <dd>where <em>sendid</em> = nth_send, <em>send_gain</em> is a float
492   ranging from -193 to +6 representing the desired gain in dB for the send</dd>
493   <dt><kbd class="osc">/select/send_fader", <em>sendid</em> <em>send_gain</em></kbd></dt>
494   <dd>where <em>sendid</em> = nth_send, <em>send_gain</em> is a float
495   ranging from 0 to 1 representing the desired position for the send as a fader</dd>
496   <dt><kbd class="osc">/select/send_enable", <em>sendid</em> <em>state</em></kbd></dt>
497   <dd>where <em>sendid</em> = nth_send, <em>state</em> is 1 for enabled and 0 for disabled</dd>
498 </dl>
499
500 <h3>Menu actions</h3>
501 <p>
502   Every single menu item in Ardour's GUI is accessible via OSC. There is
503   a single common syntax to trigger the action as if it was selected
504   with the mouse (or keyboard):</p>
505 <kbd class="osc">/access_action <em>action_name</em></kbd>
506 <p>
507   The <a
508   href="/appendix/menu-actions-list/">
509   list of actions</a> shows all available values of <em>action-name</em> as of
510   June 2016 for Ardour 5.0.pre0.1. You can get the current list at any
511   time by running Ardour with the -b flag.
512   </p>
513
514 {% children %}