LivePremier Plus
Your switcher's own interface, with the missing panels

What it does
A LivePremier's own web interface is good at what it does and keeps quiet about the rest. It won't tell you how the VPU is allocated until a configuration doesn't fit. It has no cue stack. It can't be driven from a command line or a fader, there's nowhere to build a look except on a bus, and every numeric field wants a finished number, not the sum you did in your head to get there.
LivePremier Plus is a small local proxy. Point it at a switcher, open it in any browser, and the vendor's own Web RCS comes up with the extras already in it, drawn with the vendor's own stylesheet and riding the vendor's own connection, so the device still only counts one client.
The Edit page is the Screens / Aux. layout with one row instead of two: a programmer that's on neither preview nor program. Build a look with the same sources and the same layer parameters, then save it straight into a real memory slot. The switcher's memory bank has an import that Web RCS doesn't expose, so the save writes no preset buffer and fires no take. Where that route can't reach the switcher's disk, a second one borrows preview and puts it back exactly as it was.
The VPU Map draws the mixer allocation as a budget: what's fitted, who's holding it, what's spare, and what a staged configuration would change. That includes the case where every difference is a link move with no property changed, which a comparison of properties alone would cheerfully call no change at all.
The Console is Mynah's command line: “Recall Screen 1 Memory 5”, or “R Sc 1 Me 5” if you're in a hurry. The Timeline is a theatre cue stack that advances on one GO, with fade, delay and follow times per cue. A cue can also fire from MIDI Time Code, LTC on an audio input, or timecode pushed from another machine. MIDI Mapping puts a control surface on the layer under your hands, with soft pickup so a fader can't jump a live value, and OSC input lets QLab, TouchOSC or a lighting desk drive the switcher without a browser open.
The Memories panel puts master, screen and layer banks (screen, aux and master on Midra) in one searchable list, with the buffer holding each memory shown beside it. The Layer tab shows every one of a layer's properties from the device's own parameter catalogue (67 on LivePremier, 57 on Midra), so when a firmware adds one, a field for it appears. Both pop out to a second monitor, and a layer you name there gets that name in the vendor's own lists too, since the switcher itself has nowhere to keep one.
Layer Groups drive several layers across screens as one, and a ganged group follows a source change made to any member, wherever it came from. A … on every source card sends an input to a layer or a whole group without dragging anything, and respects the vendor's own PGM padlock. Matrix Routing patches the frame's own sockets to a Blackmagic Videohub, a Lightware or a Turtle AV router, so a cue, the Console or OSC can route through it. You describe the cable and the direction works itself out. A router that hasn't turned up yet can be a placeholder of the right model: patch and route the show against it, then take it live and push the plan.
A Bitfocus Companion can be served on the same address, with its button pages drawn and pressable in the app, cues and memory recalls able to press a button, and a panel that knows which switcher you're pointed at and offers the connections that belong in the show. Pitch Compensation works out the H and V ratios for a screen that spans LED walls of different pitches. A Pixelhue U5-series console can drive the switcher from a model of it rather than a key map, as a preview that hasn't met a real console yet. And the whole setup (cue stack, groups, layer names, router patch and settings) saves to one file, so a rig comes back whole alongside the switcher's own backup, not half of it.
The switcher's source thumbnails are PNGs with next to no compression, up to 590 KB each, and they're asked for about once a second per input. The Thumbnail relay, off until you switch it on, answers those requests itself with JPEGs a twentieth of the size, shared between every open page. The sources in a screen you're editing refresh up to ten times a second and the rest are held.
0.15.0 added six more. HyperDecks (and Mitti, through its HyperDeck control) can be played, cued and recorded from a panel, a cue or OSC, and can follow the show the way Mitti follows an ATEM: play when their input goes on air, load the next clip when it comes off, take when a clip ends. Layer Lock keeps a layer where it is through a take, or takes one layer on its own, which the switcher can't do by itself. An EDID builder puts the Otter EDID editor on the switcher's own EDID page, with one EDID per custom format saved straight into the bank, and its Mosaic mode groups inputs so a Mac joins several outputs into one display. Pixelhue Mapping draws a U5 console so any key, fader or encoder can be given another job, and a DaVinci Resolve Speed Editor can drive the switcher over USB or Bluetooth. All six have only been proven on the simulator and emulated decks.
0.16.0 puts the Speed Editor on a real panel. A browser page couldn't hold on to it, because Chrome on macOS can't read the panel's handshake, so USB panels now belong to a device host: a small program of the app's own that it starts, restarts if it stops, and that only opens a panel while a page is using it. CUT, the CAM keys, the wheel and the battery level are proven over USB. Audio Matrix draws the frame's audio channel matrix as a crosspoint grid, by blocks or single channels, with mutes and signal-present dots. Remote access serves the app over Tailscale, with a real HTTPS certificate, or ZeroTier. And Multiviewer thumbnails, off by default, cut a captured multiviewer up into its sources so every thumbnail on the page is a live picture.
0.17.0 adds Variables ($ names generated from the device store and @ names of your own, with bracketed arithmetic, anywhere a number goes) and Preview lock, which holds cues, Memories and the Console until a take has landed. Dante and the Background Slicer arrive as previews, off by default and proven on simulators only. The Slicer runs on Midra 4K / Alta 4K as well as LivePremier, and the Edit page speaks Midra 4K / Alta 4K now too.
0.17.5 adds Pixel Map. Pick a picture from the switcher's own image library for a screen and it's laid over that screen's preview on Screens / Aux. as a mask, so you can see which bits of each layer will end up on LED and which on the scenery. It uses no layer, writes nothing to the switcher and takes no clicks, so the layers under it still select, drag and zoom as normal.
0.17.6 adds Surfaces, off until you switch it on. Mark out the LED elements a screen's canvas really lands on (a wall in pieces, a header strip, a pair of IMAG screens) as rectangles on that canvas, bind layers to them, and a bound layer stays inside its surface: full screen fills the surface rather than the canvas, the vendor's align buttons align to it, and a drag stops at its edge, on Screens / Aux. and the Edit page alike. A change from anywhere else is pulled back on preview and only flagged on program.
0.17.7 adds the UMD Generator, off until you switch it on. An aux laid out as a multiviewer has the pictures and none of the furniture, so this draws the furniture: a hairline round each box and a dark tab with the source's name, as one transparent PNG worked out from where each layer really is and what it's showing. It goes on the aux's top layer through a library slot and a still, and an update is just another upload. A screen's version goes to the Background Slicer, which cuts backgrounds per output. Templates of 1, 3, 5 and 7 boxes lay an aux out first, because its layers come in pairs with its capability and the top one carries the UMD.
Every one of these is a plugin. You can switch any of them off in the app's own settings, and once it's off it's gone: no menu entry, no route, no background connection. A plugin of your own is a folder in the app's data directory with a server half and a page half, and it can add a sidebar page, something a cue can do, its own OSC addresses or its own section of the setup file. It stays off until you switch it on, because it gets the same access to the switcher as the app itself.
Since 0.6.0 the Timeline, Console, Memories, Layer and Pitch Compensation work on Analog Way's other platform too: Midra 4K (QuickVu, Pulse, Eikos, QuickMatrix) and Alta 4K (Zenith 100 / 200). One dialect layer translates for that object model, and the same cue stack reads the same on either.
There's no hosted demo, and there can't be one. The interface you see belongs to Analog Way and is served by your switcher. This project proxies it and doesn't contain any of it, so without a device there's nothing to show. Run it from the container, a desktop build, or a checkout on the same network as the frame.
Screenshots












