]> Shamusworld >> Repos - ardour-manual/blobdiff - include/osc58-controlling-ardour-with-osc.html
OSC add /use_group
[ardour-manual] / include / osc58-controlling-ardour-with-osc.html
index ba29b0a8278968f682c846150f790f399afbefcf..12bf8f549bcde5a8cd6fc40763b284d0bc44c352 100644 (file)
@@ -13,7 +13,7 @@
   work with (including bank size) and two new math styles have been added
   to gain controls. If you are using an Ardour version of 4.7 or less,
   please read <a
-  href="/using-control-surfaces/controlling-ardour-with-osc/osc-control-in-ardour-4.7-and-prior/">
+  href="@@osc-control-for-ardour-4.7-and-prior">
   Osc control in ardour 4.7 and prior.</a>
 </p>
 
@@ -46,7 +46,7 @@ here</em>"/&gt;</kbd>
   used to allow talent to adjust their own monitor mix using a tablet
   or phone that can run an OSC controller. For a full explanation of
   how Ardour's feedback works please read <a
-  href="/using-control-surfaces/controlling-ardour-with-osc/feedback-in-osc/">
+  href="@@osc58-feedback">
   OSC feedback In Ardour.</a>
 </p>
 
@@ -74,15 +74,17 @@ here</em>"/&gt;</kbd>
   able to set a port for Ardour to send to. It can also change the
   default setting for set_surface. For more information about Ardour's
   OSC configuration GUI please read <a
-  href="/using-control-surfaces/controlling-ardour-with-osc/osc-setup-dialog/">
+  href="@@osc58-using-the-setup-dialog">
   Ardour's Setup Dialog.</a>
 </p>
 <p>If /set_surface is not sent, the default values are used:
   <ul>
-         <li><em>Bank Size</em>: 0&mdash;No banking (or infinite bank size).</li>
-         <li><em>Strip Types</em>: All strip types except hidden and special.</li>
-         <li><em>Feedback</em>: 0&mdash;All off.</li>
-         <li><em>Fader Mode</em>: 0&mdash;gain in dB (not relevant with feedback off)</li>
+         <li><em>Bank Size</em>: 0&mdash; No banking (or infinite bank size).</li>
+         <li><em>Strip Types</em>: 0&mdash; All strip types except hidden and special.</li>
+         <li><em>Feedback</em>: 0&mdash; All off.</li>
+         <li><em>Fader Mode</em>: 0&mdash; gain in dB (not relevant with feedback off)</li>
+         <li><em>Send Page Size</em>: 0&mdash; No Send Paging.</li>
+         <li><em>Plugin Page Size</em>: 0&mdash; No Plugin Paging.</li>
   </ul>
 </p>
 <p>
@@ -90,11 +92,27 @@ here</em>"/&gt;</kbd>
 </p>
 <table class="dl">
   <tr><th><kbd class="osc">/set_surface <em>bank_size</em> <em>strip_types</em>
-  <em>feedback</em> <em>fadermode</em></kbd></th>
+  <em>feedback</em> <em>fadermode</em> <em>send_page_size</em> <em>plugin_page_size</em></kbd></th>
   <td>
          See below for an explanation of each parameter.
   </td></tr>
 </table>
+<p class="note">
+       The /set_surface message may have all values except the last in-line.
+       For example: <code>/set_surface/8/31/8403/0/8 i 16</code> would be valid.
+       Do be careful of switches which send a 0 on release, it may be necessary
+       to set the value as the release value rather than the press value.
+</p>
+<p class="note">
+       The /set_surface message may have less than the full set of parameters.
+       those left out will remain as they were before the /set_surface message was
+       sent. All parameters included must be valid. For example, setting send page
+       size would require also setting bank_size, strip_types, feedback and gain mode.
+       using only two parameters will set bank_size and strip_types. Sending /set_surface with
+       no parameters will result in Ardour returning a /set_surface message with the
+       current settings. Surfaces using /set_surface iiii b st fb gm as was the case
+       in versions of Ardour older than 5.10 will continue to work.
+</p>
 <h3>bank_size</h3>
 <p>
   Bank Size is the number of channel strips the controller supports
@@ -128,7 +146,7 @@ here</em>"/&gt;</kbd>
   strips.
 </p>
 <p>Please see: <a
