</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
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.
</p>
- <ul>
- <li>
- 1 - feedback values of controls in strips.
- </li>
- <li>
- 2 - Send meter values (not coded yet).
- </li>
- <li>
- 4 - Send timecode (not coded yet).
- </li>
- <li>
- 8 - Send Bar and Beat (not coded yet).
- </li>
- <li>
- 16 - Enable master section feedback.
- </li>
- </ul>
-<p>
- 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 an int that acts as a bool:
<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>
<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>
<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>
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>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>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/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/gain <em>ssid</em> <em>gain</em></kbd></dt>
<dd></dd>
<dt><kbd class="osc">/rewind <em>state</em></kbd></dt>
<dd></dd>
- <!--dt><kbd class="osc">/loop_toggle</kbd></dt>
- <dd></dd-->
+ <dt><kbd class="osc">/loop_toggle <em>state</em></kbd></dt>
+ <dd></dd>
</dl>
<dt><kbd class="osc">/toggle_punch_out</kbd></dt>
<dd></dd-->
<dt><kbd class="osc">/rec_enable_toggle <em>state</em></kbd></dt>
- <dd></dd>
+ <dd>Master record enabled.</dd>
+ <dt><kbd class="osc">/record_tally <em>state</em></kbd></dt>
+ <dd>Some record enable is true or "ready to record"</dd>
</dl>
<h3>Master and monitor strips</h3>
<p>
For each of the following, <em>ssid</em> is the surface strip ID for the track
</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. Feedback can be
+ set to match this with the /set_surface/feedback <em>state</em>
+ command. See <a
+ href="/using-control-surfaces/controlling-ardour-with-osc/calculating-feedback-and-strip-types-values/">
+ Calculating Feedback and Strip-types Values.</a>
+</p>
+
<dl class="bindings">
<dt><kbd class="osc">/strip/name <em>ssid</em> <em>track_name</em></kbd></dt>
<dd>where <em>track_name</em> is a string representing the name of the track
<dd>where <em>mute_st</em> is a bool/int representing the actual mute state of the track</dd>
<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 actual solo state of the track</dd>
+ <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. True/1 meaning the track is force to monitor input</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. True/1 meaning the track is force to monitor disk,
+ where both disk and input are false/0, auto monitoring is used.</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 actual rec state of the track</dd>
<dt><kbd class="osc">/strip/gain <em>ssid</em> <em>gain</em></kbd></dt>
--- /dev/null
+---
+layout: default
+title: Calculating Feedback and Strip-types Values
+---
+
+<p><em>/set_surface</em> has two values the user needs to calculate before
+ use. In general these will not be calculated at run time, but
+ beforehand. There may be more than one button with different values
+ to turn various kinds of feedback on or off or to determine which
+ kinds of strips are currently viewed/controlled.
+</p>
+<p>Both ,<em>feedback</em> and <em>strip-types</em> use bitsets to keep
+ track what they are doing. Any number in a computer is made out of
+ bits that are on or off, but we represtent them as normal base 10
+ numbers. Any one bit turned on will add a unique value to the
+ number as a whole. So for each kind of feedback or strip type
+ to be used, that number should be added to the total.</p>
+<h3>strip_types</h3>
+<p>
+ 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>
+ <ul>
+ <li>
+ 1 - AudioTracks.
+ </li>
+ <li>
+ 2 - MidiTracks.
+ </li>
+ <li>
+ 4 - AudioBusses.
+ </li>
+ <li>
+ 8 - MidiBusses.
+ </li>
+ <li>
+ 16 - VCAs.
+ </li>
+ <li>
+ 2048 - Master.
+ </li>
+ <li>
+ 4096 - Monitor.
+ </li>
+ <li>
+ 16384 - Selected.
+ </li>
+ <li>
+ 32768 - Hidden.
+ </li>
+ </ul>
+<p>
+ Some handy numbers to use might be: 15 (all tracks and busses), 31
+ (add VCAs to that). Master or Monitor strips are generally not useful
+ on a surface that has dedicated controls for these strips as there are
+ /master* and /monitor* commands already. However, on a surface with
+ just a bank of fader strips, adding master or monitor would allow
+ access to them within the banks. Selected would be useful for working
+ on a group or a set of user selected strips. Hidden shows strips the
+ GUI has hidden.
+</p>
+
+<h3>feedback</h3>
+<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.
+</p>
+ <ul>
+ <li>
+ 1 - Button status for strips.
+ </li>
+ <li>
+ 2 - Variable control values for strips.
+ </li>
+ <li>
+ 4 - Send meter values (not coded yet).
+ </li>
+ <li>
+ 8 - heartbeat to surface.
+ </li>
+ <li>
+ 16 - Enable master section feedback.
+ </li>
+ <li>
+ 32 - Send Bar and Beat (not coded yet).
+ </li>
+ <li>
+ 64 - Send timecode (not coded yet).
+ </li>
+ <li>
+ 128 - Send SSID as path extension.
+ </li>
+ </ul>
+<p>
+ So using a value of 19 would turn on feedback for strip and master
+ controls, but leave meters, timecode and bar/beat feedback off.
+</p>