Tools
DMX Gateway
sACN ↔ Art-Net conversion that behaves like show infrastructure, not like a utility you have to babysit.
Both directions run at the same time, on interfaces you pick explicitly. The forwarding path adds about six microseconds. A native macOS app and a 1.6 MB Docker image share exactly the same core, so what you tested on a laptop is what runs in the rack.
Written for the room, not the datasheet
Most gateways are fine until the moment they are not, and then they tell you nothing. This one is built around the failures that actually happen on a job: the wrong network card, a switch that eats multicast, a node that never joins a group, a console that keeps sending after another one takes over.
Interfaces are never guessed
Every socket is pinned to an interface you name, in both directions independently. Multicast groups are joined on that interface, and each packet can be checked against the one it arrived on — so a machine sitting on two lighting networks cannot quietly feed one into the other.
The cheap-node problem, solved on purpose
Plenty of inexpensive nodes and LED bars ignore IGMP completely. They never see multicast and sit dark while the console insists everything is fine. Point a sACN output at broadcast and the same stream reaches them.
You can see which route is working
Every route line carries its own live packet rate. Malformed packets, out-of-order frames, loops and lower-priority sources are counted separately, so a fault has a number next to it instead of a shrug.
It recovers by itself
An interface that disappears, comes back, or returns with a new address faults only its own endpoint. That endpoint retries every two seconds and re-joins its groups. The rest of the show keeps running.
Measured, not claimed
The app contains the benchmark that produced these tables. It pushes real frames through real kernel sockets and reads a timestamp back out of the DMX payload, then raises the universe count until something gives. Run it on your own machine and you get your own numbers.
Apple Silicon Mac, 18 cores
| Universes | Packets/s | Mbps | Loss | p50 | p99 | CPU |
|---|---|---|---|---|---|---|
| 64 | 2 817 | 11.9 | 0.000% | 6 µs | 25 µs | 7% |
| 256 | 11 267 | 47.8 | 0.000% | 6 µs | 12 µs | 29% |
| 512 | 22 524 | 95.5 | 0.000% | 6 µs | 25 µs | 82% |
Linux container, host networking
| Universes | Packets/s | Mbps | Loss | p50 | p99 | CPU |
|---|---|---|---|---|---|---|
| 32 | 1 408 | 6.0 | 0.000% | 3 µs | 49 µs | 4% |
| 128 | 5 640 | 23.9 | 0.000% | 2 µs | 25 µs | 8% |
| 256 | 11 270 | 47.8 | 0.000% | 3 µs | 25 µs | 13% |
p50 and p99 are time spent inside the forwarding path itself. Loss is measured as genuine gaps in an in-band packet index, so a frame still in flight at the edge of a measurement window cannot be mistaken for a lost one. Over loopback, which isolates the machine rather than the wire.
Set up in one screen
Presets cover the usual jobs, including the offset between sACN counting from one and Art-Net counting from zero — the classic way a rig ends up one universe out. A preset is a starting point, not a mode: everything it creates appears on the routes page, where you can read and change it.
grandMA3 → Resolume
sACN multicast in one network, Art-Net broadcast out the other, with the universe offset already right.
grandMA3 ↔ Resolume
Both directions at once, on separate interfaces. What most shows actually want.
sACN multicast → broadcast
For nodes and LED bars that ignore IGMP and never see multicast at all.
sACN → Art-Net node
Unicast straight to the addresses you list, so a busy network stays quiet.
On the laptop
A native Apple Silicon app. Six panes: monitor, routes, interfaces, settings, benchmark and log. It lives in the menu bar as well as the Dock, so closing the window hides it rather than stopping the show, and quitting mid-show asks first. Idle it costs about one percent of a core.
In the rack
A 1.6 MB container on scratch: no shell, no package manager, running unprivileged. Configure it with a file or entirely from environment variables, and watch it over a JSON status endpoint. Same core as the app, so it behaves identically under Proxmox.
One payment. No subscription.
4 999 Ft
Buy it once and it is yours, updates included. There is no account to make, no licence server to reach, and nothing that stops working if this website ever goes away.
- · The macOS app, with the headless daemon bundled alongside it
- · The Docker image and its configuration, for Linux and Proxmox
- · Unlimited universes, limited only by the machine
- · No telemetry, no analytics, no network calls beyond your own lighting network
Support
Write to gergo@riegergeri.com. If something misbehaved during a show, the app's log page has a Reveal File button — send that file and the answer is usually in it.
Privacy
The app collects nothing and sends nothing anywhere. Full details on the privacy policy page.
Also from the workshop
Cue Monitora pyro countdown on LTC timecode →