manual/include/osc58-personal-monitoring-control.html

141 lines
5.7 KiB
HTML

<p>
Personal monitoring can allow a performer with a smart phone to set
their personal monitor mix for a floor wedge or in-ear monitoring.
In Ardour 5.6 OSC commands to allow this were added.
</p>
<h3>Setup</h3>
<p>
Some setup needs to be done in the GUI mixer window before this can
work.
</p>
<ul>
<li>
Create a bus for each performer who will have personal
monitoring. A good practice is to name the bus with the
performers name.
</li>
<li>
Connect the output of that bus to one of the audio
interface's playback ports that is not otherwise used. OSC
will now include this bus in it's list of aux busses as it
no longer has it's output connected to the Master bus.
</li>
<li>
Add an aux send to each channel the performer needs to hear
in their personal mix. Many performers only need three or
four sources to be mixed. If the performer needs to hear a
a set of inputs that are combined into a bus, adding the
aux send to that bus may make more sense than adding ten
drum channels for example.
</li>
<li>
If the performer wishes to hear effects in their monitor,
an extra send from the send bus, placing the performers aux
send after the effect or a plugin can be added in line in
the aux bus itself.
</li>
</ul>
<p>
This gives stage or studio monitoring for the performer.
</p>
<h3>The OSC commands and feedback for personal monitoring</h3>
<p>
All of the personal monitoring commands and feedback start with a
<em>/cue</em>. It is expected that a surface used as a personal
monitor control will use only <em>/cue</em> commands.
</p>
<p>
Most phone OSC applets (TouchOSC, Control) require manual port to be set.
There are certainly more controls than needed. Using send enables for
example, may lead to wasted time discovering why a send has no sound.
A good easy to use controller that fits on most phones while still
being controllable even with big fingers might look like:
</p>
<table>
<tr>
<td>
<figure>
<img alt="TouchOSC Screenshot"
src="/images/osc-cue-touchosc.jpg">
<figcaption>Personal Monitor controller using TouchOSC</figcaption>
</figure>
</td>
<td>
<figure>
<img alt="Control Screenshot"
src="/images/osc-cue-control.jpg">
<figcaption>Personal Monitor controller using Control</figcaption>
</figure>
</td>
</tr>
</table>
<p>
Ardour is not limited to talking to one personal monitor controller
at a time, but is able to deal with many simultaneously, each controlling
it's own Aux bus.
</p>
<p class="note">
The send controls and feedback all have the send id (1 to n) in line
as part of the OSC path. So the path for the second send would be
<em>/cue/send/fader/2</em> to set the level. It is considered that
most surfaces used for this will only be able to handle one parameter.
</p>
<h4>Commands</h4>
<table class="dl">
<tr><th><kbd class="osc">/cue/connect</kbd></th>
<td>Returns a list of aux busses and connects to the first.</td></tr>
<tr><th><kbd class="osc">/cue/aux <em>aux-number</em></kbd></th>
<td>where <em>aux-number</em> is an integer or float which is the aux bus
number this surface will use.</td></tr>
<tr><th><kbd class="osc">/cue/next_aux</kbd></th>
<td>Sets the the aux bus to one bus higher.</td></tr>
<tr><th><kbd class="osc">/cue/previous_aux</kbd></th>
<td>Sets the aux to one bus lower. This can also be used as a "connect"
button to save space in a phone layout.</td></tr>
<tr><th><kbd class="osc">/cue/fader <em>position</em></kbd></th>
<td>where <em>position</em> is a float for the position of the fader
between 0.0 and 1.0.</td></tr>
<tr><th><kbd class="osc">/cue/mute <em>state</em></kbd></th>
<td>where <em>state</em> is a float of 0.0 for mute off and 1.0 for the Aux bus mute on.</td></tr>
<tr><th><kbd class="osc">/cue/send/fader/<em>id</em> <em>position</em></kbd></th>
<td>where <em>position</em> is a float for the position of the fader
between 0.0 and 1.0.</td></tr>
<tr><th><kbd class="osc">/cue/send/enable/<em>id</em> <em>state</em></kbd></th>
<td>where <em>state</em> is a float of 0.0 for disable and 1.0 for enable.</td></tr>
</table>
<h4>Feedback</h4>
<table class="dl">
<tr><th><kbd class="osc">/cue/name <em>name</em></kbd></th>
<td>where <em>name</em> is a string that is the name of the currently
selected aux bus.</td></tr>
<tr><th><kbd class="osc">/cue/name/<em>id</em> <em>name</em></kbd></th>
<td>where <em>name</em> is a string that is the name of the aux bus
that <em>id</em> belongs to.</td></tr>
<tr><th><kbd class="osc">/cue/fader <em>position</em></kbd></th>
<td>where <em>position</em> is a float from 0.0 to 1.0 that shows the
fader position for the selected aux bus.</td></tr>
<tr><th><kbd class="osc">/cue/mute <em>state</em></kbd></th>
<td>where <em>state</em> is a float of 0.0 or 1.0 that shows the state
of the mute for the selected aux bus.</td></tr>
<tr><th><kbd class="osc">/cue/signal <em>activity</em></kbd></th>
<td>where <em>activity</em> is a float of 0.0 or 1.0 that shows audio
activity for the selected aux bus.</td></tr>
<tr><th><kbd class="osc">/cue/send/name/<em>id</em> <em>name</em></kbd></th>
<td>where <em>name</em> is a string that is the name of the channel
that send <em>id</em> belongs to.</td></tr>
<tr><th><kbd class="osc">/cue/send/fader/<em>id</em> <em>position</em></kbd></th>
<td>where <em>position</em> is a float from 0.0 to 1.0 that is the position
for the fader for the send that <em>id</em> belongs to.</td></tr>
<tr><th><kbd class="osc">/cue/send/enable/<em>id</em> <em>state</em></kbd></th>
<td>where <em>state</em> is a float of 0.0 or 1.0 that is the state
of the enable for the send that <em>id</em> belongs to.</td></tr>
</table>
<p>
While a fader is being adjusted, the corresponding <em>/*/name</em>
text will give the level in db.
</p>