OSC
Connection
|
|
| Discovery |
Bonjour _osc._tcp |
| Control |
TCP, SLIP-framed (OSC 1.1). Unframed connections are closed. |
| Streams |
UDP, one OSC packet per datagram |
| Ports |
Random per launch. Fixed ports: Session Manager → Advanced (defaults TCP 5656, UDP 5657) |
| Types |
s string · i int32 · f float32 · T/F bool · b blob |
| Indices |
1-based (Track 1 = 1) |
Approval
A new client appears as pending in the WildTrax Session Manager. Approve it, then enable Write to send commands. Enable AutoJoin to skip approval on later launches.
Commands that need permission, or a higher WildTrax plan on the host, reply with /osc/error.
Session
| Address |
Args |
|
/osc/hello |
s:name s:deviceType s:deviceUuid s:appVersion |
Optional. Names the client in Session Manager. |
/osc/ping |
|
Reply: /osc/pong |
/osc/session/request |
|
Resend full state |
On approval the server sends /osc/init followed by the per-item state below. /osc/init has one blob argument containing a serialised OSC bundle. Parse the blob as a bundle.
Commands
Transport
| Address |
Args |
/osc/record/start |
|
/osc/record/stop |
|
/osc/record/falsestart |
Asks for confirmation on the host |
/osc/record/falsestart/confirmed |
Discards the take |
Tracks
| Address |
Args |
/osc/track/arm |
i:track T/F |
/osc/track/mute |
i:track T/F |
/osc/track/monitor |
i:track T/F |
/osc/track/pan |
i:track i:pan |
/osc/track/name |
i:track s:name |
/osc/track/add |
|
/osc/track/remove |
i:track |
/osc/track/count |
i:count |
| Address |
Args |
/osc/metadata/set |
s:field s:value — field: project scene slate take roll |
/osc/metadata/note/set |
s:value |
/osc/metadata/next/set |
s:field s:value |
/osc/metadata/next/reset |
|
/osc/metadata/flag/set |
s:flag T/F — flag: autoIncrementSlate autoIncrementTake autoIncrementRoll autoResetSlateWithScene autoResetTakeWithScene autoResetRollWithScene |
/osc/metadata/marker/add |
|
/osc/metadata/notebank/add |
s:note |
/osc/metadata/notebank/remove |
i:note |
/osc/metadata/notebank/insert |
i:note — appends the saved note to the current note |
Config
| Address |
Args |
/osc/config/preroll/set |
T/F:enabled i:size |
/osc/config/monitor/set |
T/F |
/osc/config/smoothness/set |
f (0–1) |
/osc/playback/volume/set |
i (0–100) |
/osc/matrix/set |
s:input\|output i:row i:col T/F |
Soundboard
| Address |
Args |
/osc/soundboard/play/now |
i:pad |
/osc/soundboard/play |
i:pad i:frameHi i:frameLo — play at a reference frame |
/osc/soundboard/stop |
i:pad |
/osc/soundboard/pad/add |
|
/osc/soundboard/pad/remove |
i:pad |
/osc/soundboard/pad/move |
i:from i:to |
/osc/soundboard/pad/title |
i:pad s:title |
/osc/soundboard/pad/color |
i:pad s:color |
/osc/soundboard/pad/fadein |
i:pad T/F |
/osc/soundboard/pad/fadeout |
i:pad T/F |
/osc/soundboard/pad/repeat |
i:pad T/F |
/osc/soundboard/pad/solo |
i:pad T/F |
/osc/soundboard/pad/triggermode |
i:pad i:mode |
/osc/soundboard/pad/routingmode |
i:pad i:mode |
/osc/soundboard/pad/routing/cell |
i:pad i:src i:dst f:gain |
/osc/soundboard/pad/routing/init |
i:pad |
Playlist
| Address |
Args |
/osc/playlist/play |
|
/osc/playlist/stop |
|
/osc/playlist/loop |
T/F |
/osc/playlist/index |
i:row |
/osc/playlist/row/add |
|
/osc/playlist/row/remove |
i:row |
/osc/playlist/row/move |
i:from i:to |
/osc/playlist/row/title |
i:row s:title |
/osc/playlist/row/color |
i:row s:color |
/osc/playlist/row/routingmode |
i:row i:mode |
/osc/playlist/row/routing/cell |
i:row i:src i:dst f:gain |
/osc/playlist/row/routing/init |
i:row |
Export files
| Address |
Args |
/osc/exportfiles/add |
|
/osc/exportfiles/remove |
i:file |
/osc/exportfiles/update |
i:file s:field b:{"value":…} — field: name folder fileFormat trackExportType selectAllTracks |
/osc/exportfiles/track/toggle |
i:file i:track |
/osc/exportfiles/resolvednames |
T/F |
Sound report
| Address |
Args |
/osc/soundreport/subscribe |
T/F — required to receive sound report state |
/osc/soundreport/autosave |
T/F |
/osc/soundreport/csv |
s:folder — reply: /osc/soundreport/csv/data s:folder b:csv |
/osc/soundreport/entry/edit |
i:row s:field b:{"value":…} |
Spectrum
| Address |
Args |
/osc/spectrum/channel |
i:channel — replaces the subscribed set |
/osc/spectrum/channel/add |
i:channel |
/osc/spectrum/channel/remove |
i:channel |
Values
| Arg |
Values |
| pan |
0 left · 1 right · 2 center |
| triggermode |
0 latched · 1 momentary |
| routingmode |
0 auto · 1 stereo · 2 mono left · 3 mono right · 4 mono center · 5 custom |
State (server → client)
Pushed to approved clients on every change.
| Address |
Args |
/osc/record/state |
T/F |
/osc/config/monitor |
T/F |
/osc/config/smoothness |
f |
/osc/config/preroll |
T/F i:size |
/osc/playback/volume |
i |
/osc/theme/accent |
s |
/osc/soundboard/state |
s:padId T/F:playing — padId matches /osc/soundboard/<i>/id |
/osc/playlist/state |
i:row T/F:playing T/F:loop — row 0 = none |
/osc/playlist/progress |
i:row f:progress |
/osc/error |
s:code s:action s:message — code: permission_denied, tier_required |
Per-item
Also accepted as writes for writable fields.
| Address |
|
/osc/track/<i>/<field> |
name armed muted monitor pan armButtonState |
/osc/soundboard/<i>/<field> |
id title bgColor triggerMode routingMode fadeIn fadeOut repeat solo … |
/osc/playlist/<i>/<field> |
|
/osc/exportfiles/<i>/<field> |
|
/osc/soundreport/<i>/<field> |
Subscribers only |
/osc/soundreport/count |
Subscribers only |
/osc/metadata/<field> |
project scene slate take roll note + auto flags |
/osc/metadata/next/<field> |
|
/osc/metadata/notebank/<i> · /count |
|
/osc/session/<field> |
hostName sessionName sessionId currentClientCount pendingClientCount |
/osc/session/clients/<i>/<field> · /count |
|
/osc/matrix/<input\|output>/cell/<row>/<col> |
T/F |
/osc/matrix/<input\|output>/rowlabel/<i> · /collabel/<i> · /size |
|
JSON blobs
One blob argument each. JSON indices inside blobs are 0-based.
/osc/session/state · /osc/metadata · /osc/metadata/next · /osc/metadata/notebank · /osc/tracks/batch · /osc/matrix/update · /osc/soundboard · /osc/playlist · /osc/exportfiles · /osc/soundreport · /osc/config/time · /osc/theme/usercolors
UDP streams
- After approval, read the UDP port from
/osc/udp/port i:port inside /osc/init.
- Send
/osc/udp/subscribe over UDP to that port, from the socket you'll receive on. It must come from the same IP address as the approved TCP connection.
| Address |
Args |
/osc/tick |
i:frameId f:sampleRate i:frameHi i:frameLo s:clock s:duration f…:levels — ~60/s, one level per track |
/osc/fft |
i:frameId i:channel f:sampleRate b:bins — bins are int8 dB, −100 to 0 |