atem-scopes
Scopes around an ATEM multiview

What it does
A wall of video scopes built around the picture your switcher is already making. Capture the ATEM's multiview output over USB, draw a box round each window once, and hang a waveform, vectorscope or histogram on any of them, program and preview included, or a picture tile with false colour, zebras and focus peaking.
Source names come live from the switcher's own multiviewer configuration, so if someone re-routes a multiview window mid-show, the scope watching it relabels itself and the boxes stay where they are. The link is read-only. It connects, reads the window assignments and input names, and never sends the switcher a command, so it can't be the thing that cut to black.
It ships twice from one codebase. The Electron desktop app talks to the switcher over the network. The browser build needs no install, but you name each region by hand, because the ATEM protocol is UDP and a web page isn't allowed to open a socket.
- Waveform — luma, RGB parade and Y/Cb/Cr parade
- Vectorscope with a graticule derived from the selected matrix, 75% or 100% bars
- RGB and luma histogram
- False colour, zebras and focus peaking on a picture tile
- Any tile can watch any multiview window, program and preview included, or a whole capture device
- Window regions drawn once and named live from the switcher, or by hand
- Explicit BT.601/709/2020 and studio/full-range interpretation, stated rather than guessed
- Built-in colour-bar generator, so the scopes can be checked without hardware
Where it stands
Released at v0.2.3, a dependency release (Electron 44.5.1, atem-connection 3.10.3), and so was v0.2.2 (Electron 44.4.5, React 19.3). v0.2.1 added the user guide and the support footer, and the scopes themselves are v0.2.0's. The scope engine is tested end to end against the built-in 75% colour bars by reading pixels back off the GPU canvas: every bar's waveform level matches its BT.709 luma to within the readback's quantisation, the vectorscope trace lands inside its graticule boxes, and the histogram spikes where it should. So the maths, the shader uniforms and the capture-to-scope path all agree with each other. But no ATEM has ever been connected to it, no real multiview has been captured, and the optional DeckLink capture path has never even been compiled. Think of it as an instrument that's been calibrated on the bench and hasn't been to a show yet.
Watch it running
Nothing loads from YouTube until you press play.Watch it there instead