← All docs
OSC

OSC output

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
To find the address for any control: Resolume → Shortcuts → Edit OSC, click the control, copy from the bottom-right.

Argument types

XOSC supports the standard OSC type tags:

  • i — 32-bit integer
  • f — 32-bit float
  • s — string
  • T — true (no payload)
  • F — false (no payload)
  • N — nil (no payload)
Arguments are sent in order. Most Resolume controls accept a single 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 0 alternately, overriding the configured int args. Use for switches.
  • Hold — sends int 1 on press, int 0 on release. Override of i / f args. 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.