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.

Setup

Some setup needs to be done in the GUI mixer window before this can work.

This gives stage or studio monitoring for the performer.

The OSC commands and feedback for personal monitoring

All of the personal monitoring commands and feedback start with a /cue. It is expected that a surface used as a personal monitor control will use only /cue commands.

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:

TouchOSC Screenshot
Personal Monitor controller using TouchOSC
Control Screenshot
Personal Monitor controller using Control

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.

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 /cue/send/fader/2 to set the level. It is considered that most surfaces used for this will only be able to handle one parameter.

Commands

/cue/connect Returns a list of aux busses and connects to the first.
/cue/aux aux-number where aux-number is an integer or float which is the aux bus number this surface will use.
/cue/next_aux Sets the the aux bus to one bus higher.
/cue/previous_aux Sets the aux to one bus lower. This can also be used as a "connect" button to save space in a phone layout.
/cue/fader position where position is a float for the position of the fader between 0.0 and 1.0.
/cue/mute state where state is a float of 0.0 for mute off and 1.0 for the Aux bus mute on.
/cue/send/fader/id position where position is a float for the position of the fader between 0.0 and 1.0.
/cue/send/enable/id state where state is a float of 0.0 for disable and 1.0 for enable.

Feedback

/cue/name name where name is a string that is the name of the currently selected aux bus.
/cue/name/id name where name is a string that is the name of the aux bus that id belongs to.
/cue/fader position where position is a float from 0.0 to 1.0 that shows the fader position for the selected aux bus.
/cue/mute state where state is a float of 0.0 or 1.0 that shows the state of the mute for the selected aux bus.
/cue/signal activity where activity is a float of 0.0 or 1.0 that shows audio activity for the selected aux bus.
/cue/send/name/id name where name is a string that is the name of the channel that send id belongs to.
/cue/send/fader/id position where position is a float from 0.0 to 1.0 that is the position for the fader for the send that id belongs to.
/cue/send/enable/id state where state is a float of 0.0 or 1.0 that is the state of the enable for the send that id belongs to.

While a fader is being adjusted, the corresponding /*/name text will give the level in db.