]> Shamusworld >> Repos - ardour-manual-diverged/blobdiff - _manual/22_using-control-surfaces/01_controlling-ardour-with-osc.html
OSC: Added feedback and strip type calculating page.
[ardour-manual-diverged] / _manual / 22_using-control-surfaces / 01_controlling-ardour-with-osc.html
index d9ff36c1310f754d92b491f44011817a37bd3030..f87c2f4bcb29e82111b5420b4fe4ff1c9f028c00 100644 (file)
@@ -48,7 +48,10 @@ here</em>"/&gt;</kbd>
   than one controller at a time. The two controllers can bank
   independantly and even use different math for faders. This could be
   used to allow talent to adjust their own monitor mix using a tablet
-  or phone that can run an OSC controller.
+  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/">
+  OSC feedback In Ardour.</a>
 </p>
 
 <h2>Control Surface Set Up</h2>
@@ -63,16 +66,17 @@ here</em>"/&gt;</kbd>
 <p>
   Any time the <em>/set_surface</em> command is sent, the current bank
   is recalculated and if feedback is turned on, the values of each
-  strip's controls are sent (or refreshed) as well.
+  strip's controls are sent (or refreshed) as well. This will also
+  refresh the Master feedback setup.
 </p>
 <p>If /set_surface is not sent, the default values are used:
   <ul>
          <li><em>Bank Size</em>: 0 - No banking (or infinite bank size).</li>
-         <li><em>Strip Types</em>: All strip types except hidden.</li>
+         <li><em>Strip Types</em>: All strip types except hidden and special.</li>
          <li><em>Feedback</em>: Off.</li>
-         <li><em>Fader Mode</em>: ABS - Absolute gain.</li>
+         <li><em>Fader Mode</em>: 0 - gain in dB</li>
   </ul>
-  These values give the same behaviour as prior versions of Ardour.
+  These values give the same behaviour as prior versions of Ardour. (or the closest possible)
 </p>
 <dl class="bindings">
   <dt><kbd class="osc">/set_surface <em>bank_size</em> <em>strip_types</em>
@@ -89,52 +93,34 @@ here</em>"/&gt;</kbd>
 </p>
 <h3>strip_types</h3>
 <p>
-  Strip Types are coming soon... check for more info sometime. For now
-  just use 0 (or anything else) as this is ignored. I don't know the bit
-  order just yet, but it will work similar to feedback below. Strip Types
-  will determine What kind of strips will be included in a bank. This would
-  include: Audio, MIDI, busses, VCAs, Master, Monitor and hopefully
-  hidden or selected strips.
+  strip_types is an integer made up of bits. The easy way to
+  deal with this is to think of strip_types items being worth a number and
+  then adding all those numbers together for a value to send.
+  Strip Types will determine What kind of strips will be included in 
+  bank. This would include: Audio, MIDI, busses, VCAs, Master, Monitor
+  and hidden or selected strips.
 </p>
+<p>Please see: <a
+  href="/using-control-surfaces/controlling-ardour-with-osc/calculating-feedback-and-strip-types-values/">
+  Calculating Feedback and Strip-types Values.</a></p>
 <h3>feedback</h3> 
-  <p>Feedback is an integer made up of bits. The easy way to
+<p>Feedback is an integer made up of bits. The easy way to
   deal with this is to think of feedback items being worth a number and
   then adding all those numbers together for a value to send.
-  <ul>
-       <li>
-               1 - feedback values of controls in strips.
-       </li>
-       <li>
-               2 - Send meter values (not coded yet).
-       </li>
-       <li>
-               4 - Send timecode (not codeed yet).
-       </li>
-       <li>
-               8 - Send Bar and Beat (not coded yet).
-       </li>
-       <li>
-               16 - Enable master section feedback (not coded yet).
-       </li>
-  </ul>
-  So using a value of 17 would turn on feedback for strip and master
-  controls, but leave meters, timecode and bar/beat feedback off.
 </p>
