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>
to valuse set by Aurdour's GUI or automation, What kind of math the
faders use and more.
</p>
+<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. 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 and special.</li>
+ <li><em>Feedback</em>: Off.</li>
+ <li><em>Fader Mode</em>: 0 - gain in dB</li>
+ </ul>
+ 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>
<em>feedback</em> <em>fadermode</em></kbd></dt>
- <dd>where <em>bank_size</em> is an int ranging from 0 to about 65000
- (16bits) The value 0 means no banking (or infinite bank size).
- <em>strip_types</em> (when implemented) is a bitset that will
- determine what kind of channels will be included in the bank.
- <em>feedback</em> is a bitset that determines what things should send
- feedback to the control surface. <em>fadermode</em> is a string that
- tells Ardour what kind of math the control surface's faders use.</dd>
+ <dd>
+ See below for an explaination of each parameter.
+ </dd>
</dl>
-<p class="note">
- <em>Strip Types</em> Coming soon... check for more info sometime.
+<h3>bank_size</h3>
+<p>
+ Bank Size is the number of channel strips the controller supports
+ without banking. Setting this to 0 turns banking off by setting the
+ bank size to infinite.
</p>
-<p class="note">
- <em>Feedback</em> This is an integer made up of bits. The easy way to
+<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.
+</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.
2 - Send meter values (not coded yet).
</li>
<li>
- 4 - Send timecode (not codeed yet).
+ 4 - Send timecode (not coded yet).
</li>
<li>
8 - Send Bar and Beat (not coded yet).
</li>
<li>
- 16 - Enable master section feedback (not coded yet).
+ 16 - Enable master section feedback.
</li>
- So using a value of 17 would turn on feedback for strip and master
- controls, but leave meters, timecode and bar/beat feedback off.
- </ul>
-</p>
-<p class="note">
- Gainmode is a string that is one of:
- <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>
</ul>
<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.
+ 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>If /set_surface is not sent, the default values of:
+<h3>gainmode</h3>
+<p>
+ Gainmode is a an int that acts as a bool:
<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>Feedback</em>: Off.</li>
- <li><em>Fader Mode</em>: ABS - Absolute gain.</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>
- These values give the same behaviour as prior versions of Ardour.
</p>
<h2>List of OSC messages</h2>
<h4>Master and Monitor strip control</h4>
<dl class="bindings">
- <dt><kbd class="osc">/masterabs <em>abs</em></kbd></dt>
- <dd>where <em>abs</em> is a float ranging from 0.0f to 2.0f</dd>
- <dt><kbd class="osc">/masterdB <em>dB</em></kbd></dt>
- <dd>where <em>dB</em> is a float ranging from -200f to 6f</dd>
- <dt><kbd class="osc">/masterfader <em>fader</em></kbd></dt>
- <dd>where <em>fader</em> is a float ranging from 0.0f to 1.0f</dd>
- <dt><kbd class="osc">/master1024 <em>fader</em></kbd></dt>
- <dd>where <em>fader</em> is an int ranging from 0 to 1023</dd>
+ <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/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>
<h4>Transport Control</h4>
<dl class="bindings">
<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>
<dl class="bindings">
<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>
<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/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/gaindB <em>rid</em> <em>gain_db</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>
+ <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. (since 4.1)</dd>
</dl>
<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 %}