-  href="/using-control-surfaces/controlling-ardour-with-osc/calculating-feedback-and-strip-types-values/">
+  href="@@osc58-feedback-and-strip-types-values">
   Calculating Feedback and Strip-types Values.</a>
 </p>
 <p class="note">
@@ -140,7 +158,7 @@ here</em>"/&gt;</kbd>
   then adding all those numbers together for a value to send.
 </p>
 <p>Please see: <a
-  href="/using-control-surfaces/controlling-ardour-with-osc/calculating-feedback-and-strip-types-values/">
+  href="@@osc58-feedback-and-strip-types-values">
   Calculating Feedback and Strip-types Values.</a></p>
 <p class="note">
        Feedback can also be set with <em>/set_surface/feedback feedback.</em>
@@ -168,12 +186,31 @@ here</em>"/&gt;</kbd>
 <p class="note">
        Gain mode can also be set with <em>/set_surface/gainmode gainmode.</em>
 </p>
+<h3>send_page_size</h3>
+<p>
+       Send_page_size is an int for the number of send channels that can be controlled
+       at one time. Each channel has a name, level and enable control. (added in Ardour 5.10)
+</p>
+<p class="note">
+       Send page size can also be set with <em>/set_surface/send_page_size send_page_size.</em>
+</p>
+<h3>plugin_page_size</h3>
+<p>
+       plugin_page_size is an int for the number of plugin controls that can be controlled
+       at one time. Each control has a name and level. As each plugin is different (as is each
+       parameter), the surface should expect to control the plugin parameters with a variable
+       control (pot or slider) with a float value from 0 to 1 (even on/off switches). (added in
+       Ardour 5.10)
+</p>
+<p class="note">
+       Plugin page size can also be set with <em>/set_surface/plugin_page_size plugin_page_size.</em>
+</p>
 
 <h2>Querying Ardour for information</h2>
 <p>
   The control Surface may wish to control the type a frequency of
   updates it receives. It can do this with querying commands. See: <a
-  href="/using-control-surfaces/controlling-ardour-with-osc/querying-ardour-with-osc/">
+  href="@@osc58-querying-ardour">
   Querying Ardour with OSC.</a>
 </p>
 
@@ -181,7 +218,7 @@ here</em>"/&gt;</kbd>
 <p class="note">
        Parameter types show how the value will be used. However, they may
        be sent as a different type if needed, see: <a
-       href="/using-control-surfaces/controlling-ardour-with-osc/parameter-types-in-osc/">
+       href="@@osc58-parameter-types">
        Parameter Types in OSC.</a>
 </p>
 <h3>Master or Global messages</h3>
@@ -189,43 +226,75 @@ here</em>"/&gt;</kbd>
 <h4>Transport Control</h4>
 <table class="dl">
   <tr><th><kbd class="osc">/transport_stop</kbd></th>
-  <td></td></tr>
+  <td>Stops a rolling transport</td></tr>
   <tr><th><kbd class="osc">/transport_play</kbd></th>
-  <td></td></tr>
-  <tr><th><kbd class="osc">/set_transport_speed <em>s</em></kbd></th>
-  <td>where <em>s</em> is a float ranging from -8.0f to 8.0f</td></tr>
+  <td>Puts transport in play mode</td></tr>
+  <tr><th><kbd class="osc">/toggle_roll</kbd></th>
+  <td>Toggles between play and stop</td></tr>
+  <tr><th><kbd class="osc">/stop_forget</kbd></th>
+  <td>Stop transport and delete/forget last take</td></tr>
+  <tr><th><kbd class="osc">/set_transport_speed <em>speed</em></kbd></th>
+  <td>where <em>speed</em> is a float ranging from -8.0f to 8.0f</td></tr>
   <tr><th><kbd class="osc">/ffwd</kbd></th>
-  <td></td></tr>
+  <td>Adds 1.5 times to transport speed to maximum +8 times normal speed</td></tr>
   <tr><th><kbd class="osc">/rewind</kbd></th>
-  <td></td></tr>
+  <td>Adds -1.5 times to transport speed to maximum -8 times normal speed</td></tr>
   <tr><th><kbd class="osc">/goto_start</kbd></th>
