XOSC's mapping surface is a node graph. Inputs on the left, OSC outputs on the right, wires between them. Nothing else.
Topology
- One input → one output: the boring case. One press fires one OSC packet.
- One input → many outputs: fan-out. Useful when one button needs to fire several Resolume actions at once (trigger a clip and set an opacity, etc).
- Many inputs → one output: fan-in. A single OSC packet that any of several inputs can trigger.
- Many inputs → many outputs: full mesh. Wire whatever you want.
Source kinds
- Input — physical device captured locally: keyboard, MIDI, gamepad, serial.
- Resolume In (v0.3+) — subscribes to a Resolume parameter via the WS bridge (
parameter_updateframes) and acts like any other input source. Use it to mirror or rebroadcast a parameter (e.g. layer 1 opacity → layer 2 opacity, or layer opacity → an OSC packet on a different port for a hardware light controller).
Sink kinds
- OSC Out — one UDP packet per fire (or throttled stream for continuous values).
- Resolume Out —
trigger/set/resetover the multiplexed WS bridge.
Value transform (continuous inputs)
When a continuous input (MIDI CC, pitch bend, gamepad axis, Resolume In) is selected, the inspector shows a value transform section:
- Invert — replaces
vwith1 − v. - Min / Max — remaps the input range; everything below min becomes 0, everything above max becomes 1.
- Curve — exponent applied after remap.
1.0is linear;> 1is exponential (slow start, fast end);< 1is logarithmic (fast start, slow end). Presets:log(0.5),lin(1),expo(2),expo²(3). - Deadzones — center (axes that idle at 0.5), low (snap to 0 below threshold), high (snap to 1 above). Stack as needed.
Snap and grid
Nodes snap to a grid (default 16 px) so layouts stay tidy. Toggle snap in Settings → Snap nodes to grid.
Colours
Each node has a colour, picked from a 12-swatch palette. Wires are gradient-coloured from the source node's colour to the target's, with a soft glow that follows the theme accent. Use colours to group related bindings — all "scene 1" inputs in cyan, all "FX" outputs in magenta, etc.
Selecting and deleting
Click a node to select; its inspector appears in the right-hand panel. Press Delete (or use the Delete node button in the inspector) to remove. Removing a node also removes all wires touching it.
Saving
Everything is auto-saved to %APPDATA%/XOSC/xosc.config.json, debounced 350 ms after the last change. Use the import/export buttons in the toolbar to share a setup with another machine — it's a single .xosc (JSON) file.