OSC – Open Sound Control
The DMX Core 100 speaks OSC (Open Sound Control), so applications like TouchOSC, QLab, lighting consoles, and media servers can trigger playback and control levels over the network — with live status fed back to the controller.
Server Settings
The OSC server listens on UDP port 8000 by default. The port is configurable under Device > System > OSC Port in the Web UI (requires a restart). No other setup is needed — the built-in addresses below work as soon as the device is on the network.
Three Ways to Use Incoming OSC
- Built-in addresses — a fixed set of
/dmxcore/...addresses that play cues, apply presets, start effects, and set levels by code. Nothing to configure: send/dmxcore/cue/ACT1and the cue with codeACT1plays. See the reference below. This is the right fit for a show controller or playback software that just needs to fire saved cues. - Input triggers — for your own address space, or for actions the built-in set doesn’t cover (timelines, sounds, scripts, output events, stepping a Control Value, toggling output), define an input trigger of type OSC with the address of your choice. A Value-mode trigger feeds a fader’s value straight into a level.
- OSC control surfaces — bind a whole OSC layout (TouchOSC, a console’s OSC page) to a control surface for structured, bank-switchable panels with full two-way feedback, including Absolute/Relative slider modes and press-and-hold auto-repeat. The surface binds to a named OSC client, so it is the right fit for a dedicated operator panel rather than one-off cue triggers.
Built-in addresses and input triggers work at the same time: a message that matches an input trigger and a built-in address does both. A control surface, on the other hand, owns its sender: once an OSC client with a specific source IP is bound to an enabled surface, every message from that IP goes to the surface and neither the built-in addresses nor input triggers see it. A surface bound to an any-source client only claims the addresses it has assignments for and lets everything else through.
Plugins add a fourth path: a plugin can subscribe to an address pattern (for example everything under /myplugin/) and reply to the sender from the device’s OSC port. Plugin subscriptions sit between control surfaces and the paths above — a message a control surface owns never reaches a plugin, and a message a plugin matches is not passed on to input triggers. The /dmxcore/... addresses are reserved: a plugin can observe them, but the device always handles them itself. See Building & Publishing Plugins if you want to write one.
Playing a Cue
The most common use is firing saved cues from a show controller. The address is the cue’s Code / Short Name as entered on the cue’s details page:
/dmxcore/cue/ACT1Send it with no arguments to play the cue normally. Codes must match exactly as entered, including upper/lower case. For a step-by-step walkthrough and troubleshooting, see Play a Cue over OSC. To stop playback:
/dmxcore/cuecontrol/stopBuilt-in Address Reference
Keywords in the address (cue, dimmer, master, …) are matched case-insensitively. A <code> is the entity’s code from the Web UI and must match exactly.
Arguments are optional unless noted. A single float, integer, or numeric string is accepted; levels are 0.0–1.0.
Playback
| Address | Argument | Action |
|---|---|---|
/dmxcore/cue/<code> | (optional) loop count | Play the cue. Omit the argument to use the default loop count from the Cues page; send an integer to loop that many times. |
/dmxcore/cuecontrol/stop | — | Stop cue playback. |
/dmxcore/preset/<code> | (optional) fade time in ms | Fade to the preset. Omit the argument to use the default fade duration. |
/dmxcore/effect/<code> | (optional) 1 | Start the stored effect as the global effect, with its saved parameters and colors. Fires with no argument or with 1. |
/dmxcore/effect/none | — | Clear the global effect. |
Levels
| Address | Argument | Action |
|---|---|---|
/dmxcore/dimmer/master | level | Set the master dimmer. |
/dmxcore/dimmer/master/fadeto | level, fade time in ms | Fade the master dimmer to a level over the given time (two arguments). |
/dmxcore/dimmer/zone/<code> | level | Set a zone’s intensity. |
/dmxcore/control/<code> | level | Set a Level-kind Control Value — an external DSP level — with no trigger or control surface configured. |
/dmxcore/fixture/red /dmxcore/fixture/green /dmxcore/fixture/blue | level | Set the global fixture-control color channels. |
/dmxcore/fixture/<code>/dimmer /dmxcore/fixture/<code>/red /dmxcore/fixture/<code>/green /dmxcore/fixture/<code>/blue /dmxcore/fixture/<code>/white | level | Adjust a single fixture’s live modifier. |
/dmxcore/config/fadeduration | ms | Set the default fade duration used when a preset is applied without an explicit time. |
Device
| Address | Argument | Action |
|---|---|---|
/dmxcore/status | — | Re-send the full status feedback set to connected clients. |
/dmxcore/blink | 1 / 0 | Turn the identify blink on or off. |
/ping | — | Keep-alive. Registers the sender for feedback without doing anything else; not logged. |
OSC Clients and Feedback
Register the controllers you want two-way communication with under Control & Integrations > OSC Clients — each client has a name, a source IP (or any), and a feedback port (default 9000). Status messages — what’s playing, current levels, active states — are sent back to each client’s feedback port, so your TouchOSC layout’s buttons and faders track reality.

Feedback Address Reference
| Address | Value | Sent when |
|---|---|---|
/dmxcore/status/text | string | Playback state changes — e.g. Playing 'ACT1', Stopped, Recording, Previewing. |
/dmxcore/status/cue | string | Playback state changes — the code of the playing cue, or empty when none. |
/dmxcore/dimmer/master | level | The master dimmer changes. |
/dmxcore/fixture/red /dmxcore/fixture/green /dmxcore/fixture/blue | level | The global fixture-control color changes. |
/dmxcore/control/<code> | level | A Level-kind Control Value changes (the code is sent in lower case). |
A client that sets a level over OSC is treated as the master for that address for one second and does not receive its own value echoed back, so a fader being dragged doesn’t fight the feedback.
Control surfaces bound to an OSC client additionally send state for each assigned address, using the binding’s own address path.
Sending OSC from the Device
The DMX Core 100 can also send OSC: as an output event when something happens, as an OSC direct message item in a custom menu, or from a script via dmx.osc.send().