-  <td></td></tr>
+  <td>Move playhead to start of session</td></tr>
   <tr><th><kbd class="osc">/goto_end</kbd></th>
-  <td></td></tr>
+  <td>Move playhead to end of session</td></tr>
   <tr><th><kbd class="osc">/jump_bars <em>bars</em></kbd></th>
   <td>Where <em>bars</em> is a float (+/-) of the number of bars to jump</td></tr>
   <tr><th><kbd class="osc">/jump_seconds <em>seconds</em></kbd></th>
   <td>Where <em>seconds</em> is a float (+/-) of the number of seconds to jump</td></tr>
+  <tr><th><kbd class="osc">/toggle_click</kbd></th>
+  <td>Toggle metronome click on and off</td></tr>
   <tr><th><kbd class="osc">/add_marker</kbd></th>
   <td>(adds marker to the current transport position)</td></tr>
   <tr><th><kbd class="osc">/remove_marker</kbd></th>
   <td>Removes marker at the current transport position (if there is one)</td></tr>
   <tr><th><kbd class="osc">/next_marker</kbd></th>
-  <td></td></tr>
+  <td>Move playhead to next marker</td></tr>
   <tr><th><kbd class="osc">/prev_marker</kbd></th>
-  <td></td></tr>
+  <td>Move playhead to previous marker</td></tr>
   <tr><th><kbd class="osc">/locate <em>spos</em> <em>roll</em></kbd></th>
   <td>where <em>spos</em> is the target position in samples and
   <em>roll</em> is a bool/integer defining whether you want transport
   to be kept rolling or not</td></tr>
   <tr><th><kbd class="osc">/loop_toggle</kbd></th>
-  <td></td></tr>
+  <td>Toggle loop mode on and off</td></tr>
   <tr><th><kbd class="osc">/loop_location <em>start</em> <em>end</em></kbd></th>
   <td><em>start</em> is the beginning of a loop and <em>end</em> is the
   end of a loop both are integer frame positions.</td></tr>
+  <tr><th><kbd class="osc">/midi_panic</kbd></th>
+  <td>Ardour will send an all notes off to all midi tracks</td></tr>
   <tr><th><kbd class="osc">/cancel_all_solos</kbd></th>
   <td>Cancel All Solos/PFLs/AFLs</td></tr>
 </table>
+<p>
+  New for Ardour 5.9.
+</p>
+<table class="dl">
+  <tr><th><kbd class="osc">/scrub <em>delta</em></kbd></th>
+  <td>Where <em>delta</em> is a float indicating forward or reverse movement.
+  See <a href="@@osc58-jog-modes#scrub">OSC Scrub Modes</a></td></tr> <!--#scrub-->
+  <tr><th><kbd class="osc">/jog <em>delta</em></kbd></th>
+  <td>Where <em>delta</em> is a float indicating forward or reverse movement</td></tr>
+  <tr><th><kbd class="osc">/jog/mode <em>mode</em></kbd></th>
+  <td>Where <em>mode</em> is an int from 0 to 7 indicating what the <em>/jog</em>
+  command controls. See <a href="@@osc58-jog-modes">
+  OSC Jog Modes</a></td></tr>
+</table>
+
+<h4>Recording control</h4>
+<table class="dl">
+  <tr><th><kbd class="osc">/toggle_punch_in</kbd></th>
+  <td></td></tr>
+  <tr><th><kbd class="osc">/toggle_punch_out</kbd></th>
+  <td></td></tr>
+  <tr><th><kbd class="osc">/rec_enable_toggle</kbd></th>
+  <td>Toggles master record enable</td></tr>
+</table>
 
 <h4>Transport Information</h4>
 <table class="dl">
@@ -248,32 +317,34 @@ here</em>"/&gt;</kbd>
   operation)</td></tr>
 </table>
 
-<h4>Recording control</h4>
-<table class="dl">
-  <tr><th><kbd class="osc">/toggle_punch_in</kbd></th>
-  <td></td></tr>
-  <tr><th><kbd class="osc">/toggle_punch_out</kbd></th>
-  <td></td></tr>
-  <tr><th><kbd class="osc">/rec_enable_toggle</kbd></th>
-  <td></td></tr>
-</table>
-
 <h4>Master and Monitor strip control</h4>
 <table class="dl">
   <tr><th><kbd class="osc">/master/gain <em>dB</em></kbd></th>
