OSC Output
Send Open Sound Control (OSC) messages over the network.
What it does
OSC Output sends a value from the graph out over the network as an OSC (Open Sound Control) message, to a host and port you set. It is a per-frame sink: for as long as the node is enabled, whatever is wired in goes out to the OSC Address you set, in the shape Value Type selects, a single number, a 2D vector, a 3D vector or a colour.
Only the input belonging to the selected Value Type is sent. With Value Type on vec3 the vec3 input goes out and the vec2 and color inputs sit unused. Send On Change skips re-sending a value that has not moved, which keeps the network quiet when many of these nodes run at once.
When to use it
A lighting console, VJ tool or sound engine (TouchDesigner, Resolume, Max/MSP, Ableton) driven from values happening inside the graph
A live number, position or colour broadcast to another app on the same network
A control-surface bridge, one OSC Output node per OSC address
| Parameter | Type | Default |
|---|---|---|
host | String | "127.0.0.1" |
port | Number | 8000 |
address | String | "/output/1" |
value_type | String | "float" |
value | Number | 0 |
vec2 | Vec2 | (0, 0) |
vec3 | Vec3 | (0, 0, 0) |
color | Color | rgba(0.00, 0.00, 0.00, 1.00) |
enabled | Boolean | true |
send_on_change | Boolean | true |
Gotchas
Value Type decides which input is sent. Switching from float to vec3 does not convert the existing Value into a vector. Wire the vec3 input directly, or the message goes out as zeros.
There is no dedicated integer input. int reuses the same Value field as float, and the value is not rounded on the way out, so set Value to a whole number.
Leave Send On Change on for continuous sources like audio level or pointer position. It avoids sending the receiving app an identical message every frame.
Worked example
Add an OSC Output node. Set Host to the receiving app's IP address (127.0.0.1 if it is running on the same machine) and Port to match what that app is listening on.
Set OSC Address to the path the receiving app expects, e.g.
/my/param.Set Value Type to match what you are sending,
floatfor a single number,colorfor RGBA, and wire the matching input from upstream.Leave Enabled on and Send On Change on, then trigger a cook and confirm the receiving app sees the message arrive.
See also
OSC Input · MIDI Output · MQTT Publish · Numbers, signals & audio