OSC: update OSC docs.
This commit is contained in:
parent
fa5c66e267
commit
1138f1dadb
File diff suppressed because it is too large
Load Diff
@ -43,7 +43,15 @@ title: OSC Feedback With Ardour
|
||||
<dt><kbd class="osc">/transport_stop <em>state</em></kbd></dt>
|
||||
<dd>where <em>state</em> is an int/bool indicating if the transport is stopped or not.</dd>
|
||||
</dl>
|
||||
|
||||
<p>
|
||||
With feedback turned on, OSC control commands that try to change a
|
||||
control that does not exist will get feedback that resets that control
|
||||
to off. For example, sending a /strip/recenable to a buss will not work
|
||||
and Ardour will try to turn the controller LED off in that case. Also
|
||||
note that Pan operation may be limited by pan width in some cases.
|
||||
That is with pan width at 100% (or -100%) there is no pan position
|
||||
movement available.
|
||||
</p>
|
||||
<h2>List of OSC feedback messages</h2>
|
||||
|
||||
<h3>Feedback only</h3>
|
||||
@ -55,7 +63,7 @@ title: OSC Feedback With Ardour
|
||||
</p>
|
||||
<p class="note">
|
||||
See strip section below for info about ssid and wrapping it into the
|
||||
path.
|
||||
path. Also /master and /monitor support what the /strip does.
|
||||
</p>
|
||||
<dl class="bindings">
|
||||
<dt><kbd class="osc">/strip/name <em>ssid</em> <em>track_name</em></kbd></dt>
|
||||
@ -66,30 +74,36 @@ title: OSC Feedback With Ardour
|
||||
<dd>where <em>meter</em> is a value repesenting the current audio level.
|
||||
(the exact math used is determined by the feedback bits set)</dd>
|
||||
<dt><kbd class="osc">/strip/signal <em>ssid</em> <em>signal</em></kbd></dt>
|
||||
<dd>where <em>signal</em> is a float indicating the instantainious
|
||||
<dd>where <em>signal</em> is a float indicating the instantaneous
|
||||
audio level is -40dB or higher.</dd>
|
||||
<dt><kbd class="osc">/timecode <em>time</em></kbd></dt>
|
||||
<dd>where <em>time</em> is a string with the current play head time.</dd>
|
||||
<dt><kbd class="osc">/bar_beat <em>beat</em></kbd></dt>
|
||||
<dt><kbd class="osc">/position/smpte <em>time</em></kbd></dt>
|
||||
<dd>where <em>time</em> is a string with the current play head time. Seconds as per smpte.</dd>
|
||||
<dt><kbd class="osc">/position/bbt <em>beat</em></kbd></dt>
|
||||
<dd>where <em>beat</em> is a string with the current play head bar/beat.</dd>
|
||||
<dt><kbd class="osc">/position/time <em>time</em></kbd></dt>
|
||||
<dd>where <em>time</em> is a string with the current play head time. Seconds are in milliseconds</dd>
|
||||
<dt><kbd class="osc">/position/samples <em>samples</em></kbd></dt>
|
||||
<dd>where <em>samples</em> is a string with the current play head position in samples.</dd>
|
||||
<dt><kbd class="osc">/heartbeat <em>LED</em></kbd></dt>
|
||||
<dd>where <em>LED</em> is a float that cycles 1/0 at 1 second intervals.</dd>
|
||||
<dt><kbd class="osc">/record_tally <em>state</em></kbd></dt>
|
||||
<dd>Some record enable is true or "ready to record"</dd>
|
||||
<dd>Some record enable is true or "ready to record". For a "Recording" sign at studio door.</dd>
|
||||
</dl>
|
||||
|
||||
<h3>Transport Control</h3>
|
||||
<dl class="bindings">
|
||||
<dt><kbd class="osc">/transport_stop <em>state</em></kbd></dt>
|
||||
<dd></dd>
|
||||
<dd><em>state</em> is true when transport is stopped</dd>
|
||||
<dt><kbd class="osc">/transport_play <em>state</em></kbd></dt>
|
||||
<dd></dd>
|
||||
<dd><em>state</em> is true when transport speed is 1.0</dd>
|
||||
<dt><kbd class="osc">/ffwd <em>state</em></kbd></dt>
|
||||
<dd></dd>
|
||||
<dd><em>state</em> is true when transport is moving forward but not at speed 1.0</dd>
|
||||
<dt><kbd class="osc">/rewind <em>state</em></kbd></dt>
|
||||
<dd></dd>
|
||||
<dd><em>state</em> is true when transport speed is less than 0.0</dd>
|
||||
<dt><kbd class="osc">/loop_toggle <em>state</em></kbd></dt>
|
||||
<dd></dd>
|
||||
<dd><em>state</em> is true when loop mode is true</dd>
|
||||
<dt><kbd class="osc">/cancel_all_solos <em>state</em></kbd></dt>
|
||||
<dd>Where <em>state</em> true indicates there are active solos that can be canceled.</dd>
|
||||
</dl>
|
||||
|
||||
<h3>Recording control</h3>
|
||||
@ -139,6 +153,10 @@ title: OSC Feedback With Ardour
|
||||
</p>
|
||||
|
||||
<dl class="bindings">
|
||||
<dt><kbd class="osc">/bank_up <em>LED</em></kbd></dt>
|
||||
<dd>where <em>LED</em> is a bool that indicates another bank_up operation is possible.</dd>
|
||||
<dt><kbd class="osc">/bank_down <em>LED</em></kbd></dt>
|
||||
<dd>where <em>LED</em> is a bool that indicates another bank_down operation is possible.</dd>
|
||||
<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
|
||||
(note there is no coresponding command to set the track name)</dd>
|
||||
@ -164,7 +182,37 @@ title: OSC Feedback With Ardour
|
||||
<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 actual pan position of the track</dd>
|
||||
</dl>
|
||||
|
||||
<h3>Selection Operations</h3>
|
||||
<p>
|
||||
Selection feedback is the same as for strips, only the path changes
|
||||
from <em>/strip</em> to <em>/select</em> and there is no <em>ssid</em>.
|
||||
there are some extra feedback and commands that will be listed here.
|
||||
</p>
|
||||
<dl class="bindings">
|
||||
<dt><kbd class="osc">/select/n_inputs <em>number</em></kbd></dt>
|
||||
<dd>where <em>number</em> number of inputs for this strip</dd>
|
||||
<dt><kbd class="osc">/select/n_outputs <em>number</em></kbd></dt>
|
||||
<dd>where <em>number</em> number of outputs for this strip</dd>
|
||||
<dt><kbd class="osc">/select/comment <em>text</em></kbd></dt>
|
||||
<dd>where <em>text</em> is the strip comment</dd>
|
||||
<dt><kbd class="osc">/select/solo_iso <em>state</em></kbd></dt>
|
||||
<dd>where <em>state</em> is a bool/int representing the Actual solo isolate state of the track</dd>
|
||||
<dt><kbd class="osc">/select/solo_safe <em>state</em></kbd></dt>
|
||||
<dd>where <em>state</em> is a bool/int representing the actual solo safe/lock state of the track</dd>
|
||||
<dt><kbd class="osc">/select/polarity <em>invert</em></kbd></dt>
|
||||
<dd>where <em>invert</em> is a bool/int representing the actual polarity of the track</dd>
|
||||
<dt><kbd class="osc">/select/pan_stereo_width <em>width</em></kbd></dt>
|
||||
<dd>where <em>width</em> is a float ranging from -1 to 1 representing the actual pan width of the track</dd>
|
||||
<dt><kbd class="osc">/select/send_gain", <em>sendid</em> <em>send_gain</em></kbd></dt>
|
||||
<dd>where <em>sendid</em> = nth_send, <em>send_gain</em>is a float
|
||||
ranging from -193 to +6 representing the actual gain in dB for the send</dd>
|
||||
<dt><kbd class="osc">/select/send_fader", <em>sendid</em> <em>send_gain</em></kbd></dt>
|
||||
<dd>where <em>sendid</em> = nth_send, <em>send_gain</em>is a float
|
||||
ranging from 0 to 1023 representing the actual position for the send as a fader</dd>
|
||||
<dt><kbd class="osc">/select/send_name <em>sendid</em> <em>send_name</em></kbd></dt>
|
||||
<dd>where <em>send_name</em> is a string representing the name of the buss
|
||||
this send goes to.</dd>
|
||||
</dl>
|
||||
<h3>Menu actions</h3>
|
||||
<p>
|
||||
Every single menu item in Ardour's GUI is accessible via OSC. However,
|
||||
|
@ -11,7 +11,7 @@ title: Calculating Feedback and Strip-types Values
|
||||
</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
|
||||
bits that are on or off, but we represent 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>
|
||||
@ -32,29 +32,36 @@ title: Calculating Feedback and Strip-types Values
|
||||
2 - MidiTracks.
|
||||
</li>
|
||||
<li>
|
||||
4 - AudioBusses.
|
||||
4 - AudioBuses.
|
||||
</li>
|
||||
<li>
|
||||
8 - MidiBusses.
|
||||
8 - MidiBuses.
|
||||
</li>
|
||||
<li>
|
||||
16 - VCAs.
|
||||
</li>
|
||||
<li>
|
||||
2048 - Master.
|
||||
32 - Master.
|
||||
</li>
|
||||
<li>
|
||||
4096 - Monitor.
|
||||
64 - Monitor.
|
||||
</li>
|
||||
<li>
|
||||
16384 - Selected.
|
||||
256 - Selected.
|
||||
</li>
|
||||
<li>
|
||||
32768 - Hidden.
|
||||
512 - Hidden.
|
||||
</li>
|
||||
</ul>
|
||||
<p class="note">
|
||||
Selected and Hidden bits are normally not needed as Ardour defaults to
|
||||
showing Selected strips and not showing Hidden strips. The purpose of
|
||||
these two flags is to allow showing only Selected strips or only
|
||||
Hidden strips. Using Hidden with other flags will allow Hidden strips
|
||||
to show inline with other strips.
|
||||
</p>
|
||||
<p>
|
||||
Some handy numbers to use might be: 15 (all tracks and busses), 31
|
||||
Some handy numbers to use might be: 15 (all tracks and buses), 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
|
||||
@ -100,7 +107,13 @@ title: Calculating Feedback and Strip-types Values
|
||||
will not work if the above option is turned on.
|
||||
</li>
|
||||
<li>
|
||||
512 - Send signal present, true if level is higher than -20dB
|
||||
512 - Send signal present, true if level is higher than -40dB
|
||||
</li>
|
||||
<li>
|
||||
1024 - Send position in samples
|
||||
</li>
|
||||
<li>
|
||||
2048 - Send position in time, hours, minutes, seconds and milliseconds
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
|
@ -0,0 +1,33 @@
|
||||
---
|
||||
layout: default
|
||||
title: Parameter Types in OSC
|
||||
---
|
||||
|
||||
<p>
|
||||
An OSC message is laid out in this form:
|
||||
</p>
|
||||
<kbd>
|
||||
/path/of/command type parameter
|
||||
</kbd>
|
||||
<p>
|
||||
The type is there to indicate what the parameter is. This gives
|
||||
the idea that parameter types are quite strict and if the command
|
||||
requires an Integer <em>"i"</em> then the controller had better send it.
|
||||
However, the checking of the parameter type is left to the receiving
|
||||
software.
|
||||
</p>
|
||||
<p>
|
||||
What this means in practical terms is that the surface can get away
|
||||
with sending the wrong type of parameter. There are some places
|
||||
where that just doesn't make sense. For example, a parameter that
|
||||
is specified as a Float with a range of 0 to 1, could be sent as
|
||||
an Integer, but would only have full scale and minimum value with
|
||||
nothing in between. This is not much use for a fader, though ok for
|
||||
a button.
|
||||
</p>
|
||||
<p>
|
||||
There are a number of OSC controllers based on iOS and Android
|
||||
tablets that only send or receive parameters as floats or text.
|
||||
These controllers should have no problem sending bool or int values
|
||||
as floats. Ardour will interpret the values as required.
|
||||
</p>
|
@ -0,0 +1,69 @@
|
||||
---
|
||||
layout: default
|
||||
title: Selection/Feedback Expansion Considerations in OSC
|
||||
---
|
||||
|
||||
<p>
|
||||
Ardour does not send every possible feedback value for each channel.
|
||||
It does send expanded information on the selected channel. There are
|
||||
also extra commands for the selected strip. All the feedback and
|
||||
select commands have their own path <em>/select</em>.
|
||||
This means that for the selected channel the surface does not have to
|
||||
keep track of the strip ID. The /select strip will follow the
|
||||
"current mixer strip" in the GUI editor window.
|
||||
</p>
|
||||
<p>
|
||||
There are two major uses for this:
|
||||
<ol>
|
||||
<li>Single strip control surfaces. Using
|
||||
<em>/access_action Editor/select-next-route</em> or
|
||||
<em>/access_action Editor/select-prev-route</em>
|
||||
to step through the mixer strips.</li>
|
||||
<li>Using a "Super strip" section of knobs to control parts
|
||||
of the strip that are changed less often such as polarity, sends or
|
||||
plugin parameters.</li>
|
||||
</ol>
|
||||
</p>
|
||||
<p>
|
||||
Selection in Ardour's OSC implementation are complicated by the
|
||||
possibility of using more than one OSC controller at the same time.
|
||||
User "A" may select strip 4 and use a selected controller to make
|
||||
changes to that strip. User "B" may subsequently select strip 7 to
|
||||
make changes on. This leaves user "A" making changes to strip 7
|
||||
which they did not choose.
|
||||
</p>
|
||||
<p>
|
||||
For this reason Ardour offers local expansion aside from the GUI
|
||||
selection. Local expansion only affects the one OSC controller. GUI
|
||||
selection is global and affects all controllers using GUI selection
|
||||
as well as the GUI.
|
||||
</p>
|
||||
<p>
|
||||
In general, in a one user situation where that one user may use either
|
||||
the OSC surface or the GUI, using GUI based selection makes the most
|
||||
sense. This is the default because this is the more common use.
|
||||
</p>
|
||||
<p>
|
||||
When there is more than one operator, then expansion only is the
|
||||
mode of choice. It may make sense for one of the surfaces to
|
||||
use GUI selection where the operator is also using the GUI for some
|
||||
things. However, the set up should be carefully analyzed for the
|
||||
possibility of selection confusions. Expansion should be
|
||||
considered the <em>safe</em> option.
|
||||
</p>
|
||||
<p>
|
||||
It is always ok to use expansion on the surface even in a one
|
||||
user scenario. This allows the user to use GUI and surface selection
|
||||
for different uses.
|
||||
</p>
|
||||
<p>
|
||||
It is also possible to use both if desired. /strip/select will ways
|
||||
set the GUI select, but /strip/expand will set the select feedback
|
||||
and commands locally without changing the GUI select. Another
|
||||
/strip/expand or a /strip/select will override that expand command
|
||||
and releasing the /strip/expand or /select/expand (setting it to 0 or
|
||||
false) will set the /select set of commands/feedback back to whichever
|
||||
strip the GUI has selected at that time. This could be used to switch
|
||||
between the GUI select and the local expand to compare two strips
|
||||
settings.
|
||||
</p>
|
Loading…
Reference in New Issue
Block a user