-  <td>See gain in strips</td></tr>
+  <td>dB is a float indicating the desired gain in dB</td></tr>
   <tr><th><kbd class="osc">/master/fader  <em>position</em></kbd></th>
-  <td>See fader in strips</td></tr>
+  <td>position is a float between 0 and 1 setting the desired position of the fader</td></tr>
+  <tr><th><kbd class="osc">/master/db_delta <em>delta</em></kbd></th>
+  <td>where <em>delta</em> is a float that will increase or decrease the gain of master by the amount of the delta. (Ardour 5.11+)</td></tr>
   <tr><th><kbd class="osc">/master/trimdB <em>dB</em></kbd></th>
-  <td>see trimdb in strips</td></tr>
+  <td>dB is a float from -20 to +20 representing the desired trim gain in dB</td></tr>
   <tr><th><kbd class="osc">/master/pan_stereo_position <em>position</em></kbd></th>
-  <td>See pan_stereo_position in strips</td></tr>
-  <tr><th><kbd class="osc">/master/mute  <em>yn</em></kbd></th>
-  <td>See mute in strips</td></tr>
+  <td>position is a float from 0 to 1 representing the desired pan position</td></tr>
+  <tr><th><kbd class="osc">/master/mute  <em>key</em></kbd></th>
+  <td>key is an optional float 1 representing a master bus select</td></tr>
+  <tr><th><kbd class="osc">/master/select  <em>state</em></kbd></th>
+  <td>state is an int of o or 1 representing the desired mute state</td></tr>
   <tr><th><kbd class="osc">/monitor/gain <em>dB</em></kbd></th>
-  <td>See gain in strips</td></tr>
+  <td>dB is a float indicating the desired gain in dB</td></tr>
   <tr><th><kbd class="osc">/monitor/fader  <em>position</em></kbd></th>
-  <td>See fader in strips</td></tr>
+  <td>position is a float between 0 and 1 setting the desired position of the fader</td></tr>
+  <tr><th><kbd class="osc">/monitor/db_delta <em>delta</em></kbd></th>
+  <td>where <em>delta</em> is a float that will increase or decrease the gain of monitor by the amount of the delta. (Ardour 5.11+)</td></tr>
+  <tr><th><kbd class="osc">/monitor/mute  <em>state</em></kbd></th>
+  <td>state is an int of 0 or 1 where 1 is muted</td></tr>
+  <tr><th><kbd class="osc">/monitor/dim  <em>state</em></kbd></th>
+  <td>state is an int of 0 or 1 where 1 is dimmed</td></tr>
+  <tr><th><kbd class="osc">/monitor/mono  <em>state</em></kbd></th>
+  <td>state is an int of 0 or 1 where 1 is mono mode</td></tr>
 </table>
 
 <h3>Track specific operations</h3>
@@ -296,10 +367,15 @@ here</em>"/&gt;</kbd>
   param should be a float even if an int is required below.
 </p>
 <table class="dl">
-  <tr><th><kbd class="osc">/bank_up </kbd></th>
+  <tr><th><kbd class="osc">/bank_up</kbd></th>
   <td>Change bank to the next higher bank.</td></tr>
+  <tr><th><kbd class="osc">/bank_up <em>delta</em></kbd></th>
+  <td>Where <em>delta</em> is a float of 1 to bank up and -1 is bank down for use with an encoder (Ardour 5.11+)</td></tr>
   <tr><th><kbd class="osc">/bank_down </kbd></th>
   <td>Change bank to the next lower bank.</td></tr>
+  <tr><th><kbd class="osc">/use_group <em>state</em></kbd></th>
+  <td>Where <em>state</em> is a float of 1 to use group or 0 to not use group.
+  <a href="@@osc58-feedback-and-strip-types-values#use-group">more info on use_group</a></td></tr>
   <tr><th><kbd class="osc">/strip/mute <em>ssid</em> <em>mute_st</em></kbd></th>
   <td>where <em>mute_st</em> is a bool/int representing the desired mute state of the track</td></tr>
   <tr><th><kbd class="osc">/strip/solo <em>ssid</em> <em>solo_st</em></kbd></th>
