XOSC sends OSC over UDP using the node-osc library. Each output node owns its own UDP client (host + port), so you can fan out to many different OSC receivers in parallel.
Address
Any OSC address Resolume — or any other receiver — accepts. Common Resolume patterns:
- Trigger a clip:
/composition/layers/<L>/clips/<C>/connect - Set a layer opacity:
/composition/layers/<L>/video/opacity - Trigger a column:
/composition/columns/<N>/connect
Argument types
XOSC supports the standard OSC type tags:
i— 32-bit integerf— 32-bit floats— stringT— true (no payload)F— false (no payload)N— nil (no payload)
int 1 to fire.
Trigger modes
- Pulse — on every press, fire the configured args once. Releases are ignored. Use for clip launches, one-shot effects.
- Toggle — internal boolean flips on each press. Sends
int 1/int 0alternately, overriding the configured int args. Use for switches. - Hold — sends
int 1on press,int 0on release. Override ofi/fargs. Use for "while held" effects.
Multiple destinations
Need to send the same trigger to two different OSC receivers? Add two output nodes, give them different host/port settings, and wire the same input to both. XOSC dispatches in parallel.
Resolume's modifier prefix
If you're targeting Resolume specifically, it accepts a special arg-prefix convention for relative math: send a string arg first ("a", "+", "-", "*", or "?"), then a float. See Resolume — OSC integration for the full table; in XOSC's output-node inspector, just add a string arg, then a float arg, in that order.