+<p>Please see: <a
+  href="/using-control-surfaces/controlling-ardour-with-osc/calculating-feedback-and-strip-types-values/">
+  Calculating Feedback and Strip-types Values.</a></p>
+
 <h3>gainmode</h3>
 <p>
-  Gainmode is a string that is one of:
+  Gainmode is a an int that acts as a bool:
   <ul>
-         <li><em>ABS</em> Absolute Gain as a float value from 0.0 to 2.0
-         sent in the same manner as the OSC command. For example: 
-         /strip/gainabs RID Value.</li>
-         <li><em>DB</em> dB value as a float from -200 to +6. Sent as
-         /strip/gaindB RID value.</li>
-         <li><em>FADER</em> A positional fader based on the same math as
-         Ardour's GUI. A float from 0.0 to 1.0.
-         Sent as /strip/fader RID value</li>
-         <li><em>INT1024</em> Also a positonal value, but an Integer from
-         0 to 1023 (1024 values) for controllers with no FPU. Sent as
-         /strip/fader1024 RID value</li>
+         <li><em>0 (or false)</em> dB value as a float from -193 to +6. Sent as
+         /strip/gain RID value. (-193 or below are the same as -inf)</li>
+         <li><em>1 (or true)</em> A positional fader based on the same math as
+         Ardour's GUI.  An Integer from 0 to 1023 (1024 values). Sent as
+         /strip/fader RID value</li>
   </ul>
 </p>
   
@@ -142,26 +128,17 @@ here</em>"/&gt;</kbd>
 
 <h3>Master or Global messages</h3>
 
-<h4>Master and Monitor strip control</h4>
-<p>(coming soon)</p>
-<dl class="bindings">
-  <dt><kbd class="osc">/master/gain <em>value</em></kbd></dt>
-  <dd>where <em>value</em> is determined by gainmode. (see /set_surface)</dd>
-  <dt><kbd class="osc">/monitor/gain <em>value</em></kbd></dt>
-  <dd>where <em>value</em> is determined by gainmode. (see /set_surface)</dd>
-</dl>
-
 <h4>Transport Control</h4>
 <dl class="bindings">
-  <dt><kbd class="osc">/transport_stop</kbd></dt>
+  <dt><kbd class="osc">/transport_stop <em>optional</em></kbd></dt>
   <dd></dd>
-  <dt><kbd class="osc">/transport_play</kbd></dt>
+  <dt><kbd class="osc">/transport_play <em>optional</em></kbd></dt>
   <dd></dd>
   <dt><kbd class="osc">/set_transport_speed <em>s</em></kbd></dt>
   <dd>where <em>s</em> is a float ranging from -8.0f to 8.0f</dd>
-  <dt><kbd class="osc">/ffwd</kbd></dt>
+  <dt><kbd class="osc">/ffwd <em>optional</em></kbd></dt>
   <dd></dd>
-  <dt><kbd class="osc">/rewind</kbd></dt>
+  <dt><kbd class="osc">/rewind <em>optional</em></kbd></dt>
   <dd></dd>
   <dt><kbd class="osc">/goto_start</kbd></dt>
   <dd></dd>
@@ -177,7 +154,7 @@ here</em>"/&gt;</kbd>
   <dd>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</dd>
-  <dt><kbd class="osc">/loop_toggle</kbd></dt>
+  <dt><kbd class="osc">/loop_toggle <em>optional</em></kbd></dt>
   <dd></dd>
 </dl>
 
@@ -198,48 +175,75 @@ here</em>"/&gt;</kbd>
   <dd></dd>
   <dt><kbd class="osc">/toggle_punch_out</kbd></dt>
   <dd></dd>
