Stoatworks Labs

Four tools for the LivePremier, and a second page for the generation before it

Analog Way

The frame will tell you almost anything. Its own interface asks you to go and look.

An Analog Way LivePremier is a very capable processor with a very literal control surface. Everything it knows is reachable — the object model is enormous and the device answers honestly — but the stock Web RCS shows it one panel at a time, has no cue stack, cannot be driven from a fader or a command line, and wants a finished number in every numeric field rather than the arithmetic you did in your head to get there.

None of these replace that interface. Three of them sit beside it and one of them sits inside it, and all four are built on the same protocol work: AWJ, the JSON-over-WebSocket interface the device's own web application uses. They are separable on purpose — take the cue stack without the VPU map, or the control surface without either.

The older Midra and LiveCore processors are a different problem with a different answer. Those boxes still work; the software written to drive them does not, because it was built on runtimes that no longer exist. openRCS is a new control surface written against the protocol rather than against the dead application, and it has a page of its own.

The switcher's own interface, with the missing panels

LivePremier Plus

A local proxy — you browse to it instead of to the frame

Point it at a switcher and the vendor's own Web RCS comes up with five additions already in it, drawn with the vendor's own stylesheet and riding the vendor's own connection, so the device still counts one client. It is the whole of this page in one place for anyone who would rather not run three things.

  • VPU Map — the mixer allocation as a budget: fitted, held, spare, and what a staged configuration would change
  • Console — a lighting-desk command line: "Recall Screen 1 Memory 5", or "R Sc 1 Me 5"
  • Timeline — a theatre cue stack that advances on one GO, with per-cue fade, delay and follow times
  • MIDI Mapping — a control surface on the layer under your hands, with soft pickup so a fader cannot jump a live value
  • Arithmetic in numeric fields: type 1080-80 into a layer width and get 1000
ReleasedJavaScriptv0.3.1
LivePremier Plus — Your switcher's own interface, with the missing panels

Control without the interface

Mynah

A browser, a desktop app or a container — plus a Stream Deck

The command line and the show-control surface on their own, for when you do not want the vendor UI in front of you at all. Type what you want to happen, or put it on a button. The hosted site is a demonstration only and always will be: a page served over HTTPS cannot open a connection to a switcher on your network, so driving hardware means running it locally.

  • A terse command syntax that abbreviates — "Recall Screen 1 Memory 5" or "R Sc 1 Me 5"
  • Desktop builds, a container image, and a hosted demo that is honest about being one
  • A Bitfocus Companion module with 123 presets, verified in Companion 5.0.1
ReleasedTypeScriptv1.3.3
Mynah — Type the cue, don't hunt for it

Where every mixer in the chassis went

Aquilon VPU Map

A desktop app, a server or a container — reads only

Every layer costs physical mixing hardware, and a frame will not tell you a configuration does not fit until it fails to fit. This reads the allocation back and draws the whole chassis on one screen, each VPU as the 8x8 field of links the manual draws it as. It also diffs the running map against the staged one, which catches the case where every difference is a link moving and no property changes at all.

  • The grid follows the manual's own figures — a row is one layer link, columns belong to screens
  • "Will it fit?" answered from the device's own figures rather than inferred
  • Save a reading before the show, compare against it during
  • Three recorded configurations ship with it, so it is usable with no frame attached
ReleasedJavaScript / Rustv1.2.0
Aquilon VPU Map — Where every mixer in the chassis went

Faders, encoders and buttons on the frame

AWJ Surface

A local server, with a control surface on USB or OSC

Opacity, size and position are continuous values, and a continuous value wants a fader under a hand rather than a number in a field. Bidirectional, so motor faders track the device and scribble strips name the layer each strip is pointed at. Its read-only mode is enforced by the client having no reachable write path rather than by a flag — which matters more than it sounds, because on this device subscribing is itself a write.

  • X-Touch, APC40, MIDICON PRO and MIDICON-2 profiles, plus OSC and learn-anything
  • Bindings say PREVIEW or PROGRAM and resolve per event, because which preset letter is on air moves at every take
  • Bring-up tab: sweep every control and it reports what the profile got wrong
  • The same engine LivePremier Plus runs in the browser — this repo is one host of it
In developmentJavaScript
AWJ Surface — A fader that follows the switcher back

One protocol under all four

Everything here speaks AWJ — the JSON-over-WebSocket interface the device's own web application uses, on TCP 10606. It is a leaf-oriented protocol: you can read and write a property if you already know its path, and you cannot enumerate anything, because a container answers with an empty object. That normally means a control application is limited to whatever paths somebody managed to observe.

The way past it is the vendor's own bundle. The Web RCS ships as an unminified webpack build that keeps its original TypeScript module paths and its generator's headers, so the entire object model — every collection, every property with its type, range, default, read-only flag and enum members — is recoverable from the file the switcher already serves you. Take the model from there, then read the leaves over AWJ. That is why the parameter catalogue in the control surface has real limits rather than guessed ones: 67 layer parameters and 19 screen controls, generated from the switcher rather than typed from a PDF.

It also explains a trap that runs through all four. Subscribing is a write — the Subscriptions list is a `replace` on a path like anything else — so a tool that means to watch a live frame and not touch it cannot get there by declining to call `set()`. The read-only paths here are built with no reachable write path at all, and poll instead.

What has been on a real frame

More of this than is usual, and it corrected things rather than confirming them. The VPU map has read a real Aquilon C end to end in two configurations, and the second corrected two things the first had made look settled. The control surface's whole chain — a fader movement through to an opacity write, a TAKE, and the preset flip that follows it — has been exercised on a real Aquilon C, with the frame captured first and all 87 values verified restored afterwards. The preset-letter rule was settled by firing a take and re-reading rather than by reasoning about it.

What has not happened is just as specific. No physical control surface has ever been plugged into the surface host — the four controller maps come from published documentation, and a MIDI implementation chart is exactly the kind of document that is quietly wrong, which is why there is a bring-up mode. The VPU map has never seen a Link setup, a capacity other than 4K or 5K, a combined VPU, Optimized mode or Cut & Fill; its repository says which recorded capture would settle each one, and the guide for recording it assumes nothing.

There is no Aquilon here any more, so from here on the recorded captures are the ground truth. A capture from your frame is the single most useful thing anyone can send.

Why there is no hosted demo of the proxy

LivePremier Plus has no hosted demo and cannot have one. The interface you would be looking at belongs to Analog Way and is served by your switcher: the proxy carries it and contains no part of it, so without a device there is genuinely nothing to show. Run it from the container, a desktop build or a checkout on the same network as the frame.

The demo that does exist — Mynah's hosted site — is a demonstration of the command syntax and nothing more. A page served over HTTPS cannot open a connection to a switcher on your network, so no hosted copy of any of this will ever drive hardware, however much it looks like it might.

Not affiliated with Analog Way

Analog Way, LivePremier, Aquilon, Midra, LiveCore, NeXtage, Ascender and Pulse2 are their vendor's names, and none of this is endorsed by, supported by or connected to them. Product names are used only to describe what the software talks to.

The protocol work was done against device behaviour and against files the device itself serves, not against a specification anybody published. Treat it as accurate for the frames and firmware it has been tried on and no further — each project's own page says exactly which those are.

Everything else

There's more where this came from

This is one corner of it. The full index covers audio, video, RF, content management, show control and the networking underneath.

Browse all software