Stoatworks Labs

atem-scopes

Scopes around an ATEM multiview

Releasedv0.1.0ApplicationTypeScript
atem-scopes — Scopes around an ATEM multiview
The browser build on its own generated test pattern: four multiview windows of 75% bars over a ramp, with a picture tile, waveform, vectorscope and histogram. The signal is synthetic; the scopes are real.

What it does

A wall of video scopes built around the picture a switcher is already producing. Capture the ATEM's multiview output over USB, draw a region round each window once, and put a waveform, vectorscope, histogram or a picture tile with false colour, zebras and focus peaking on any of them — including program and preview.

Source names are read live from the switcher's own multiviewer configuration, so re-routing a multiview window mid-show relabels the scope watching it without touching the geometry. The link is strictly read-only: it connects, reads the window assignments and input names, and never sends a command.

It ships twice from one codebase. The Electron desktop app talks to the switcher over the network; the browser build needs no install and names each region by hand instead, because the ATEM protocol is UDP and a page cannot 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.1.0. The scope engine is verified end to end against the built-in 75% colour-bar generator 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. That proves the maths, the shader uniforms and the whole capture-to-scope path agree — but no ATEM switcher has ever been connected to it, no real multiview has been captured, and the optional DeckLink capture path has never been compiled. Treat it as an instrument that has been calibrated on the bench and not yet taken to a show.

Watch it running

atem-scopes video thumbnail

Nothing loads from YouTube until you press play.Watch it there instead