Stoatworks Labs

Songbook

Every show file for your mixing desks, with its history

In developmentApplicationRust / Tauri
Songbook — Every show file for your mixing desks, with its history
Songbook Lite in Safari: SQ MixPad's own show on the I/O tab, parsed by the Rust core in WebAssembly.

What it does

A mixing desk's show file is the record of an event's audio system — the input patch, the channel names, the sends, the scenes — and it lives in one vendor's editor, in one vendor's format, on whatever USB stick last carried it. Songbook is a library for them. Each show is read into one brand-neutral model, kept as plain files with a content-addressed version on every save, and the file it came from (an SQ show folder, a dLive or Avantis show archive, a Yamaha .CLF or a DM3 / TF / DM7 scene) is kept beside it byte-exact, so what the desk needs is always there.

Once a show is in the model it can be looked at and edited: the units and sockets with what feeds what, every channel with its source, preamp, fader, pan, assignments and sends, the buses and the output patch, the DCAs and mute groups, the scenes and the cues. The same model goes into a PDF — cover, desk and I/O, the input list, the send matrix, buses and outputs, scenes and cues, the import notes, the version history — into an input-list CSV, and into label strips as 300 dpi PNGs at the fader pitch you give it.

Conversion is where a brand-neutral model earns its keep. An SQ show becomes a DM3 one, or a QL5 file becomes an Avantis show, re-keyed in the target's own spelling and held against its capacity — names cut to its length, colours mapped to its palette, buses beyond its count dropped with every send into them — and every adaptation and drop is a note the converted show carries. Capability tables cover the whole SQ, dLive, Avantis, Qu, CQ, CL/QL, TF, DM3, DM7 and RIVAGE PM ranges.

It writes two vendor formats back. The SQ image's checksum (a CRC-32 after the header) and the CL/QL file's (a one's-complement word sum over its record) were worked out from controlled saves in the vendors' own editors and confirmed in their binaries, so a show's input patch, scene names and channel names go back into a copy of the file it came from, with everything the reader does not decode carried over untouched — SQ MixPad re-saved a Songbook-written NVDATA.DAT byte-identical, and QL Editor loads a written .CLF while refusing one with a single checksum bit flipped.

It also talks to the desks: pull the whole mix from a Yamaha desk over SCP (names, colours, faders, mutes, sends, head amps, the scene list) or from an Allen & Heath desk over MIDI/TCP, push the same back, recall scenes, store scenes on a Yamaha. And it writes a Bitfocus Companion page for the allenheath-sq, allenheath-dlive, allenheath-avantis or yamaha-rcp module, and reads one back to check which of its buttons still match the show. It is a desktop app rather than only a browser tool because the desks speak raw TCP (MIDI on 51325, SCP on 49280) that a page cannot reach; Songbook Lite is the same app without that, in a browser tab.

  • A library of plain files with a version on every save — diff any two, restore any one; the vendor files kept beside the show
  • Import SQ show folders (NVDATA.DAT + SCENEnnn.DAT), dLive and Avantis show archives, Yamaha CL/QL .CLF console files, DM3 / TF / DM7 scenes and presets, Songbook JSON
  • Units and sockets with what feeds what; every channel with its source, preamp, fader, pan, assignments, processing on/off and sends; buses, DCAs, mute groups and the output patch; scenes and cues — all editable
  • PDF documentation: cover, desk and I/O, the input list, the send matrix, buses and outputs, DCAs and mute groups, scenes and cues, the import notes, the version history
  • An input-list CSV and printable label strips at the fader pitch you give it
  • Write back into a copy of the file it came from: an SQ show's input patch and scene names, a CL/QL file's input patch and channel names, with the vendor checksum recomputed
  • Conversion between any two desks with an honest report — carried, adapted, dropped — and capability tables for SQ, dLive, Avantis, Qu, CQ, CL/QL, TF, DM3, DM7 and RIVAGE PM
  • Pull the mix from a Yamaha desk over SCP or an Allen & Heath desk over MIDI/TCP; push it back; recall and store scenes
  • A Bitfocus Companion page per show for the allenheath-sq, allenheath-dlive, allenheath-avantis or yamaha-rcp module, and a read-back that checks a page against the show
  • Mirror the library with a folder or over the Dropbox, Google Drive and OneDrive APIs
  • Songbook Lite: the same app in a browser tab, on the same Rust core as WebAssembly, with the library in the browser's own storage

Where it stands

In development; no tagged build yet. The file readers were built against the vendors' own offline editors (Avantis Director, SQ MixPad, QL Editor, DM3 Editor, TF Editor) and the two writers were verified in them: SQ MixPad loaded a Songbook-written show and re-saved its NVDATA.DAT byte-identical, and QL Editor loads a written .CLF while refusing one with a single checksum bit flipped. The live drivers follow the published protocol documents and a DM3 this fleet has driven before, but no desk has yet been pulled from or pushed to by this code, and no console has loaded a Songbook-written file. The three cloud providers have not been run against a live account, and a generated page has not yet been imported into a running Companion.