-  <dt><kbd class="osc">/rec_enable_toggle</kbd></dt>
+  <dt><kbd class="osc">/rec_enable_toggle <em>optional</em></kbd></dt>
   <dd></dd>
   <dt><kbd class="osc">/toggle_all_rec_enables</kbd></dt>
   <dd>(toggles all tracks' recording state)</dd>
 </dl>
 
+<h4>Master and Monitor strip control</h4>
+<dl class="bindings">
+  <dt><kbd class="osc">/master/gain <em>dB</em></kbd></dt>
+  <dd>where <em>dB</em> is a float ranging from -193 to +6 representing the desired gain of master in dB</dd>
+  <dt><kbd class="osc">/master/fader  <em>position</em></kbd></dt>
+  <dd>where <em>position</em> is an int ranging from 0 to 1023 representing the fader control position</dd>
+  <dt><kbd class="osc">/master/trimdB <em>dB</em></kbd></dt>
+  <dd>where <em>dB</em> is a float ranging from -20 to +20 representing the desired trim for master in dB</dd>
+  <dt><kbd class="osc">/master/pan_stereo_position <em>position</em></kbd></dt>
+  <dd>where <em>position</em> is a float ranging from 0 to 1 representing the desired pan position for master</dd>
+  <dt><kbd class="osc">/master/mute  <em>yn</em></kbd></dt>
+  <dd>where <em>yn</em> is a bool/int representing the desired mute state of the track</dd>
+  <dt><kbd class="osc">/monitor/gain <em>dB</em></kbd></dt>
+  <dd>where <em>dB</em> is a float ranging from -193 to 6 representing the desired gain of monitor in dB</dd>
+  <dt><kbd class="osc">/monitor/fader  <em>position</em></kbd></dt>
+  <dd>where <em>position</em> is an int ranging from 0 to 1023 representing the fader control position</dd>
+</dl>
+
 <h3>Track specific operations</h3>
 <p>
-  For each of the following, <em>rid</em> is the remote ID for the track
+  For each of the following, <em>ssid</em> is the Surface Strip ID for the track
 </p>
 <p class="note">
-  RID has a different meaning than in Ardour version 4.7 and before.
-  Effectively, banking is always being used and the RID is generated on
-  the fly. The RID is the possition of the strip within bank as an int
+  SSID has a different meaning than RID in Ardour version 4.7 and before.
+  Effectively, banking is always being used and the SSID is generated on
+  the fly. The SSID is the possition of the strip within bank as an int
   1 to bank size. There are no gaps as there have been in the past.
   Depending on the value of strip_types sent to Ardour, Master and
-  Monitor, may be included in the list of RIDs or not as the controller
-  sets.
+  Monitor, may be included in the list of SSIDs or not as set in
+  <em>/set_surface</em>.
+</p>
+<p class="note">
+  Some Surfaces (many Android applets) are not able to deal with more
+  than one parameter in a command. However, the two parameter commands
+  below can also be sent as /strip/command/ssid param. In this case the
+  param should be a float even if an int is required below.
 </p>
 <dl class="bindings">
-  <dt><kbd class="osc">/bank_up</kbd></dt>
+  <dt><kbd class="osc">/bank_up </kbd></dt>
   <dd>Change bank to the next higher bank.</dd>
-  <dt><kbd class="osc">/bank_down</kbd></dt>
+  <dt><kbd class="osc">/bank_down </kbd></dt>
   <dd>Change bank to the next lower bank.</dd>
-  <dt><kbd class="osc">/strip/mute <em>rid</em> <em>mute_st</em></kbd></dt>
+  <dt><kbd class="osc">/strip/mute <em>ssid</em> <em>mute_st</em></kbd></dt>
   <dd>where <em>mute_st</em> is a bool/int representing the desired mute state of the track</dd>
-  <dt><kbd class="osc">/strip/solo <em>rid</em> <em>solo_st</em></kbd></dt>
+  <dt><kbd class="osc">/strip/solo <em>ssid</em> <em>solo_st</em></kbd></dt>
   <dd>where <em>solo_st</em> is a bool/int representing the desired solo state of the track</dd>
-  <dt><kbd class="osc">/strip/recenable <em>rid</em> <em>rec_st</em></kbd></dt>
+  <dt><kbd class="osc">/strip/monitor_input <em>ssid</em> <em>monitor_st</em></kbd></dt>
+  <dd>where <em>monitor_st</em> is a bool/int where 1 is forced input monitoring.</dd>
+  <dt><kbd class="osc">/strip/monitor_disk <em>ssid</em> <em>monitor_st</em></kbd></dt>
+  <dd>where <em>monitor_st</em> is a bool/int where 1 is forced disk monitoring. When input and disk are both off, 
+  Auto monitoring is enabled.</dd>
+  <dt><kbd class="osc">/strip/recenable <em>ssid</em> <em>rec_st</em></kbd></dt>
   <dd>where <em>rec_st</em> is a bool/int representing the desired rec state of the track</dd>
-  <dt><kbd class="osc">/strip/gainabs <em>rid</em> <em>gain_abs</em></kbd></dt>
-  <dd>where <em>gain_abs</em> is a float ranging from 0 to 2 (0 being -infinite, 1 being 0dB and 2 being +6dB).</dd>
-  <dt><kbd class="osc">/strip/gaindB <em>rid</em>  <em>gain_db</em></kbd></dt>
-  <dd>where <em>gain_db</em> is a float ranging from -200 to 6 representing the desired gain of the track in dB.</dd>
-  <dt><kbd class="osc">/strip/fader <em>rid</em>  <em>fader position</em></kbd></dt>
-  <dd>where <em>fader position</em> is a float ranging from 0 to 1 representing the fader control position.</dd>
-  <dt><kbd class="osc">/strip/fader1024 <em>rid</em>  <em>fader1024</em></kbd></dt>
-  <dd>where <em>fader1024</em> is an int ranging from 0 to 1023 representing the fader control position.</dd>
-  <dt><kbd class="osc">/strip/trimabs <em>rid</em> <em>trim_abs</em></kbd></dt>
+  <dt><kbd class="osc">/strip/gain <em>ssid</em>  <em>gain</em></kbd></dt>
+  <dd>where <em>gain</em> is a float ranging from -193 to 6 representing the desired gain of the track in dB.</dd>
+  <dt><kbd class="osc">/strip/fader <em>ssid</em>  <em>position</em></kbd></dt>
+  <dd>where <em>position</em> is an int ranging from 0 to 1023 representing the fader control position.</dd>
+  <dt><kbd class="osc">/strip/trimabs <em>ssid</em> <em>trim_abs</em></kbd></dt>
   <dd>where <em>trim_abs</em> is a float ranging from 0.1 to 10 (-20dB to +20dB). (since 4.1)</dd>
-  <dt><kbd class="osc">/strip/trimdB <em>rid</em>  <em>trim_db</em></kbd></dt>
-  <dd>where <em>trim_db</em> is a float ranging from -20 to 20 representing the desired trim of the track in dB. (since 4.1)</dd>
+  <dt><kbd class="osc">/strip/trimdB <em>ssid</em>  <em>trim_db</em></kbd></dt>
+  <dd>where <em>trim_db</em> is a float ranging from -20 to 20 representing the desired trim of the track in dB.</dd>
+  <dt><kbd class="osc">/strip/pan_stereo_position <em>ssid</em> <em>position</em></kbd></dt>
+  <dd>where <em>position</em> is a float ranging from 0 to 1 representing the desired pan position of the track</dd>
 </dl>
 
 <h3>Menu actions</h3>
@@ -824,3 +828,5 @@ here</em>"/&gt;</kbd>
   <dt><kbd class="osc">Zoom/zoom-focus-playhead</kbd></dt><dd>Zoom Focus Playhead</dd>
   <dt><kbd class="osc">Zoom/zoom-focus-right</kbd></dt><dd>Zoom Focus Right</dd>
 </dl>
+
+{% children %}