Docs

Everything is short. XOSC has very few moving parts on purpose.

Start here

Quick start

Bind a button and send your first OSC packet to Resolume in 60 seconds.

Topics

Inputs

Keyboard input

Bind any keystroke (with modifiers) as a trigger.

OSC

OSC output

How XOSC builds and sends OSC packets.

Troubleshooting

Resolume isn't reacting

A debugging checklist when packets seem to vanish.

Mapping

The node graph

Many-to-many wiring on a snap-grid canvas.

Themes

Themes and gloss

Ten built-in themes, an in-app custom theme editor, and a tunable gloss intensity.

Mapping

Keyboard shortcuts

Delete, copy, cut, and paste nodes on the canvas without reaching for the mouse.

Inputs

MIDI input

Note On / CC / Pitch Bend / Program Change from any USB MIDI device.

Mapping

Transform nodes — clamp, scale, hold-timer, latch, more

Mid-graph nodes that consume an event and re-emit a transformed one. Compose hold-timer + scale + latch the way you'd compose UNIX commands.

Mapping

Edge dispatch modes — parallel, sequential, after-prev

Control whether a fan-out fires all-at-once or in order, with delays, with optional skip-on-error.

Inputs

Gamepad input

Xbox / DualSense / DualShock / generic HID controllers via the HTML5 Gamepad API.

OSC

OSC In node — receiving OSC

Open a UDP listener and route arbitrary inbound OSC packets to any sink. Loopback by default; LAN-visible is opt-in.

Inputs

Serial input

Open any COM port. Each line of incoming data becomes a discrete trigger.

Inputs

Serial output

Sink node that writes to a COM port. Closes the Resolume → Arduino LED feedback round-trip.

Resolume

Resolume — OSC integration

Default ports, address structure, modifier args, and the OSC discovery workflow.

Resolume

Resolume — parameter picker & live previews

Browse Resolume's live composition tree from inside XOSC, with thumbnail previews for clips.

Resolume

Resolume — REST & WebSocket

When to reach for the HTTP/WS API instead of OSC, and how to use it from XOSC.

Ideas

Next-session handoff

Read-this-first brief for whoever picks up XOSC after v0.5.2 ships. Self-contained — written so you can /clear and resume cold.

Ideas

Ideas & planning notes

Forward-looking design notes for XOSC. Anything in here is a proposal, not a commitment.

Ideas

Architecture limits & loop protection

How chains actually run today, where they break, and what stops an infinite loop (spoiler — almost nothing yet).

Ideas

Dispatch semantics — fan-out, ordering, parallel vs. sequential

How XOSC fires multiple sinks from one input today, and the proposed dispatch-mode model for v0.5 (matters most for DMX + cross-protocol chains).

Ideas

v0.5 backlog (ordered)

The actual ordered to-do list for the next session, sized and dependency-tagged.

Ideas

DMX integration — feasibility study

Can XOSC drive DMX universes too? What we'd borrow from TagTable, what we can't reuse, and the realistic shape of a v0.6/0.7 milestone.

Ideas

Competitor gap analysis

Where XOSC already wins, where it loses by default, and which gaps are worth closing in v0.5+.

Ideas

Math & logic nodes (proposal)

A new node kind that's both a sink and a source. Clamp, scale, invert, hold-timer, double-tap, threshold, latch — composable mid-graph.

Ideas

OSC inbound listener (osc-in node)

Open a UDP port, parse incoming OSC, push it onto the inputBus. Closes the loop for arbitrary external OSC sources, not just Resolume's WS.

Ideas

mDNS / network auto-discovery

Find Resolume + other OSC peers on the LAN automatically so users don't have to type IP addresses.

Ideas

DMX milestone — plan index

The v0.6 plan for full DMX support, split into two parallel tracks so two agents can work the same repo.

Ideas

DMX hardware backends — port spec

Five DMX transmitters from TagTable, ported to XOSC's main process with a single Transmitter interface.

Ideas

Fixture profile library

JSON schema + 8 built-in profiles so users can pick a fixture instead of hand-rolling channel offsets.

Ideas

dmx-out and dmx-in node kinds

How DMX hits XOSC's node graph. Two new node kinds, plus a router hook that bridges to the universe bus.

Ideas

Sequence engine — cue lists, layers, priority

Port TagTable's lighting-template engine, generalize it to multi-channel, and design slot-based exclusivity on top.

Ideas

Pad launcher (Sequences panel)

New top-level panel with a grid of pads. Each pad starts/stops a sequence, hot-keyable, OSC-controllable, exposed to the input bus.

Ideas

Mixer — composing layers and graph writes into a universe frame

How writes from many sources become one 512-byte frame per universe per tick.

Ideas

Clocks — shared origins, tap tempo, external sync

How sequences can move in lockstep, and where a tempo source comes from.

Ideas

Logging and diagnostics

Cross-track. How DMX work writes to the existing debug log + sink-rate gauge + cycle detector.

Ideas

Themes and UI conventions

Cross-track. DMX lands inside XOSC's existing UI vocabulary — no new visual language, no inline colours.

Ideas

Rollout plan & milestones

How v0.6 phases land. What ships first, what ships last, what's the bare minimum that's still useful.

Ideas

HANDOFF — Track A (hardware + graph integration)

Read-this-first brief for whoever picks up Track A of the DMX milestone. Self-contained — written so you can /clear and resume cold.

Ideas

HANDOFF — Track B (sequences + pad launcher + mixer)

Read-this-first brief for whoever picks up Track B of the DMX milestone. Self-contained — written so you can /clear and resume cold.