tabula

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

View the Project on GitHub yoda-jm/tabula

Access: in-ear mixes for musicians, viewers

One tabula serves every device of the band at once. Each device gets a role:

Role Sees Changes
engineer everything everything (once writes are armed)
musician their in-ear mix the sends to their bus from every channel, aux input and FX return, and their bus volume and mute
viewer everything nothing
none a “no access” page (or the sign-in page) nothing

The machine running tabula is the engineer, unless an engineer password is set: then every browser signs in with it, that machine included. Other devices get their role from an access link the engineer makes for them; without one they get the guest role, none by default (-guest viewer lets anyone on the network watch, -guest engineer gives everyone full control as before).

At a gig

  1. Start tabula so the whole network can reach it, connected to the console:

    tabula -http :8033 -console 192.168.1.62
    
  2. On the Access page, make a link for each musician: their name and the bus of their in-ear mix (the list shows the bus names from the console). Viewers and a second engineer device (a tablet at front of house) get links of their role.
  3. Show the link’s QR code: the musician scans it with their phone, which opens their mix. The phone remembers the access (a cookie); the musician does not need the link again.

The Access page: settings, the engineer password, a new link, and the links, one with its QR code

Links are made of the address of this machine and a secret: when the laptop has several addresses (Wi-Fi and Ethernet), pick the one the phones use in Links use.

The musician’s page

A musician's in-ear mix on a phone

The page is a small desk filling the phone’s screen:

Musicians change their mix even when writes are not armed on the engineer’s side, as long as Musicians can change their mix is on (the default) on the Access page. Turning it off makes every musician page read-only at once. The engineer can see any mix as its musician does on the In-ears page.

A musician cannot change anything else: not the send taps (pre/post), not another musician’s mix, not the channels themselves. tabula checks every write, so this holds for anything talking to its API, not only its pages.

Engineer password

Without a password, whoever uses the machine running tabula has full control. Set one in Engineer password on the Access page (8 characters or more) and every browser has to sign in with it to be the engineer, the machine itself included; a browser stays signed in (a cookie) until it signs out.

The engineer password and the signed-in devices on the Access page

Security

tabula uses plain HTTP on the local network. Anyone holding a link, or able to read the network traffic, has that access (the password included, when signing in from another device); delete a link to revoke it. Without an engineer password, every request from the machine itself is the engineer’s: anyone at the laptop has full control, and behind a reverse proxy on that machine (to add HTTPS, say) every request comes from the machine itself, so every device would be the engineer: set a password then. In any case, do not expose tabula beyond the band’s network (no port forwarding). An engineer link or a session from another device controls the console and the recordings but cannot make tabula run a program of its choice: a custom audio recorder command is only accepted from the engineer on the machine itself (signed in there when a password is set; behind a reverse proxy, from any engineer).

Other sites. A web page of any site open in a browser of the laptop sends its requests from the laptop too. tabula refuses what such a page could do with it:

See the HTTP API for the endpoints.