tabula

Tools for Behringer X32 / Midas M32 consoles — emulator, remote GUI, show recording.

View the Project on GitHub yoda-jm/tabula

tabula — plan

tabula is a set of tools around Behringer X32 / Midas M32 consoles, written in Go: a console emulator, and a client that connects to a console (or to the emulator) and serves a web GUI to inspect and drive it, record shows and replay them, and later share them with live viewers.

Binaries

Binary Role
tabula-emu Pure console emulator. Speaks the console’s OSC protocol on UDP 10023 so that X32-Edit, M32-Edit, Mixing Station, Maillot’s tools — and the tabula client — can connect to it. Optional read-only HTTP debug page showing the stored state, the traffic and every request it did not understand. It is not a console UI.
tabula Client. Connects to a console or to tabula-emu over OSC and serves a web GUI on an HTTP port: connection setup, every console menu, recording, replay…

Both share the same library (pkg/).

Library

Package Content
pkg/osc OSC 1.0 codec with the console’s leniencies (missing type tags, node replies without a slash).
pkg/schema The parameter tree: every address, its type, range, steps and how it is written in node/scene text. Built from Maillot’s protocol document and checked against real scene files.
pkg/scene Scene file (.scn) read/write.
pkg/state In-memory state store with a change feed; used by the emulator (as the console’s memory) and by the client (as a mirror of the console).
pkg/emu The emulator’s protocol server and debug HTTP page.
pkg/console The client side of the protocol: discovery, full sync, /xremote keepalive, meters, rate-limited writes, library commands.
pkg/session Recording and replay; exports for audio editors.
pkg/audio Audio capture of the console’s USB card: one WAV file per track, sync with the session.

Milestones

1. Emulator — protocol core (done)

2. Emulator — what X32-Edit / M32-Edit need (in progress)

Driven by the unknown-request log while connecting the real editors:

3. Client — connection and GUI v1 (in progress)

4. Recording and replay (in progress)

5. Live viewers, roles, band screens (in progress)

Protocol notes

Open decisions