@@ -323,6 +399,14 @@ here</em>"/&gt;</kbd>
   <td>where <em>gain</em> is a float ranging from -193 to 6 representing the desired gain of the track in dB.</td></tr>
   <tr><th><kbd class="osc">/strip/fader <em>ssid</em>  <em>position</em></kbd></th>
   <td>where <em>position</em> is a float ranging from 0 to 1 representing the fader control position.</td></tr>
+  <tr><th><kbd class="osc">/strip/db_delta <em>ssid</em>  <em>delta</em></kbd></th>
+  <td>where <em>delta</em> is a float that will increase or decrease the gain of a track by the amount of the delta. (Ardour 5.11+)</td></tr>
+  <tr><th><kbd class="osc">/strip/*/automation <em>ssid</em>  <em>mode</em></kbd></th>
+  <td>where <em>mode</em> is an int ranging from 0 to 3 representing the desired automation mode for the control.
+  <a href="@@osc58-automation">See OSC Automation.</a></td></tr>
+  <tr><th><kbd class="osc">/strip/*/touch  <em>ssid</em> <em>state</em></kbd></th>
+  <td>where <em>state</em> is an int of 1 for touched and 0 for released.
+  <a href="@@osc58-automation">See OSC Automation.</a></td></tr>
   <tr><th><kbd class="osc">/strip/trimdB <em>ssid</em>  <em>trim_db</em></kbd></th>
   <td>where <em>trim_db</em> is a float ranging from -20 to 20 representing the desired trim of the track in dB.</td></tr>
   <tr><th><kbd class="osc">/strip/pan_stereo_position <em>ssid</em> <em>position</em></kbd></th>
@@ -372,7 +456,7 @@ here</em>"/&gt;</kbd>
 <p class="note">
   Selected strip operations are complex enough for their own page.
   Please read: <a
-  href="/using-control-surfaces/controlling-ardour-with-osc/selection-considerations-in-osc/">
+  href="@@osc58-selection-and-expansion-considerations">
   Selection Considerations in OSC.</a> This is most important if more
   than one OSC surface is being used with Ardour.
 </p>
@@ -429,6 +513,14 @@ here</em>"/&gt;</kbd>
   <td>Where <em>gain</em> is a float ranging from -193 to 6 representing the desired gain of the track in dB.</td></tr>
   <tr><th><kbd class="osc">/select/fader <em>position</em></kbd></th>
   <td>Where <em>position</em> is an float ranging from 0 to 1 representing the fader control position.</td></tr>
+  <tr><th><kbd class="osc">/select/db_delta <em>delta</em></kbd></th>
+  <td>where <em>delta</em> is a float that will increase or decrease the gain of the selected track by the amount of the delta. (Ardour 5.11+)</td></tr>
+  <tr><th><kbd class="osc">/select/*/automation  <em>mode</em></kbd></th>
+  <td>where <em>mode</em> is an int ranging from 0 to 3 representing the desired automation mode for the control.
+  <a href="@@osc58-automation">See OSC Automation.</a></td></tr>
+  <tr><th><kbd class="osc">/select/*/touch  <em>state</em></kbd></th>
+  <td>where <em>state</em> is an int of 1 for touched and 0 for released.
+  <a href="@@osc58-automation">See OSC Automation.</a></td></tr>
   <tr><th><kbd class="osc">/select/trimdB <em>trim_db</em></kbd></th>
   <td>where <em>trim_db</em> is a float ranging from -20 to 20 representing the desired trim of the track in dB.</td></tr>
   <tr><th><kbd class="osc">/select/pan_stereo_position <em>position</em></kbd></th>
@@ -449,8 +541,19 @@ here</em>"/&gt;</kbd>
   ranging from 0 to 1 representing the desired position for the send as a fader</td></tr>
   <tr><th><kbd class="osc">/select/send_enable", <em>sendid</em> <em>state</em></kbd></th>
   <td>where <em>sendid</em> = nth_send, <em>state</em> is 1 for enabled and 0 for disabled</td></tr>
