ContentsOSC

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

Metadata

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

  1. After approval, read the UDP port from /osc/udp/port i:port inside /osc/init.
  2. 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