Skip to main content

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.
  • <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 like string, int indicates 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​

AddressGetSetDescription
/plus/*/pollstring—Get device id for use in <id> field
/plus/<id>/namestring—Get PLUS name (set in Dante Controller)
/plus/<id>/versionstring—Get firmware version
/plus/<id>/statusall messages—Outputs all supported OSC messages at once in a bundle
/plus/<id>/identifyno arguments—Identify device by blinking the LEDs
/plus/<id>/broadcastint 1 or 0int 1 or 0Outgoing broadcast (intercom) on/off

Mix​

AddressGetSetDescription
/plus/<id>/mix/<ch>/assignmentint, stringint, stringChannel 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>/linkedint 1 or 0—Channel is stereo linked (true/false)
/plus/<id>/mix/<ch>/activeint 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>/namestringstring or nullChannel name displayed on PLUS (setting to null will reset the name to the default for its channel type)
/plus/<id>/mix/<ch>/volumefloat 0.0–1.0float 0.0–1.0Channel volume
/plus/<id>/mix/<ch>/panfloat 0.0–1.0float 0.0–1.0Channel pan (0.5 is center)
/plus/<id>/mix/<ch>/widthfloat 0.0.0–1.0float 0.0–1.0Channel width (1.0 is full stereo, 0.5 is mono, 0.0 is reverse stereo)

Channel Assignments​

Knob TypeSource IDDescription
dante1–32Dante stereo channel
local1: Microphone
2: Instrument
3: Line In 1
4: Line In 2
Local analog input volume
midi0–119MIDI Control Change message number
setting1: 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​

AddressGetSetDescription
/plus/<id>/mix/master/volumefloat 0.0–1.0float 0.0–1.0Master volume
/plus/<id>/mix/master/eq/<band 1-4>/typestringstringEQ 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>/frequencyfloat 4000–15000float 4000–15000EQ band center frequency
/plus/<id>/mix/master/eq/<band 1-4>/gainfloat -15.0–+6.0float -15.0–+6.0EQ band gain
/plus/<id>/mix/master/eq/<band 1-4>/qfloat 0.1–5.0float 0.1–5.0EQ band Q factor
/plus/<id>/mix/master/eq/bypassint 1 or 0int 1 or 0EQ bypass on/off
/plus/<id>/mix/master/limiter/thresholdfloat -96.0–0.0float -96.0–0.0Limiter threshold in dB
/plus/<id>/mix/master/limiter/attackfloat 0.0–1.0float 0.0–1.0Limiter attack speed, from fastest (0) to slowest (1)
/plus/<id>/mix/master/limiter/releasefloat 0.0–1.0float 0.0–1.0Limiter release speed, from fastest (0) to slowest (1)

Analog Inputs​

AddressGetSetDescription
/plus/<id>/mic/volumefloat 0.0–1.0float 0.0–1.0Mic mix volume
/plus/<id>/mic/panfloat 0.0–1.0float 0.0–1.0Mic mix pan (0.5 is center)
/plus/<id>/mic/gainint 0–8int 0–8Mic analog gain (corresponding dB values: 0dB, 3dB, 6dB, 12dB, 18dB, 24dB, 30dB, 40dB, 50dB)
/plus/<id>/mic/trimfloat 0.0–30.0float 0.0–30.0Mic digital trim (in dB)
/plus/<id>/mic/phantompowerint 1 or 0int 1 or 0Phantom power on/off
/plus/<id>/mic/hpfint 1 or 0int 1 or 0Microphone high-pass filter on/off
/plus/<id>/instrument/volumefloat 0.0–1.0float 0.0–1.0Instrument mix volume
/plus/<id>/instrument/panfloat 0.0–1.0float 0.0–1.0Instrument mix pan (0.5 is center)
/plus/<id>/instrument/gainint 0–8int 0–8Instrument gain (corresponding dB values: 0dB, 4dB, 8dB, 12dB, 16dB, 20dB, 23dB, 28dB, 33dB)
/plus/<id>/instrument/hpfint 1 or 0int 1 or 0Instrument high-pass filter on/off
/plus/<id>/line1/volumefloat 0.0–1.0float 0.0–1.0Line In 1 mix volume
/plus/<id>/line1/panfloat 0.0–1.0float 0.0–1.0Line In 1 mix pan (0.5 is center)
/plus/<id>/line1/widthfloat 0.0.0–1.0float 0.0–1.0Line In 1 mix width, if linked (1.0 is full stereo, 0.5 is mono, 0.0 is reverse stereo)
/plus/<id>/line1/linkedint 1 or 0int 1 or 0Line In 1 stereo linked with Line In 2
/plus/<id>/line2/volumefloat 0.0–1.0float 0.0–1.0Line In 2 mix volume
/plus/<id>/line2/panfloat 0.0–1.0float 0.0–1.0Line In 2 mix pan (0.5 is center)
/plus/<id>/line2/widthfloat 0.0.0–1.0float 0.0–1.0Line In 2 mix width, if linked (1.0 is full stereo, 0.5 is mono, 0.0 is reverse stereo)
/plus/<id>/line2/linkedint 1 or 0int 1 or 0Line In 2 stereo linked with Line In 1