Skip to main content

OSC (Open Sound Control)

phix supports OSC (Open Sound Control) for network-based remote control. OSC is commonly used by apps like TouchOSC, Lemur, and Resolume to send control messages over Wi-Fi.

Enabling OSC#

osc enableosc disable

Configuring the OSC server#

Set the listen address and port (phix listens for incoming messages):

osc listen 0.0.0.0 8000    -- listen on all interfaces, port 8000

Default settings:

  • Listen address: 0.0.0.0 (all interfaces)
  • Port: 8000

OSC feedback#

phix can send OSC messages back to a client when state changes (for updating button LEDs, fader positions, etc.):

osc feedback enableosc feedback target 192.168.1.100 9000    -- send feedback to this IP and portosc feedback disable

Creating OSC bindings#

Map an OSC address pattern to a phix command:

osc bind /phix/go "go 1"osc bind /phix/go/{n} "go {n}"osc bind /phix/preset/{cat}/{slot} "preset {cat}.{slot}"osc bind /phix/fader/{id} "master {id} value {value}"

Value substitution:

  • {value} โ€” the first OSC argument (float, normalized 0.0โ€“1.0)
  • Named wildcards in the path (e.g., {n}) are captured and can be used in the command

Listing and removing bindings#

list osc             -- show all bindingsosc unbind /phix/go  -- remove a bindingosc clear            -- remove all bindings

Example โ€” TouchOSC integration#

In TouchOSC, create buttons and faders with these OSC addresses:

ControlAddressphix binding
Go button/phix/gogo 1
Release button/phix/releaserelease 1
Grand fader/phix/grandmaster 0 value {value}
Color preset 1/phix/color/1preset 3.1

Set up in phix:

osc enableosc listen 0.0.0.0 8000osc bind /phix/go "go 1"osc bind /phix/release "release 1"osc bind /phix/grand "master 0 value {value}"osc bind /phix/color/1 "preset 3.1"

Point TouchOSC at your phix machine's IP address, port 8000.