Where it stands
Released at v0.17.7, which adds the UMD Generator: thin borders and dark name tabs drawn as a transparent PNG from where an aux's layers are and what they show, put on its top layer through a still, or handed to the Background Slicer for a screen, with 1, 3, 5 and 7-box layouts. It's off until you switch it on, proven on LivePremier Simulator 6.2.73 only with every write checked over AWJ, and no real frame has shown one yet, so whether a frame keys the still's transparency is still to be seen. 0.17.6 added Surfaces: the LED elements a screen's canvas lands on, marked out as rectangles, with the layers bound to them kept inside. It's off until you switch it on, and proven on LivePremier Simulator 6.2.73 only; on 6.1.60 only by comparing the vendor's bundle (the same align buttons and drag code), and no real frame has run it yet. 0.17.5 added Pixel Map: a picture from the switcher's own image library laid over a screen's preview as a mask, using no layer and writing nothing to the switcher. It's proven on LivePremier Simulator 6.2.73 only, and on 6.1.60 only by comparing the vendor's bundle (the image library answers the same and the card is drawn by the same code); no real frame has had a map on it yet. 0.17.4 has the VPU map say a 6.1.60 box's spare room once, as the box's, rather than on every screen's row. 0.17.3 fixed what an Aquilon RS4 on firmware 6.1.60 turned up: the Screens / Aux. strip's plugin tabs sit behind a ⋯ instead of running off the panel, the VPU map no longer calls a live box a simulator and shows a 6.1.60 frame's layer sizes per screen, the Layer tab offers only the sources the switcher has, arithmetic works in 6.1.x number fields, and two saves of one file at once no longer lose one. The strip was measured on the RS4, and the source list and the VPU sizes were drawn from read-only pulls of its store; arithmetic ran on Analog Way's 6.1.60 simulator, and nothing was typed into the RS4. The Layer tab also made the panels' first write to a LivePremier there: one preview opacity, read back over AWJ and put back. 0.17.2 fixed three things a live test suite found against the rack's LivePremier simulator, and 0.17.1 the Background Slicer's LivePremier apply mistaking its own write for the switcher's answer. 0.17.0 added Variables and arithmetic and Preview lock, with Dante and the Background Slicer as previews, off by default; everything 0.17.0 added is proven on simulators only. The panels render inside a real Web RCS session and the device store mirrors live, checked through this proxy against the LivePremier, Midra 4K and Alta 4K simulators. On LivePremier, every path the app sends has been checked against a physical Aquilon C and the panels opened against it in a browser, but nothing has been written to that device. On Midra 4K the port was proven on a live Pulse 4K: a test harness ran its whole write vocabulary (39 checks, none failed), and then the operator typed the Console's own recalls, stores and deletes at the box, the first writes any of these panels made to real hardware. What 0.9.0 added is proven on the simulators only. Layer groups and the send-to menu were driven against a preconfig set up for the one arrangement that can expose a wrong preset buffer (two screens on opposite letters), and behaved. Matrix routing reaches an external Videohub, Lightware or Turtle AV. The Videohub driver was driven end to end against a working implementation of that protocol, including the crosspoint numbering that counts from zero on the wire, but no real Videohub has been in the loop, and the Lightware and Turtle AV drivers are written from their vendors' protocol documents and have never spoken to the hardware at all. The Timeline's GO, the Layer tab and the Memories panel's buttons have only written to simulators. 0.10.0 added the Edit page, and that claim was measured: all three of a screen's preset buffers were read off the device before and after a full editing session and came back byte-identical, a look was saved into a real memory slot with those buffers still identical, and that memory was read back into an emptied programmer. The route that writes the bank directly hands the switcher a file path the switcher resolves, so it works where both are on the same machine and is unproven on a real Aquilon, which is why the second route, borrowing the preview buffer and putting it back, exists as well. 0.11.0 added Companion served inside the app, checked against a running Companion 5.0.5 and a LivePremier simulator, including its cross-origin WebSocket check, which this app re-makes rather than bypasses (a forged origin is refused). The LivePremier Plus connection it offers can't be added until a Companion module for this app exists. 0.12.0 added routing on the switcher's own input and output pages, proven against the simulator and a Videohub emulator. 0.13.0 changed how the app is built rather than what it does: every feature became a plugin, and each was checked against the simulator and a Videohub emulator as it moved. 0.14.0's thumbnail relay and placeholder routers are proven on the simulators only, the relay against a stand-in serving thumbnails the size a Pulse 4K sends; the relay is off until you switch it on. 0.15.0's Layer Lock, HyperDecks, EDID builder, Mosaic inputs, Pixelhue Mapping and Speed Editor are proven on the simulator, with emulated decks and panels, only. 0.16.0 is mixed: the Speed Editor now drives the switcher from a real panel over USB, through the app's own device host; Remote access served the page and its socket over a real tailnet and a real ZeroTier network from a Mac, but has never run on the Linux appliance it's meant for; Audio Matrix and Multiviewer thumbnails are proven on the simulator only. A real Mitti refuses commands ending in a carriage return, which is how 0.16.0 ends them, so driving Mitti needs 0.17.0 or later. A real HyperDeck hasn't been tried.
Watch it running
Nothing loads from YouTube until you press play.Watch it there instead