← All docs
Mapping

The node graph

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_update frames) 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 Outtrigger / set / reset over 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 v with 1 − v.
  • Min / Max — remaps the input range; everything below min becomes 0, everything above max becomes 1.
  • Curve — exponent applied after remap. 1.0 is linear; > 1 is exponential (slow start, fast end); < 1 is 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.
Transforms apply per source node. Multiple input nodes bound to the same physical event each carry their own transform — useful when you want the same MIDI knob driving two outputs with different curves.

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.