OSC: new for 6.0
@ -10,13 +10,44 @@
|
||||
<em>Note:</em> OSC control has changed dramatically since Ardour 4.7.
|
||||
The Path structure has been completely redone, Banking has been introduced,
|
||||
The controller is now able to tell Ardour what kind of feedback it can
|
||||
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,
|
||||
work with (including bank size) and the gain controls have new math
|
||||
calculations. If you are using an Ardour version of 4.7 or less,
|
||||
please read <a
|
||||
href="@@osc-control-for-ardour-4.7-and-prior">
|
||||
Osc control in Ardour 4.7 and prior.</a>
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<a href="#set-up">Control Surface Set</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#global">Master or Global messages</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#transport">Transport Control</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#recording">Recording control</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#information">Transport Information</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#editing">Editing-related</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#Master-strip">Master and Monitor strip control</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#strips">Track specific operations</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#select">Selected Strip Operations</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#menu">Menu actions</a>
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
Ardour is probably one of the most OSC-controllable audio applications
|
||||
around, but as with all OSC-controllable apps, you can't do much without
|
||||
@ -39,7 +70,8 @@ here</em>"/></kbd>
|
||||
|
||||
<p>
|
||||
Ardour sends any feedback to the port and address that sent any
|
||||
feedback request. The port does not have to match Ardour's port. In
|
||||
feedback request or to a port set manually in the setup dialog.
|
||||
The port does not have to match Ardour's port. In
|
||||
fact it is better not to. This means that Ardour can deal with more
|
||||
than one controller at a time. The two controllers can bank
|
||||
independently and even use different math for faders. This could be
|
||||
@ -50,7 +82,7 @@ here</em>"/></kbd>
|
||||
OSC feedback In Ardour.</a>
|
||||
</p>
|
||||
|
||||
<h2>Control Surface Set Up</h2>
|
||||
<h2 id="set-up">Control Surface Set Up</h2>
|
||||
|
||||
<p>
|
||||
Control surface set up allows the controller to tell Ardour about its
|
||||
@ -65,9 +97,6 @@ here</em>"/></kbd>
|
||||
strip's controls are sent (or refreshed) as well. This will also
|
||||
refresh the Master feedback setup.
|
||||
</p>
|
||||
<p class="note">
|
||||
Surface Port Setting is available in the OSC GUI.
|
||||
</p>
|
||||
<p>
|
||||
As of Ardour 5.1, There is now a GUI setup in response to those using
|
||||
tablets with applications such as touchOSC or AndrOSC who need to be
|
||||
@ -79,24 +108,27 @@ here</em>"/></kbd>
|
||||
</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>: 0— All strip types except hidden and special.</li>
|
||||
<li><em>Feedback</em>: 0— All off.</li>
|
||||
<li><em>Fader Mode</em>: 0— gain in dB (not relevant with feedback off)</li>
|
||||
<li><em>Send Page Size</em>: 0— No Send Paging.</li>
|
||||
<li><em>Plugin Page Size</em>: 0— No Plugin Paging.</li>
|
||||
<li><em>Bank Size</em>: 0 — No banking (or infinite bank size).</li>
|
||||
<li><em>Strip Types</em>: 159 — All strip types except hidden and special.</li>
|
||||
<li><em>Feedback</em>: 0 — All off.</li>
|
||||
<li><em>Fader Mode</em>: 0 — gain in dB (not relevant with feedback off)</li>
|
||||
<li><em>Send Page Size</em>: 0 — No Send Paging.</li>
|
||||
<li><em>Plugin Page Size</em>: 0 — No Plugin Paging.</li>
|
||||
<li><em>reply port</em>: 8000 — control surface will receive feedback on port 8000</li>
|
||||
<li><em>Link set</em>: 0 — no linking for this control surface</li>
|
||||
<li><em>Link ID</em>: 0 — no link ID</li>
|
||||
</ul>
|
||||
</p>
|
||||
<p>
|
||||
These values give the same behaviour as prior versions of Ardour. (or the closest possible)
|
||||
</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> <em>send_page_size</em> <em>plugin_page_size</em></kbd></th>
|
||||
<td>
|
||||
See below for an explanation of each parameter.
|
||||
</td></tr>
|
||||
</table>
|
||||
|
||||
<kbd class="osc">/set_surface <em>bank_size</em> <em>strip_types</em>
|
||||
<em>feedback</em> <em>fadermode</em> <em>send_page_size</em>
|
||||
<em>plugin_page_size</em> <em>port</em> <em>linkset</em> <em>linkid</em></kbd>
|
||||
<p>
|
||||
See below for an explanation of each parameter.
|
||||
</p>
|
||||
<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.
|
||||
@ -166,13 +198,23 @@ here</em>"/></kbd>
|
||||
|
||||
<h3>gainmode</h3>
|
||||
<p>
|
||||
Gainmode is a an int that acts as a bool:
|
||||
Gainmode is an int:
|
||||
<ul>
|
||||
<li><em>0 (or false)</em> dB value as a float from -193 to +6. Sent as
|
||||
/strip/gain SSID 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 Float from 0 to 1. Sent as
|
||||
/strip/fader SSID value</li>
|
||||
<li><em>0:</em> dB value as a float from -193 to +6. Sent as
|
||||
<kbd class="osc">/strip/gain SSID value</kbd>. (-193 or below are the same as -inf)</li>
|
||||
<li><em>1:</em> A positional fader based on the same math
|
||||
as Ardour's GUI. A Float from 0 to 1. Sent as
|
||||
<kbd class="osc">/strip/fader SSID value</kbd>. At the same time the
|
||||
gain value in dB is sent to the channel name as text. The name
|
||||
will be restored after a short timeout.</li>
|
||||
<li><em>2:</em> A positional fader based on the same math
|
||||
as Ardour's GUI. A Float from 0 to 1. Sent as
|
||||
<kbd class="osc">/strip/fader SSID value</kbd>. At the same time
|
||||
the gain value in dB is sent as <kbd class="osc">/strip/gain SSID
|
||||
value</kbd>.</li>
|
||||
<li><em>3:</em> A positional fader based on the same math
|
||||
as Ardour's GUI. A Float from 0 to 1. Sent as
|
||||
<kbd class="osc">/strip/fader SSID value</kbd>.</li>
|
||||
</ul>
|
||||
</p>
|
||||
<p>
|
||||
@ -205,7 +247,43 @@ here</em>"/></kbd>
|
||||
<p class="note">
|
||||
Plugin page size can also be set with <em>/set_surface/plugin_page_size plugin_page_size.</em>
|
||||
</p>
|
||||
|
||||
<h3>port</h3>
|
||||
<p>
|
||||
The port the controller would like to receive it's feedback on. Starting
|
||||
with Ardour 6.0, the surface can directly set the manual port or set
|
||||
it's host to <code>auto</code> port mode.
|
||||
</p>
|
||||
<p>
|
||||
The value for <code>port</code> can be 0 for <code>auto</code> port mode or any
|
||||
port value above 1024. It is suggested not to use Ardour's port number
|
||||
of 3819 as controllers on the same machine that try to use the same
|
||||
port will fail.
|
||||
</p>
|
||||
<p>
|
||||
If the surface does not
|
||||
tell Ardour which port to use, the default is 8000 or the setting
|
||||
set up in the OSC setup GUI. There can only be one port setting per
|
||||
host. If that setting is <code>auto</code>, than more than one
|
||||
controller can be run on that host, but if a manual port is set there
|
||||
can only be one. In the case of <code>auto</code> mode, the control
|
||||
surface must set it's receive port to be the same as it's send port.
|
||||
If that is not possible, then manual port mode must be used. This
|
||||
allows a smart controller to use a number of ports on the same ip while
|
||||
a smartphone set up as a personal monitor control can use the default
|
||||
manual port.
|
||||
</p>
|
||||
<p class="note">
|
||||
The host's port can also be set with <em>/set_surface/port port.</em>
|
||||
</p>
|
||||
<p class="note">
|
||||
Changing the port will remove feedback from a device on the same host
|
||||
using a different port.
|
||||
</p>
|
||||
<h3>Link set and Link ID</h3>
|
||||
<p>
|
||||
Please see <a href="@@osc58-linking-surfaces">Linking Surfaces</a>
|
||||
For more information.
|
||||
</p>
|
||||
<h2>Querying Ardour for information</h2>
|
||||
<p>
|
||||
The control Surface may wish to control the type a frequency of
|
||||
@ -213,7 +291,14 @@ here</em>"/></kbd>
|
||||
href="@@osc58-querying-ardour">
|
||||
Querying Ardour with OSC.</a>
|
||||
</p>
|
||||
|
||||
<h2>Using more than one surface</h2>
|
||||
<p>
|
||||
Ardour can use more than one surface at a time that both control the
|
||||
same controls in Ardour. It is also possible to use two surfaces in
|
||||
concert with each other. See: <a
|
||||
href="@@osc58-linking-surfaces">
|
||||
Linking Surfaces</a> for more information.
|
||||
</p>
|
||||
<h2>List of OSC messages</h2>
|
||||
<p class="note">
|
||||
Parameter types show how the value will be used. However, they may
|
||||
@ -221,9 +306,9 @@ here</em>"/></kbd>
|
||||
href="@@osc58-parameter-types">
|
||||
Parameter Types in OSC.</a>
|
||||
</p>
|
||||
<h3>Master or Global messages</h3>
|
||||
<h3 id="global">Master or Global messages</h3>
|
||||
|
||||
<h4>Transport Control</h4>
|
||||
<h4 id="transport">Transport Control</h4>
|
||||
<table class="dl">
|
||||
<tr><th><kbd class="osc">/transport_stop</kbd></th>
|
||||
<td>Stops a rolling transport</td></tr>
|
||||
@ -249,6 +334,11 @@ here</em>"/></kbd>
|
||||
<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">/marker <em>marker</em></kbd></th>
|
||||
<td>Where <em>marker</em> may be a float or int of the nth marker or a
|
||||
string with the marker name to locate to (new Ardour 6.0). If the playhead
|
||||
is at a marker and the <em>marker</em> is unique, the marker at the playhead
|
||||
will be renamed to the string sent</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>
|
||||
@ -277,7 +367,7 @@ here</em>"/></kbd>
|
||||
<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-->
|
||||
See <a href="@@osc58-jog-modes#scrub">OSC Scrub Modes</a></td></tr>
|
||||
<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>
|
||||
@ -286,7 +376,7 @@ here</em>"/></kbd>
|
||||
OSC Jog Modes</a></td></tr>
|
||||
</table>
|
||||
|
||||
<h4>Recording control</h4>
|
||||
<h4 id="recording">Recording control</h4>
|
||||
<table class="dl">
|
||||
<tr><th><kbd class="osc">/toggle_punch_in</kbd></th>
|
||||
<td></td></tr>
|
||||
@ -296,7 +386,7 @@ here</em>"/></kbd>
|
||||
<td>Toggles master record enable</td></tr>
|
||||
</table>
|
||||
|
||||
<h4>Transport Information</h4>
|
||||
<h4 id="information">Transport Information</h4>
|
||||
<table class="dl">
|
||||
<tr><th><kbd class="osc">/transport_frame</kbd></th>
|
||||
<td>Ardour sends /transport_frame <em>current_frame</em></td></tr>
|
||||
@ -306,7 +396,7 @@ here</em>"/></kbd>
|
||||
<td>Ardour sends /record_enabled <em>recordenable_status</em></td></tr>
|
||||
</table>
|
||||
|
||||
<h4>Editing-related</h4>
|
||||
<h4 id="editing">Editing-related</h4>
|
||||
<table class="dl">
|
||||
<tr><th><kbd class="osc">/undo</kbd></th>
|
||||
<td></td></tr>
|
||||
@ -315,9 +405,11 @@ here</em>"/></kbd>
|
||||
<tr><th><kbd class="osc">/save_state</kbd></th>
|
||||
<td>(this is the regular <kbd class="menu">Session > Save</kbd>
|
||||
operation)</td></tr>
|
||||
<tr><th><kbd class="osc">/session_name <em>new_name</em></kbd></th>
|
||||
<td>Set session name to <em>new_name</em> (if new_name is legal and unique)</td></tr>
|
||||
</table>
|
||||
|
||||
<h4>Master and Monitor strip control</h4>
|
||||
<h4 id="Master-strip">Master and Monitor strip control</h4>
|
||||
<table class="dl">
|
||||
<tr><th><kbd class="osc">/master/gain <em>dB</em></kbd></th>
|
||||
<td>dB is a float indicating the desired gain in dB</td></tr>
|
||||
@ -347,10 +439,15 @@ here</em>"/></kbd>
|
||||
<td>state is an int of 0 or 1 where 1 is mono mode</td></tr>
|
||||
</table>
|
||||
|
||||
<h3>Track specific operations</h3>
|
||||
<h3 id="strips">Track specific operations</h3>
|
||||
<p>
|
||||
For each of the following, <em>ssid</em> is the Surface Strip ID for the track
|
||||
</p>
|
||||
<p>
|
||||
As of Ardour 6.0, the user may use a subset all available strips. See:
|
||||
<a href="@@osc58-custom-strips">
|
||||
Making a user selected strip list.</a>
|
||||
</p>
|
||||
<p class="note">
|
||||
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
|
||||
@ -376,6 +473,19 @@ here</em>"/></kbd>
|
||||
<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/spill <em>ssid</em></kbd></th>
|
||||
<td> Use strips this strip is grouped with or those that feed this bus
|
||||
(if this strip is a bus) or that this vca (if this is a VCA) controls.
|
||||
See <a href="#spill">Spill Strips</a> for more details</td></tr>
|
||||
<tr><th><kbd class="osc">/strip/hide <em>ssid</em> <em>y/n</em></kbd></th>
|
||||
<td>Where <em>y/n</em> = 1 hide this strip, 0 for show this track.
|
||||
<a href="@@osc58-feedback-and-strip-types-values#hidden">
|
||||
Hiding strips.</a></td></tr>
|
||||
<tr><th><kbd class="osc">/strip/name <em>ssid</em> <em>strip_name</em></kbd></th>
|
||||
<td>where <em>strip_name</em> is a string representing the desired name for the strip</td></tr>
|
||||
<tr><th><kbd class="osc">/strip/group <em>ssid</em> <em>group_name</em></kbd></th>
|
||||
<td>where <em>group_name</em> is a string representing the name of the group desired.
|
||||
See <a href="#groups">groups</a> for more details</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>
|
||||
@ -448,7 +558,7 @@ here</em>"/></kbd>
|
||||
<tr><th><kbd class="osc">/strip/name <em>ssid</em> <em>name</em></kbd></th>
|
||||
<td>where <em>name</em> is a string for the desired name of the track</td></tr>
|
||||
</table>
|
||||
<h3>Selected Strip Operations</h3>
|
||||
<h3 id="select">Selected Strip Operations</h3>
|
||||
<p>
|
||||
New for Ardour 5, A whole set of operations that work on the selected
|
||||
or expanded strip.
|
||||
@ -491,6 +601,56 @@ here</em>"/></kbd>
|
||||
Expanded. Setting to 0 resets the expansion to follow selection.</td></tr>
|
||||
<tr><th><kbd class="osc">/select/expand <em>y/n</em></kbd></th>
|
||||
<td>Where <em>y/n</em> = 1 for expanded mode, 0 for Select mode.</td></tr>
|
||||
<tr><th><kbd class="osc">/select/hide <em>y/n</em></kbd></th>
|
||||
<td>Where <em>y/n</em> = 1 hide this strip, 0 for show this track.
|
||||
<a href="@@osc58-feedback-and-strip-types-values#hidden">
|
||||
Hiding strips.</a></td></tr>
|
||||
<tr><th><kbd class="osc">/select/name <em>strip_name</em></kbd></th>
|
||||
<td>where <em>strip_name</em> is a string representing the desired name for the strip</td></tr>
|
||||
<tr><th><kbd class="osc">/select/comment <em>comment</em></kbd></th>
|
||||
<td>where <em>comment</em> is a string representing the desired comment for the strip</td></tr>
|
||||
<tr><th><kbd class="osc">/select/group <em>group_name</em></kbd></th>
|
||||
<td>where <em>group_name</em> is a string representing the name of the group desired.
|
||||
See <a href="#groups">groups</a> for more details</td></tr>
|
||||
<tr><th><kbd class="osc">/select/group/enable <em>state</em></kbd></th>
|
||||
<td>where <em>state</em> is an int representing the desired enable state
|
||||
of the group the selected strip is a part of</td></tr>
|
||||
<tr><th><kbd class="osc">/select/group/gain <em>state</em></kbd></th>
|
||||
<td>where <em>state</em> is an int which sets the gain sharing of the
|
||||
group the strip belongs to. See <a href="@@track-and-bus-groups">
|
||||
Track and Bus Groups</a> for more details</td></tr>
|
||||
<tr><th><kbd class="osc">/select/group/relative <em>state</em></kbd></th>
|
||||
<td>where <em>state</em> is an int which sets relative state of thew
|
||||
group the strip belongs to. See <a href="@@track-and-bus-groups">
|
||||
Track and Bus Groups</a> for more details</td></tr>
|
||||
<tr><th><kbd class="osc">/select/group/mute <em>state</em></kbd></th>
|
||||
<td>where <em>state</em> is an int which sets the mute sharing of the
|
||||
group the strip belongs to. See <a href="@@track-and-bus-groups">
|
||||
Track and Bus Groups</a> for more details</td></tr>
|
||||
<tr><th><kbd class="osc">/select/group/solo <em>state</em></kbd></th>
|
||||
<td>where <em>state</em> is an int which sets the solo sharing of the
|
||||
group the strip belongs to. See <a href="@@track-and-bus-groups">
|
||||
Track and Bus Groups</a> for more details</td></tr>
|
||||
<tr><th><kbd class="osc">/select/group/recenable <em>state</em></kbd></th>
|
||||
<td>where <em>state</em> is an int which sets the recenable sharing of the
|
||||
group the strip belongs to. See <a href="@@track-and-bus-groups">
|
||||
Track and Bus Groups</a> for more details</td></tr>
|
||||
<tr><th><kbd class="osc">/select/group/select <em>state</em></kbd></th>
|
||||
<td>where <em>state</em> is an int which sets the select sharing of the
|
||||
group the strip belongs to. See <a href="@@track-and-bus-groups">
|
||||
Track and Bus Groups</a> for more details</td></tr>
|
||||
<tr><th><kbd class="osc">/select/group/active <em>state</em></kbd></th>
|
||||
<td>where <em>state</em> is an int which sets the route active sharing of the
|
||||
group the strip belongs to. See <a href="@@track-and-bus-groups">
|
||||
Track and Bus Groups</a> for more details</td></tr>
|
||||
<tr><th><kbd class="osc">/select/group/color <em>state</em></kbd></th>
|
||||
<td>where <em>state</em> is an int which sets the color sharing of the
|
||||
group the strip belongs to. See <a href="@@track-and-bus-groups">
|
||||
Track and Bus Groups</a> for more details</td></tr>
|
||||
<tr><th><kbd class="osc">/select/group/monitoring <em>state</em></kbd></th>
|
||||
<td>where <em>state</em> is an int which sets the monitoring sharing of the
|
||||
group the strip belongs to. See <a href="@@track-and-bus-groups">
|
||||
Track and Bus Groups</a> for more details</td></tr>
|
||||
<tr><th><kbd class="osc">/select/recenable <em>y/n</em></kbd></th>
|
||||
<td>Where <em>y/n</em> is 1 for enabled and 0 for disabled</td></tr>
|
||||
<tr><th><kbd class="osc">/select/record_safe <em>y/n</em></kbd></th>
|
||||
@ -514,7 +674,20 @@ here</em>"/></kbd>
|
||||
<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>
|
||||
<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/vca <em>name</em> <em>state</em></kbd></th>
|
||||
<td>where <em>name</em> is a string with the name of the VCA, and
|
||||
<em>state</em> is an int that determines if the named VCA will control
|
||||
this strip. (Ardour 6.0)</td></tr>
|
||||
<tr><th><kbd class="osc">/select/vca/toggle <em>name</em></kbd></th>
|
||||
<td>where <em>name</em> is a string with the name of the VCA. This toggles the
|
||||
use of the named vca with this strip. Any trailing "[_]" will be ignored.
|
||||
(Ardour 6.0)</td></tr>
|
||||
<tr><th><kbd class="osc">/select/spill</kbd></th>
|
||||
<td> show only strips this strip is grouped with or
|
||||
those that feed this bus or that this vca controls.
|
||||
See <a href="#spill">Spill Strips</a> for more details</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>
|
||||
@ -545,6 +718,8 @@ here</em>"/></kbd>
|
||||
<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/activate", <em>state</em></kbd></th>
|
||||
<td>where <em>state</em> is an int or float with the desired state of the current plugin activation.(new Ardour 6.0)</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>
|
||||
@ -554,7 +729,85 @@ here</em>"/></kbd>
|
||||
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>
|
||||
<h4 id="groups">Using groups with strip and select (new for Ardour 6.0)</h4>
|
||||
<p class="note">
|
||||
No grouping will occure unless <code>use_group</code> is set either
|
||||
by using <kbd class="osc">/set_surface/strip_types</kbd> with the use groups bit set
|
||||
or by using <kbd class="osc">/use_group i 1</kbd>.
|
||||
</p>
|
||||
<p>
|
||||
The result for <kbd class="osc">/strip/group</kbd> or
|
||||
<kbd class="osc">/select/group</kbd> is determined by the parameter
|
||||
passed in the command and the current group and available list of
|
||||
groups. The group name the control surface sends may be:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
"none", "" or " " will remove this strip from this group. If this
|
||||
was the only strip in this group, the group is deleted. Some
|
||||
OSC controllers have trouble sending an empty string and a
|
||||
list of groups contains "none" as well so a dropdown can just
|
||||
send a text item and work.
|
||||
</li>
|
||||
<li>
|
||||
The name of a group this strip does not belong to will remove
|
||||
this strip from it's current group and add it to the named group.
|
||||
If this strip was the only strip in the group it was removed from,
|
||||
that group will be deleted.
|
||||
</li>
|
||||
<li>
|
||||
An unused name when this strip is not part of a group will create
|
||||
a new group with the group name sent and add this strip to that
|
||||
group
|
||||
</li>
|
||||
<li>
|
||||
An unused name when this strip is already a part of a group will
|
||||
rename this group to the name sent.
|
||||
</li>
|
||||
</ul>
|
||||
<p>To create a new group from a strip that is already joined to a group,
|
||||
the strip must first remove itself from the current group.
|
||||
</p>
|
||||
<h4 id="spill">Spill Strips</h4>
|
||||
<p><kbd class="osc">/select/spill</kbd> or <kbd class="osc">/strip/spill</kbd>
|
||||
will:</p>
|
||||
<ul>
|
||||
<li>
|
||||
set the current set of strips in use to include only the strips
|
||||
that are a part of the group the strip is a part of so long
|
||||
as that strip is a track.</li>
|
||||
<li>
|
||||
set the current set of strips to the set of strips that feed
|
||||
this strip if it is a bus. In the case where this strip is
|
||||
being fed by sends rather than strip outputs, the strips that
|
||||
feed this bus will have their names set to the name of the strip
|
||||
with <em>-send</em> appended to it and the fader, pan and mute will
|
||||
control the send rather than the strip. The other strip controls
|
||||
will be disabled in this mode. This only happens when the strip
|
||||
that calls spill is a bus. In the case where a strip that is part
|
||||
of a group is chosen as above where the group all sends to a common
|
||||
bus this will not happen. This can be useful for a group that uses
|
||||
"Add New Aux Bus" to switch from sends to faders.</li>
|
||||
<li>
|
||||
set the current set of strips to the set of strips that are
|
||||
controled by the VCA if this strip is a VCA.</li>
|
||||
</ul>
|
||||
<p>spill/group, spill/bus or spill/vca can also be used to force
|
||||
the type of spilling that is done. This may be useful if the strip
|
||||
is a bus that is a part of a group and the group variation is required.</p>
|
||||
<p>In all cases, if there is a bus or VCA attached to the group of strips
|
||||
it will be included as well.</p>
|
||||
<P>What is less obvious, is how to return to the normal set of strips.
|
||||
There are a number of ways of doing so depending on the operator's wishes.
|
||||
The most obvious way is to use <kbd class="osc">/set_surface/strip_types</kbd>
|
||||
to set the strip list as desired. It is expected that a control surface
|
||||
may have more than one strip types button in any case to see only
|
||||
inputs or only busses etc and of course one to give a full mix. Another
|
||||
option is to reselect the custom set of strips with
|
||||
<kbd class="osc">/strip/custom/mode <em>mode</em></kbd>.
|
||||
</p>
|
||||
|
||||
<h3 id="menu">Menu actions</h3>
|
||||
<p>
|
||||
Every single menu item in Ardour's GUI is accessible via OSC. There is
|
||||
a single common syntax to trigger the action as if it was selected
|
||||
|
142
include/osc58-custom-strips.html
Normal file
@ -0,0 +1,142 @@
|
||||
|
||||
<p>
|
||||
It is sometimes desirable to work only with a set of strips out of the whole
|
||||
list of available strips. This could be in any case where there is more than
|
||||
one engineer and one of them is responsible for only a group of strips such
|
||||
as all percussion, all sound effects, choir only, orchestra only, etc.
|
||||
</p>
|
||||
<p class="note">
|
||||
New Ardour 6.0
|
||||
</p>
|
||||
<p>
|
||||
After a strip is added to the custom strip list, it will retain the same
|
||||
SSID for the life of the session so long as banking is not used. If a strip
|
||||
is removed it will leave a gap in the SSID list. Custom strip lists do
|
||||
not survive a session reload and need to be recreated at session start.
|
||||
</p>
|
||||
<p class="note">
|
||||
A custom strip list will only affect the surface that sets it. Any
|
||||
other surface will continue to operate on all strips or may have it's
|
||||
own set of custom strips.
|
||||
</p>
|
||||
<p>
|
||||
The commands below control the use of a custom strip set.
|
||||
</p>
|
||||
|
||||
<table class="dl">
|
||||
<tr><th><kbd class="osc">/strip/listen <em>ssid</em> <em>...</em></kbd></th>
|
||||
<td>where <em>ssid</em> is an integer or list of integers representing
|
||||
tracks to add to the custom track list</td></tr>
|
||||
<tr><th><kbd class="osc">/strip/ignore <em>ssid</em> <em>...</em></kbd></th>
|
||||
<td>where <em>ssid</em> is an integer or list of integers representing
|
||||
tracks to remove from the custom track list</td></tr>
|
||||
<tr><th><kbd class="osc">/strip/custom/mode <em>mode</em></kbd></th>
|
||||
<td>where <em>mode</em> is an integer representing the desired mode
|
||||
of custom strips.</td></tr>
|
||||
<tr><th><kbd class="osc">/strip/custom/clear </kbd></th>
|
||||
<td>disables custom strips and clears the previously set custom strip list</td></tr>
|
||||
</table>
|
||||
|
||||
<h2>Setting up a custom strip set</h2>
|
||||
<p>
|
||||
The control surface may set up a custom strip list all at once or one
|
||||
strip at a time. A control surface that uses banking would probably
|
||||
be best served by setting up one strip at a time, while one that does
|
||||
no banking (bank_size = 0) and uses <code>/strip/list</code> would
|
||||
probably be best served by having them all selected at once.
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<p>One at a time example:</p>
|
||||
<code>/strip/listen 2</code>
|
||||
<p>adds strip 2 to custom strip list</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Many at a time example:</p>
|
||||
<code>/strip/listen 2 4 6 8</code>
|
||||
<p>Adds strips 2, 4, 6 and 8 to the custom strip list</p>
|
||||
</li>
|
||||
</ul>
|
||||
<p class="note">
|
||||
<code>/strip/listen</code> will only work with custom enable turned off.
|
||||
Using <code>/strip/listen</code> while in custom mode will have no effect.
|
||||
</p>
|
||||
<h2>Using the custom strip set</h2>
|
||||
<p>
|
||||
Once the custom strip set has been set up as shown above, it must be enabled.
|
||||
This is done from the control surface with the <code>/strip/custom/mode <em>mode</em></code>
|
||||
OSC command. <em>Mode</em> may be <em>0</em>: Off, <em>1</em>: Use custom
|
||||
strip set in selected order or <em>2</em>: Use custom strip set
|
||||
in mixer order. <code>/strip/list</code> will now show the custom strip list
|
||||
and and its SSIDs. No more strips may be added to the custom strip list while
|
||||
in custom mode. To add more strips to the end of the list, first send the
|
||||
<code>/strip/custom/mode 0</code> then more strips can be added to the end
|
||||
of the list. After adding the next strips send the
|
||||
<code>/strip/custom/mode <em>mode</em></code>
|
||||
to re-enable custom mode. It is possible to switch back and forth between
|
||||
normal and custom mode as desired.
|
||||
</p>
|
||||
<h3>Custom Strip ordering</h3>
|
||||
<p>
|
||||
The ordering of strips in the custom strip set is affected by both the
|
||||
custom <code>mode</code> and the <code>bank_size</code> setting for the
|
||||
surface.
|
||||
</p>
|
||||
<p class="note">
|
||||
A <code>bank_size</code> of <em>0</em> is also described as having
|
||||
banking turned off. In such a case all strips are shown.
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<h4>Mode 0</h4>
|
||||
<p>
|
||||
Custom mode <em>Off</em>. All strips will be used as set by
|
||||
<code>strip_types</code>.
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<h4>Mode 1</h4>
|
||||
<p>
|
||||
If <code>mode</code> is set to <em>1</em> the custom strip ordering
|
||||
is always "first come, first served". That is,
|
||||
<code>/strip/listen 2 4</code> followed by <code>/strip/listen 1 3</code>
|
||||
will result in strip 2 showing as SSID 1 , strip 4 as SSID 2, strip 1
|
||||
as SSID 3 and strip 3 as SSID 4 when in custom mode <em>1</em>. Once these SSID are set
|
||||
in this way, they will remain linked to this SSID with banking turned off and
|
||||
will at least remain in the same order with banking on.
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<h4>Mode 2</h4>
|
||||
<p>
|
||||
If <code>mode</code> is set to <em>2</em> the custom strip ordering
|
||||
will be set to mixer order and any deleted strips will not leave
|
||||
a blank strip in the set.
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<h4>With banking on</h4>
|
||||
<p>
|
||||
If <code>bank_size</code> is set to greater than <em>0</em>, Then
|
||||
banking is turned on. In this case <code>strip_types</code> will
|
||||
be honored and only strips from the custom strip set that match
|
||||
<code>strip_types</code> will be shown in a bank. However, the
|
||||
order that the strips appear will still be affected by the
|
||||
<code>mode</code>.
|
||||
</p>
|
||||
</li>
|
||||
</ul>
|
||||
<h2>Removing a strip from the custom strip list</h2>
|
||||
<p>
|
||||
<code>/strip/ignore ssid</code> will remove that strip from the
|
||||
custom strip list if custom strip use is enabled. In <code>mode</code>
|
||||
<em>1</em> there will be a blank strip at that SSID and all other
|
||||
SSIDs will remain the same for no banking. With banking
|
||||
in use, <code>strip_types</code> are honored and so removed strips
|
||||
which have no type, will not be shown.
|
||||
</p>
|
||||
<p>
|
||||
<code>/strip/custom/clear</code> will remove
|
||||
all strips and SSIDs allowing custom strip lists to be restarted from
|
||||
SSID 1. Custom <code>mode</code> will be set to <em>0</em>.
|
||||
</p>
|
@ -68,6 +68,7 @@
|
||||
or the control should only affect the strip the control is applied to.
|
||||
The <code>/use_group f state</code> command can be used to temporarily
|
||||
change this on the fly.
|
||||
</p>
|
||||
<p>
|
||||
Some handy numbers to use might be: 15 (all tracks and busses -
|
||||
1 + 2 + 4 + 8), 31
|
||||
@ -77,9 +78,39 @@
|
||||
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.
|
||||
strips the GUI has hidden. As such, a control surface will likely have
|
||||
a number of buttons with different strip_types for convenience.
|
||||
<ul>
|
||||
<li>
|
||||
Mixer - All strip types <kbd class="osc">/set_surface/strip_types 159</kbd>
|
||||
</li>
|
||||
<li>
|
||||
Audio Tracks - Just Audio tracks that can record <kbd class="osc">/set_surface/strip_types 1</kbd>
|
||||
</li>
|
||||
<li>
|
||||
MIDI Tracks - Tracks with at least 1 MIDI input that can record
|
||||
<kbd class="osc">/set_surface/strip_types 2</kbd>
|
||||
</li>
|
||||
<li>
|
||||
Busses - A mix of all busses, possibly including VCAs
|
||||
<kbd class="osc">/set_surface/strip_types 156</kbd>
|
||||
</li>
|
||||
<li>
|
||||
Selected - All strips that are currently selected
|
||||
<kbd class="osc">/set_surface/strip_types 256</kbd>
|
||||
</li>
|
||||
<li>
|
||||
Hidden - All hidden strips <kbd class="osc">/set_surface/strip_types 512</kbd>
|
||||
</li>
|
||||
<li>
|
||||
Custom - see <a href="@@osc58-custom-strips">
|
||||
Making a user selected strip list.</a>
|
||||
<kbd class="osc">/strip/custom/mode 1</kbd>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</p>
|
||||
<p class-"note">
|
||||
<p class="note">
|
||||
Audio Aux? say what? I am sure most people will have noticed that they
|
||||
can find no <em>Aux</em> strips in the Ardour mixer. There are none.
|
||||
There are busses that can be used a number of ways. From analog days,
|
||||
@ -94,7 +125,39 @@
|
||||
performer would be able to mix their own monitor. The user is free
|
||||
to enable both busses and auxes if they would prefer.
|
||||
</p>
|
||||
|
||||
<h3 id="hidden">Using hidden strips</h3>
|
||||
<p>
|
||||
Ardour allows any of it's strips to be hidden so that they do not show
|
||||
up on the GUI mixer or editor. OSC follows the GUI by default and will
|
||||
not show hidden strips. As of Ardour 6.0 the OSC commands include
|
||||
<kbd class="osc">/select/hide <em>y/n</em></kbd> for the selected
|
||||
strip and <kbd class="osc">/strip/hide <em>ssid</em> <em>y/n</em></kbd>
|
||||
for any strip. This allows the control surface to hide or unhide a strip.
|
||||
What may not be obvious is that hiding a strip makes it disappear and
|
||||
become unselected. So if a selected strip is hidden, it is no longer
|
||||
selected and the select channel will show the default select strip
|
||||
(Master). In order to show a hidden strip, the hidden strips need to
|
||||
be shown first using the <kbd class="osc">/set_surface/strip_types 512</kbd>
|
||||
command to show only hidden strips. Then use the
|
||||
<kbd class="osc">/strip/hide <em>SSID</em> 0</kbd> or
|
||||
<kbd class="osc">/select/hide 0</kbd>
|
||||
to show that strip. Of course, because only hidden strips are showing,
|
||||
the strip you have set to no long hide will seem to vanish. A
|
||||
<kbd class="osc">/set_surface/strip_types 159</kbd> will then show
|
||||
the default strip types or replace the 159 with the desired strip_types.
|
||||
</p>
|
||||
<p class="note">
|
||||
When hiding more than one strip in a row, check the strip name before
|
||||
hiding as the strips will move as each strip is hidden just as it does
|
||||
with the GUI mixer. So to hide strips 5, 6 and 7, the hide button
|
||||
for <code>ssid</code> 5 is pressed 3 times. A more intuitive method
|
||||
would be to hide strips from right to left (7, 6 and 5) which will
|
||||
work as expected.
|
||||
<p>
|
||||
In short, shown strips can only be hidden when they are viewable and
|
||||
hidden strip can only shown (or un-hid) when strip_types include hidden
|
||||
strips.
|
||||
</p>
|
||||
<h2 id="feedback">feedback</h2>
|
||||
<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
|
||||
|
@ -118,6 +118,9 @@
|
||||
<td><em>state</em> is true when transport is moving forward but not at speed 1.0</td></tr>
|
||||
<tr><th><kbd class="osc">/rewind <em>state</em></kbd></th>
|
||||
<td><em>state</em> is true when transport speed is less than 0.0</td></tr>
|
||||
<tr><th><kbd class="osc">/marker <em>position</em></kbd></th>
|
||||
<td><em>position</em> is a string in the form <kbd class="osc">previous <-> next</kbd>
|
||||
or <kbd class="osc">current</kbd> (new Ardour 6.0)</td></tr>
|
||||
<tr><th><kbd class="osc">/loop_toggle <em>state</em></kbd></th>
|
||||
<td><em>state</em> is true when loop mode is true</td></tr>
|
||||
<tr><th><kbd class="osc">/cancel_all_solos <em>state</em></kbd></th>
|
||||
@ -183,9 +186,10 @@
|
||||
<td>where <em>LED</em> is a bool that indicates another bank_up operation is possible.</td></tr>
|
||||
<tr><th><kbd class="osc">/bank_down <em>LED</em></kbd></th>
|
||||
<td>where <em>LED</em> is a bool that indicates another bank_down operation is possible.</td></tr>
|
||||
<tr><th><kbd class="osc">/strip/name <em>ssid</em> <em>track_name</em></kbd></th>
|
||||
<td>where <em>track_name</em> is a string representing the name of the track
|
||||
(note there is no corresponding command to set the track name)</td></tr>
|
||||
<tr><th><kbd class="osc">/strip/name <em>ssid</em> <em>strip_name</em></kbd></th>
|
||||
<td>where <em>strip_name</em> is a string representing the name of the strip</td></tr>
|
||||
<tr><th><kbd class="osc">/strip/group <em>ssid</em> <em>group_name</em></kbd></th>
|
||||
<td>where <em>group_name</em> is a string representing the name of the group the track belongs to</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 actual mute state of the track</td></tr>
|
||||
<tr><th><kbd class="osc">/strip/solo <em>ssid</em> <em>solo_st</em></kbd></th>
|
||||
@ -241,8 +245,54 @@
|
||||
<tr><th><kbd class="osc">/select/send_name <em>sendid</em> <em>send_name</em></kbd></th>
|
||||
<td>where <em>send_name</em> is a string representing the name of the buss
|
||||
this send goes to.</td></tr>
|
||||
<tr><th><kbd class="osc">/select/group/enable <em>state</em></kbd></th>
|
||||
<td>where <em>state</em> is an int representing the current enable state
|
||||
of the group the selected strip is a part of</td></tr>
|
||||
<tr><th><kbd class="osc">/select/group/gain <em>state</em></kbd></th>
|
||||
<td>where <em>state</em> is an int which shows the gain sharing of the
|
||||
group the strip belongs to. See <a href="@@track-and-bus-groups">
|
||||
Track and Bus Groups</a> for more details</td></tr>
|
||||
<tr><th><kbd class="osc">/select/group/relative <em>state</em></kbd></th>
|
||||
<td>where <em>state</em> is an int which shows relative state of thew
|
||||
group the strip belongs to. See <a href="@@track-and-bus-groups">
|
||||
Track and Bus Groups</a> for more details</td></tr>
|
||||
<tr><th><kbd class="osc">/select/group/mute <em>state</em></kbd></th>
|
||||
<td>where <em>state</em> is an int which shows the mute sharing of the
|
||||
group the strip belongs to. See <a href="@@track-and-bus-groups">
|
||||
Track and Bus Groups</a> for more details</td></tr>
|
||||
<tr><th><kbd class="osc">/select/group/solo <em>state</em></kbd></th>
|
||||
<td>where <em>state</em> is an int which shows the solo sharing of the
|
||||
group the strip belongs to. See <a href="@@track-and-bus-groups">
|
||||
Track and Bus Groups</a> for more details</td></tr>
|
||||
<tr><th><kbd class="osc">/select/group/recenable <em>state</em></kbd></th>
|
||||
<td>where <em>state</em> is an int which shows the recenable sharing of the
|
||||
group the strip belongs to. See <a href="@@track-and-bus-groups">
|
||||
Track and Bus Groups</a> for more details</td></tr>
|
||||
<tr><th><kbd class="osc">/select/group/select <em>state</em></kbd></th>
|
||||
<td>where <em>state</em> is an int which shows the select sharing of the
|
||||
group the strip belongs to. See <a href="@@track-and-bus-groups">
|
||||
Track and Bus Groups</a> for more details</td></tr>
|
||||
<tr><th><kbd class="osc">/select/group/active <em>state</em></kbd></th>
|
||||
<td>where <em>state</em> is an int which shows the route active sharing of the
|
||||
group the strip belongs to. See <a href="@@track-and-bus-groups">
|
||||
Track and Bus Groups</a> for more details</td></tr>
|
||||
<tr><th><kbd class="osc">/select/group/color <em>state</em></kbd></th>
|
||||
<td>where <em>state</em> is an int which shows the color sharing of the
|
||||
group the strip belongs to. See <a href="@@track-and-bus-groups">
|
||||
Track and Bus Groups</a> for more details</td></tr>
|
||||
<tr><th><kbd class="osc">/select/group/monitoring <em>state</em></kbd></th>
|
||||
<td>where <em>state</em> is an int which shows the monitoring sharing of the
|
||||
group the strip belongs to. See <a href="@@track-and-bus-groups">
|
||||
Track and Bus Groups</a> for more details</td></tr>
|
||||
<tr><th><kbd class="osc">/select/vcas <em>name</em> <em>state</em> ...</kbd></th>
|
||||
<td>where <em>name</em> is a string with the name of the VCA, and
|
||||
<em>state</em> is an int that determines if the named VCA will control
|
||||
this strip. Note that this lists all VCAs in a session. (Ardour 6.0)</td></tr>
|
||||
</table>
|
||||
<h3>Menu actions</h3>
|
||||
<p class="note">
|
||||
There is no feedback for Menu actions.
|
||||
</p>
|
||||
<p>
|
||||
Every single menu item in Ardour's GUI is accessible via OSC. However,
|
||||
there is no provision for returning the state of anything set this way.
|
||||
|
170
include/osc58-linking-surfaces.html
Normal file
@ -0,0 +1,170 @@
|
||||
|
||||
<p>
|
||||
As of Ardour 6.0, Ardour provides the possibility of linking two or
|
||||
more surface to work as one surface. This means that two surfaces,
|
||||
one with 8 strips and one with 6 strips would look like a single 14
|
||||
strip surface. A <code>/bank_up</code> or down on either surface with bank the two
|
||||
so that they bank in 14 strip increments.
|
||||
</p>
|
||||
<p class="note">
|
||||
Ardour 5.0 to 5.12 can use two surfaces as shown in <a href="#example3">Example 3</a>.
|
||||
</p>
|
||||
<h2>Surface Linking Concepts</h2>
|
||||
<p>
|
||||
<ul>
|
||||
<li>A group of surfaces linked together are called a <code>Link Set</code>. A
|
||||
<code>Link Set</code> is called by a positive integer number.</li>
|
||||
<li>There may be more than one <code>Link Set</code> at a time used
|
||||
with Ardour.</li>
|
||||
<li>Each surface inside a <code>Link Set</code> has a <code>Link Id</code>.</li>
|
||||
<li>The <code>Link ID</code> is a positive integer numbering consecutive
|
||||
surfaces starting from 1 for the left most and going up to the right. So
|
||||
if there are three surfaces in a <code>Link Set</code>, The left surface
|
||||
will have a <code>Link Id</code> of <em>1</em>, the middle surface will
|
||||
have a <code>Link Id</code> of <em>2</em> and the right surface will
|
||||
have a <code>Link Id</code> of <em>3</em>.</li>
|
||||
<li>There may not be skipped <code>Link Ids</code>. If there are a
|
||||
surface 1 and 3, there must also be a surface 2. Surface 1 must always
|
||||
exist. If any surface is missing, the track names will indicate the
|
||||
<code>Link Id</code> of the first device missing.</li>
|
||||
<li>In most things, surfaces are separate and can do things independently.
|
||||
<ul>
|
||||
<li>Each surface can have a different <code>Gain Mode</code></li>
|
||||
<li>Each surface has it's own <code>Bank Size</code></li>
|
||||
<li>Each surface has it's own <code>Feedback</code></li>
|
||||
<li>Each surface has it's own <em>Expanded Strip</em></li>
|
||||
</ul>
|
||||
However, some things are shared by all surfaces in a <code>Link Set</code>:
|
||||
<ul>
|
||||
<li>Banking is done as a unit and each surface bank start is
|
||||
determined by the <code>Link Set</code>. Any surface can
|
||||
<em>Bank Up</em> or <em>Bank Down</em>.</li>
|
||||
<li>All surfaces share the same <em>strip types</em>. Setting
|
||||
<em>Strip Types</em> in any one surface sets it for the whole
|
||||
<code>Link Set</code>.</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</p>
|
||||
<h2>Setting Up a Link Set</h2>
|
||||
<p>
|
||||
There are only two OSC commands needed to set up a <code>Link Set</code>:
|
||||
</p>
|
||||
<table class="dl">
|
||||
<tr><th><kbd class="osc">/link/set <em>linkset</em> <em>linkid</em></kbd></th>
|
||||
<td>Where <em>linkset</em> is the Link Set this surface will be added to and
|
||||
<em>linkid</em> is the Link Id of this surface.</td></tr>
|
||||
<tr><th><kbd class="osc">/link/bank_size <em>linkset</em> <em>banksize</em></kbd></th>
|
||||
<td>Where <em>linkset</em> is the Link Set this surface will be added to and
|
||||
<em>banksize</em> is the target bank size for this Link Set. This Link Set
|
||||
will not operate unless the total strip numbers is <em>banksize</em>.</td></tr>
|
||||
</table>
|
||||
<p>
|
||||
It is also possible to send link set and ID values as part of a
|
||||
<code>/set_surface</code> command.
|
||||
|
||||
<kbd class="osc">/set_surface <em>bank_size</em> <em>strip_types</em>
|
||||
<em>feedback</em> <em>fadermode</em> <em>send_page_size</em> <em>plugin_page_size</em>
|
||||
<em>port</em> <em>linkset</em> <em>linkid</em></kbd>
|
||||
|
||||
</p>
|
||||
<p> The <code>/link/bank_size</code> command is optional. Ardour defaults
|
||||
to linking with auto sizing banks where the <code>Link Set</code>
|
||||
bank size is determined by adding the available surface bank sizes
|
||||
together. So long as the <code>Link Ids</code> are consecutive, the
|
||||
<code>Link Set</code> is considered ready. If the surface wants to make
|
||||
sure all surfaces are present before the <code>Link Set</code> is
|
||||
ready, the <code>/link/bank_size</code> command will not allow the
|
||||
<code>Link Set</code> to be ready until the surface bank sizes add up
|
||||
to the <code>Link Set's</code> bank size.
|
||||
</p>
|
||||
<p>
|
||||
Setting up a linked set of surfaces is a simple as choosing a number
|
||||
for the <code>Link Set</code>, <em>1</em> will work fine if there is
|
||||
only one linked set of surfaces, and giving each surface a <code>
|
||||
Link Id</code>. This can be done with the same method as the <code>
|
||||
/set_surface</code> command is sent or by having each surface send
|
||||
the <code>/link/set</code> command. As with other commands, the first
|
||||
parameter (linkset) may be sent inline: <code>/link/set/1 <em>linkid</em></code>
|
||||
for those surfaces unable to send multi parameter OSC messages.
|
||||
</p>
|
||||
<h2>Example Multi Device Surfaces</h2>
|
||||
<h3>Example 1</h3>
|
||||
<p>
|
||||
Assuming two devices, the left device has 8 strips and very little
|
||||
else on it's main page or tab. It may have secondary pages or tabs or
|
||||
a physical control section to access the extra selected strip controls
|
||||
like send levels or plugin controls. The right device has only 6
|
||||
strips because it also has Master and Monitor channel as well as
|
||||
transport controls. It also has a select section. As part of it's
|
||||
Global controls it has a Bank up and a bank down button. (there is
|
||||
nothing stopping the left surface from also having banking buttons)
|
||||
The left surface will be linkid <em>1</em> and the right surface will be
|
||||
linkid <em>2</em>. For this example the linkset will be <em>1</em>.
|
||||
</p>
|
||||
<p>
|
||||
Device <em>1</em> will have a "Connect" button that will send:
|
||||
<code>/set_surface iiiiiiiii 8 159 8323 0 0 0 0 1 1</code> and the second
|
||||
device will have two buttons. One will be a "Connect" button that
|
||||
sends: <code>/set_surface iiii 6 159 8403 0</code> and the other
|
||||
will be a "Link" button that will send: <code>/link/set ii 1 2</code>.
|
||||
These devices use two different methods of setup both to illustrate
|
||||
their use and because this will allow them to be used unlinked. Device
|
||||
<em>1</em> even as a linked device will operate on it's own as a one
|
||||
device <code>Link Set</code>. However, device <em>2</em> would show
|
||||
an error condition if device <em>1</em> is not present so we have a
|
||||
seperate "Link" button. This is an optional way of doing things and
|
||||
both could use just one "Connect" button or both could have a separate
|
||||
"Link" button. Device <em>2</em> could also have an "Unlink" button
|
||||
that sends: <code>/link/set ii 0 0</code> if desired.
|
||||
</p>
|
||||
<p>
|
||||
To use these two devices as one, the "Connect" button on both devices and
|
||||
the "Link" button on the second device are pressed in any order. The two
|
||||
surfaces will now act as one surface with 14 bankable strips.
|
||||
</p>
|
||||
<h3>Example 2</h3>
|
||||
<p>
|
||||
This example will be more complex and use a total of five devices. The
|
||||
first three devices will form Link Set <em>1</em> and have 8 strips each.
|
||||
They are similar to the left device above, but will only show "input"
|
||||
strips. The last two devices will form Link Set <em>2</em>. Device <em>1</em>
|
||||
will be similar to the first three devices with 8 strips and the other
|
||||
will be similar to the 6 strip device in example 1 having Master and
|
||||
transport controls as well. The devices in Link Set 2 will be set up
|
||||
to only use bus and VCA strips and so don't need to include record
|
||||
enable buttons etc. It is expected that all devices have
|
||||
banking buttons, but at least one surface in each Link Set would have
|
||||
to have them.
|
||||
</p>
|
||||
<p>
|
||||
Devices 1 to 3 (from left to right) would each have a "Connect"
|
||||
button that sends: <code>/set_surface iiiiiiiii 8 3 8323 0 0 0 0 1 n</code>
|
||||
where <em>n</em> is the position or Link Id of that surface from 1 to
|
||||
3, left to right. Device 4 would use: <code>/set_surface iiiiiiiii 8
|
||||
156 8323 0 0 0 0 2 1</code> and device 5 would use: <code>/set_surface
|
||||
iiiiiiiii 6 156 8403 0 0 0 0 2 2</code>.
|
||||
</p>
|
||||
<p>
|
||||
As before, the "Connect" on each surface is pressed in any order and
|
||||
the resulting surface would have 24 input strips where the banking
|
||||
buttons on any of the first three surfaces would bank those three
|
||||
surfaces 24 strips at a time through the input strips (assuming more
|
||||
than 24 input strips are available). The last two strips would form
|
||||
a master and bus section with 14 bus only strips that will bank through
|
||||
the bus strips (assuming more than 14 bus strips). This combined
|
||||
surface would have 38 strips (plus Master) all together.
|
||||
</p>
|
||||
<h2 id="example3">Example 3</h2>
|
||||
<p>
|
||||
In this example there are two devices as in example 1. However, the
|
||||
goal is to have only input strips on the left device and only bus strips,
|
||||
Master and transport controls on the right device. In this case linking
|
||||
is not needed. The left device would use a "Connect" button that sent:
|
||||
<code>/set_surface iiii 8 3 8323 0</code> and the right device would
|
||||
use a "Connect" button that sent: <code>/set_surface iiii 6 156 8403 0</code>.
|
||||
The banking buttons on the left surface would bank through the input
|
||||
channels and the banking buttons on the right surface would bank
|
||||
through the buses and VCAs. As this example does not use Ardours OSC
|
||||
linking commands, it will also work with Ardour versions 5.0 to 5.12.
|
||||
</p>
|
@ -25,6 +25,8 @@
|
||||
<td>Asks for a list of descriptors for plug-in <em>piid</em> on strip <em>ssid</em></td></tr>
|
||||
<tr><th><kbd class="osc">/set_surface</kbd></th>
|
||||
<td>Ask for the current surface setting. Reply is in the same form as setting the surface would be.</td></tr>
|
||||
<tr><th><kbd class="osc">/surface/list</kbd></th>
|
||||
<td>Print a list of known surfaces and Link Sets to the log window.</td></tr>
|
||||
</table>
|
||||
|
||||
<h3>A list of strips</h3>
|
||||
@ -181,4 +183,21 @@
|
||||
access to plug-ins, the /select/plugin/ set of commands will handle most
|
||||
needs.
|
||||
</p>
|
||||
<h3>Obtaining a list of surfaces Ardour knows about</h3>
|
||||
<p>
|
||||
Ardour can work with more than one OSC control surface at a time.
|
||||
Sometimes it is useful to know the information stored about all
|
||||
surfaces. Sending <code>/surface/list</code> from any surface or selecting:
|
||||
<kbd class="menu">Print surface information to Log window</kbd> from
|
||||
the <kbd class="menu">Debug</kbd> dropdown in the OSC setup dialog,
|
||||
will list all the information Ardour uses to calculate the feedback
|
||||
it sends. The Log window can be opened from the menu with
|
||||
<kbd class="option">Window > Log</kbd>.
|
||||
This would be useful information to include with any OSC
|
||||
related Bug report. The output is printed in this format:
|
||||
</p>
|
||||
<p>
|
||||
<img alt="Surface Output"
|
||||
src="/images/osc-surface-log.png">
|
||||
</p>
|
||||
|
||||
|
@ -12,11 +12,9 @@
|
||||
Many OSC devices get their IP from a DHCP making it difficult to set
|
||||
an IP in Ardour's OSC settings. Therefore, most of the settings are
|
||||
<em>default</em> settings. Values are set and the next OSC surface to
|
||||
send an OSC message to Ardour will use those settings. An OSC
|
||||
surface that has previously sent a message to Ardour will retain the
|
||||
settings it already had. Any change to a setting will reset all
|
||||
device settings. A <em>/refresh</em> message will set that device to
|
||||
any new settings. The use of <em>/set_surface</em> will override all
|
||||
send an OSC message to Ardour will use those settings. Any change to a
|
||||
setting will reset all
|
||||
device settings. The use of <em>/set_surface</em> will override all
|
||||
settings except <em>Port Mode</em>. <em>Port Mode</em> affects all
|
||||
connected surfaces and so all surfaces must use either the set manual
|
||||
port or send OSC messages from the same port they expect to receive
|
||||
@ -102,9 +100,11 @@
|
||||
Sets the faders (and sends faders) feedback math to position where a
|
||||
value between 0 and 1 represents the fader position of the same fader
|
||||
in the mixer GUI or dB where the feedback from fader movement will be
|
||||
returned as a dB value. When the Gain Mode is set to position, the
|
||||
returned as a dB value. When the Gain Mode is set to position, there
|
||||
are also options to send the gain in dB either to the channel name,
|
||||
/*/name feedback for the channel will show dB values in text while the
|
||||
fader is being adjusted and then return the name text.
|
||||
fader is being adjusted and then return the name text. It can also be
|
||||
set to send both position and gain or just position.
|
||||
</p>
|
||||
<h4>Debug:</h4>
|
||||
|
||||
@ -117,7 +117,10 @@
|
||||
|
||||
<p>
|
||||
For debugging purposes this allows logging either all OSC messages
|
||||
Ardour receives or invalid messages received or none.
|
||||
Ardour receives or invalid messages received or none. The last option:
|
||||
<kbd class="menu">Print surface information to Log window</kbd> prints
|
||||
the internal information that Ardour uses to create feedback for all
|
||||
surfaces Ardour knows about.
|
||||
</p>
|
||||
<h4>Preset:</h4>
|
||||
|
||||
|
@ -1792,6 +1792,14 @@ uri: using-control-surfaces/controlling-ardour-with-osc/osc-setup-dialog
|
||||
part: subchapter
|
||||
---
|
||||
|
||||
---
|
||||
title: OSC: Linking Surfaces
|
||||
include: osc58-linking-surfaces.html
|
||||
link: osc58-linking-surfaces
|
||||
uri: using-control-surfaces/controlling-ardour-with-osc/linking-surfaces
|
||||
part: subchapter
|
||||
---
|
||||
|
||||
---
|
||||
title: OSC: Querying Ardour
|
||||
include: osc58-querying-ardour.html
|
||||
@ -1824,6 +1832,14 @@ uri: using-control-surfaces/controlling-ardour-with-osc/jog-modes
|
||||
part: subchapter
|
||||
---
|
||||
|
||||
---
|
||||
title: OSC: Custom Strip Lists
|
||||
include: osc58-custom-strips.html
|
||||
link: osc58-custom-strips
|
||||
uri: using-control-surfaces/controlling-ardour-with-osc/custom-strips
|
||||
part: subchapter
|
||||
---
|
||||
|
||||
---
|
||||
title: OSC: Automation
|
||||
include: osc58-automation.html
|
||||
|
Before Width: | Height: | Size: 5.6 KiB After Width: | Height: | Size: 9.0 KiB |
Before Width: | Height: | Size: 6.2 KiB After Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 33 KiB |
BIN
source/images/osc-surface-log.png
Normal file
After Width: | Height: | Size: 42 KiB |