OSC API
The Switch Back PLUS features an OSC API allowing mixes and audio settings to be controlled remotely. The following documents supported OSC messages that can be implemented by other software.
TouchOSC starter template
A TouchOSC layout template is available as a starting point. It has common controls already included and it automatically populates levels and channel names. Open it in TouchOSC and customize from there.
Download TouchOSC Template (.tosc)
OSC Configuration
- Supports UDP and TCP (supports both OSC 1.0- and 1.1-style TCP messages).
- Receives inbound UDP OSC messages on port 8000.
- Sends outbound UDP OSC messages to a set destination port. The default is 8000, but this can be changed in the device settings in PRO Connect.
- Sends and receives TCP messages on port 3032.
- Will automatically send status update OSC messages to any client that sends it a message. No manual IP address configuration is needed.
- Up to four concurrent UDP and TCP connections are supported.
- mDNS/DNS-SD: The PLUS advertises its OSC servers on network as
_osc._udp.local.and_osc._tcp.local..
API Conventions
<id>is the device identifier (the MAC address, all uppercase, with no colons, e.g. 8C1F64F2F530). An asterisk*character may be used in place of the id to automatically match any receiving PLUS. It will still respond with its actual id in the id field.- example: User sends
/plus/*/name. PLUS responds with/plus/8C1F64F2F530/name string PLUS-VOCALS.
- example: User sends
<ch>is the channel index, 1–64. Channels 1–16 are displayed on PLUS bank 1, 17–32 are on bank 2, and so on.- Parameter type tags:
string,int(int32),float(float32). A combined tag likestring, intindicates two consecutive values in a single message. - Command format:
<address> <type-tag> <value(s)>. Example:/plus/8C1F64F2F530/mix/masterVolume float 0.75. - Verbs:
- Get—client sends the address with no parameters; the PLUS replies at the same address with the current value.
- Set—client sends the address with parameters to update state; the PLUS sends no direct response.
- A
—in the Get or Set column means the verb is not supported for that address. - Notify—the PLUS emits the message unsolicited when state changes, using the same format as Get.
API
note
The <id> field may be replaced with * in any message.
General
| Address | Get | Set | Description |
|---|---|---|---|
/plus/*/poll | string | — | Get device id for use in <id> field |
/plus/<id>/name | string | — | Get PLUS name (set in Dante Controller) |
/plus/<id>/version | string | — | Get firmware version |
/plus/<id>/status | all messages | — | Outputs all supported OSC messages at once in a bundle |
/plus/<id>/identify | no arguments | — | Identify device by blinking the LEDs |
/plus/<id>/broadcast | int 1 or 0 | int 1 or 0 | Outgoing broadcast (intercom) on/off |
Mix
| Address | Get | Set | Description |
|---|---|---|---|
/plus/<id>/mix/<ch>/assignment | int, string | int, string | Channel assignment to one of the 64 knobs. The int argument is the identifier for the source channel. The string is the channel type. See Channel Assignments for full details. |
/plus/<id>/mix/<ch>/linked | int 1 or 0 | — | Channel is stereo linked (true/false) |
/plus/<id>/mix/<ch>/active | int 1 or 0 | — | Channel is active and useable (valid Dante routing or a MIDI channel with active network connections) (true/false) |
/plus/<id>/mix/<ch>/name | string | string or null | Channel name displayed on PLUS (setting to null will reset the name to the default for its channel type) |
/plus/<id>/mix/<ch>/volume | float 0.0–1.0 | float 0.0–1.0 | Channel volume |
/plus/<id>/mix/<ch>/pan | float 0.0–1.0 | float 0.0–1.0 | Channel pan (0.5 is center) |
/plus/<id>/mix/<ch>/width | float 0.0.0–1.0 | float 0.0–1.0 | Channel width (1.0 is full stereo, 0.5 is mono, 0.0 is reverse stereo) |
Channel Assignments
| Knob Type | Source ID | Description |
|---|---|---|
| dante | 1–32 | Dante stereo channel |
| local | 1: Microphone 2: Instrument 3: Line In 1 4: Line In 2 | Local analog input volume |
| midi | 0–119 | MIDI Control Change message number |
| setting | 1: Mic gain 2: Mic trim 3: Mic high pass filter 4: Mic phantom power 5: Instrument gain 6: Instrument high pass filter 7: Line input stereo link 8: Display Brightness 9: MIDI Channel select 10: Limiter threshold 11: Limiter attack 12: Limiter release | A device setting mapped to a knob on the PLUS. Knobs assigned to settings cannot be directly controlled using OSC, but they are listed for completeness. |
| blank | — | unassigned channel knob, source ID doesn't matter |
- Example 1, assign Dante channel 5 to knob 2:
/plus/<id>/mix/2/assignment int 5 string dante - Example 2, assign instrument volume to knob 17:
/plus/<id>/mix/17/assignment int 2 string local
Master Output
| Address | Get | Set | Description |
|---|---|---|---|
/plus/<id>/mix/master/volume | float 0.0–1.0 | float 0.0–1.0 | Master volume |
/plus/<id>/mix/master/eq/<band 1-4>/type | string | string | EQ filter type. Options for band 1: highpass / lowshelf Options for bands 2–3: bell / notch Options for band 4: lowpass / highshelf |
/plus/<id>/mix/master/eq/<band 1-4>/frequency | float 4000–15000 | float 4000–15000 | EQ band center frequency |
/plus/<id>/mix/master/eq/<band 1-4>/gain | float -15.0–+6.0 | float -15.0–+6.0 | EQ band gain |
/plus/<id>/mix/master/eq/<band 1-4>/q | float 0.1–5.0 | float 0.1–5.0 | EQ band Q factor |
/plus/<id>/mix/master/eq/bypass | int 1 or 0 | int 1 or 0 | EQ bypass on/off |
/plus/<id>/mix/master/limiter/threshold | float -96.0–0.0 | float -96.0–0.0 | Limiter threshold in dB |
/plus/<id>/mix/master/limiter/attack | float 0.0–1.0 | float 0.0–1.0 | Limiter attack speed, from fastest (0) to slowest (1) |
/plus/<id>/mix/master/limiter/release | float 0.0–1.0 | float 0.0–1.0 | Limiter release speed, from fastest (0) to slowest (1) |
Analog Inputs
| Address | Get | Set | Description |
|---|---|---|---|
/plus/<id>/mic/volume | float 0.0–1.0 | float 0.0–1.0 | Mic mix volume |
/plus/<id>/mic/pan | float 0.0–1.0 | float 0.0–1.0 | Mic mix pan (0.5 is center) |
/plus/<id>/mic/gain | int 0–8 | int 0–8 | Mic analog gain (corresponding dB values: 0dB, 3dB, 6dB, 12dB, 18dB, 24dB, 30dB, 40dB, 50dB) |
/plus/<id>/mic/trim | float 0.0–30.0 | float 0.0–30.0 | Mic digital trim (in dB) |
/plus/<id>/mic/phantompower | int 1 or 0 | int 1 or 0 | Phantom power on/off |
/plus/<id>/mic/hpf | int 1 or 0 | int 1 or 0 | Microphone high-pass filter on/off |
/plus/<id>/instrument/volume | float 0.0–1.0 | float 0.0–1.0 | Instrument mix volume |
/plus/<id>/instrument/pan | float 0.0–1.0 | float 0.0–1.0 | Instrument mix pan (0.5 is center) |
/plus/<id>/instrument/gain | int 0–8 | int 0–8 | Instrument gain (corresponding dB values: 0dB, 4dB, 8dB, 12dB, 16dB, 20dB, 23dB, 28dB, 33dB) |
/plus/<id>/instrument/hpf | int 1 or 0 | int 1 or 0 | Instrument high-pass filter on/off |
/plus/<id>/line1/volume | float 0.0–1.0 | float 0.0–1.0 | Line In 1 mix volume |
/plus/<id>/line1/pan | float 0.0–1.0 | float 0.0–1.0 | Line In 1 mix pan (0.5 is center) |
/plus/<id>/line1/width | float 0.0.0–1.0 | float 0.0–1.0 | Line In 1 mix width, if linked (1.0 is full stereo, 0.5 is mono, 0.0 is reverse stereo) |
/plus/<id>/line1/linked | int 1 or 0 | int 1 or 0 | Line In 1 stereo linked with Line In 2 |
/plus/<id>/line2/volume | float 0.0–1.0 | float 0.0–1.0 | Line In 2 mix volume |
/plus/<id>/line2/pan | float 0.0–1.0 | float 0.0–1.0 | Line In 2 mix pan (0.5 is center) |
/plus/<id>/line2/width | float 0.0.0–1.0 | float 0.0–1.0 | Line In 2 mix width, if linked (1.0 is full stereo, 0.5 is mono, 0.0 is reverse stereo) |
/plus/<id>/line2/linked | int 1 or 0 | int 1 or 0 | Line In 2 stereo linked with Line In 1 |