+  <tr><th><kbd class="osc">/select/send_page", <em>delta</em></kbd></th>
+  <td>where <em>delta</em> is an int or float selecting another send as a delta from the current send.</td></tr>
+  <tr><th><kbd class="osc">/select/plugin_page", <em>delta</em></kbd></th>
+  <td>where <em>delta</em> is an int or float selecting another plugin parameter as a delta from the current parameter.</td></tr>
+  <tr><th><kbd class="osc">/select/plugin/parameter", <em>plugin</em> <em>parameter</em> <em>value</em></kbd></th>
+  <td>where <em>plugin</em> = nth plugin, <em>parameter</em> = nth parameter and <em>value</em> is a float from 0 to 1</td></tr>
 </table>
-
+<p class="note">
+       <code>/select/send_page</code> and <code>/select/plugin_page</code> may be used
+       with a page up and page down switch by using a switch with a value of <code>1</code>
+       for page up and a switch with a value of <code>-1</code> for page down. An encoder
+       can be used as well. (these commands were added in Ardour version 5.10)
+</p>
 <h3>Menu actions</h3>
 <p>
   Every single menu item in Ardour's GUI is accessible via OSC. There is
@@ -459,21 +562,23 @@ here</em>"/&gt;</kbd>
 <kbd class="osc">/access_action <em>action_name</em></kbd>
 <p>
   As of Ardour 5.9, <em>access_action</em> can be inlined for control surfaces
-  that are unable to send string parameters. <em>Action_name</em> is composed of
+  that are unable to send string parameters. The <em>action_name</em> is composed of
   a group and an action in the form of <em>Group/action</em> which fits very well
-  an OSC path extension:
+  as an OSC path extension:
 </p>
 <kbd class="osc">/access_action/<em>Group/action</em> <em>key_pressed</em></kbd>
 <p>
   The key_pressed is optional, but if present is a float 1 or 0 where the
   command is ignored if key_pressed is  0.
 </p>
+<p class="note">
+  Some of the Menu Actions duplicate other OSC commands. In all cases it is better
+  to use the OSC commands rather than the Menu Actions if possible as the OSC commands
+  are more direct.
+</p>
 <p>
-  The <a
-  href="/appendix/menu-actions-list/">
-  list of actions</a> shows all available values of <em>action-name</em> as of
-  June 2016 for Ardour 5.0.pre0.1. You can get the current list at any
-  time by running Ardour with the -b flag.
+  The <a href="@@list-of-menu-actions"> list of actions</a>
+  shows all available values of <em>action-name</em> for Ardour.
 </p>
 
 <!--p> These listed below are still working but may in the future not work
@@ -482,8 +587,6 @@ actions can now be "inlined", all known OSC controllers can call them directly.
 Any of these actions that can be moved to session->action calls may reapear.
 </p>
 
-  <!--tr><th><kbd class="osc">/toggle_roll</kbd></th>
-  <td>Toggles between play and stop</td></tr>
   <tr><th><kbd class="osc">/mark_in</kbd></th>
   <td>Marks the begining of a range at the current transport position</td></tr>
   <tr><th><kbd class="osc">/mark_out</kbd></th>
@@ -492,10 +595,6 @@ Any of these actions that can be moved to session->action calls may reapear.
   <td>Uses edit range as loop range</td></tr>
   <tr><th><kbd class="osc">/set_session_range</kbd></th>
   <td>Uses edit range as session range</td></tr>
-  <tr><th><kbd class="osc">/toggle_click</kbd></th>
-  <td></td></tr>
-  <tr><th><kbd class="osc">/midi_panic</kbd></th>
-  <td>Ardour will send an all notes off to all midi tracks</td></tr>
   <tr><th><kbd class="osc">/quick_snapshot_switch</kbd></th>
   <td>Take a snapshot and switch to new version</td></tr>
   <tr><th><kbd class="osc">/quick_snapshot_stay</kbd></th>
@@ -521,7 +620,5 @@ Any of these actions that can be moved to session->action calls may reapear.
   <tr><th><kbd class="osc">/set_punch_range</kbd></th>
   <td>Uses edit range as punch range</td></tr>
   <dt><kbd class="osc">/toggle_all_rec_enables</kbd></th>
-  <td>(toggles all tracks' recording state)</dd>
-  <tr><th><kbd class="osc">/stop_forget</kbd></th>
-  <td>Stop transport and delete/forget last take</td></tr-->
+  <td>(toggles all tracks' recording state)</dd-->