Stoatworks Labs

Software

The apps and tools

40 public projects, grouped by the part of the job they belong to, and every one has a public repo you can read, build and fork. Narrow them down by what'll run on the machine in front of you, what they load into and what gear they talk to. Then download a build straight from the card, watch the ones with a video without leaving the page, or try the ones with a live demo in your browser.

The plugins have shelves of their own, video and audio. The tools that run in a browser tab are under Web tools, each Companion module is on the page of the app it drives, and the ones that aren't ready yet are under Coming soon.

Discipline
Runs on
More filters
Plugs into
Talks to
Type
Status
Only show

40 projects

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

LivePremier Plus

Field testing

AV Systems / Application/ JavaScript/ v0.18.6

Adds the panels an Analog Way switcher's own Web RCS doesn't have, for LivePremier and, since 0.6.0, Midra 4K and Alta 4K too. There's an Edit page (the Screens / Aux. layout with one row instead of two), so you can program a look off both buses and save it straight into a real memory. There's a VPU resource map, a lighting-desk command line, a theatre cue stack, a memories list across every bank, and a layer-properties panel built from the device's own catalogue, with names for layers the switcher can't hold. Layer groups move as one, with a send-to menu on every source card. Routing goes through an external Videohub, Lightware or Turtle AV matrix, or a placeholder of one so you can build the show before the rack turns up. A Bitfocus Companion can live on the same address, its buttons pressable from a cue or a memory recall. Then there's Pitch Compensation for mixed-pitch LED walls, OSC input, cues fired from timecode, MIDI control-surface mapping, HyperDecks and Mitti played, cued and recorded with rules that follow the show, a layer lock that holds a layer through a take or takes one on its own, a pixel map from the switcher's own image library laid over the preview as a mask, surfaces that keep a layer inside the LED element it's bound to, thin borders and dark name tabs for an aux laid out as a multiviewer, an EDID builder on the switcher's own EDID page, a Pixelhue console panel with every control remappable (preview), a DaVinci Resolve Speed Editor as a switcher panel, held by a device host that looks after USB panels for the app, the frame's audio channel matrix as a crosspoint grid, remote access over Tailscale or ZeroTier, live multiviewer pictures in the source thumbnails (preview), a thumbnail relay that sends the source previews as JPEG and refreshes the ones being edited fastest (preview), the whole setup in one file, audio routing from the command line, Test Card's patterns beside the switcher's own Pattern tab, a Resolume Arena output preset made from the switcher's own outputs, image library tools, and arithmetic in numeric fields: type 1080-80 into a layer width and get 1000. Every one of them is a plugin you can switch off, and you can write your own to add to them. It runs as a local proxy, so you browse to it instead of to the switcher and the extra panels are just there, drawn in the vendor's own design language.

openRCS — A fresh control surface for Analog Way LiveCore and Midra

openRCS

Released

AV Systems / Application/ Rust/ v0.11.2

A modern control surface for Analog Way Midra and LiveCore series video processors. Its Workspace puts the sources, every screen and the memories on one page that fills the window, so you can build in program, preview or both at once, with a graphical layer editor, memories, takes, a multiviewer and confidence-output designer, an EDID writer and a full variable inspector behind it.

SimpleCue — Audio cue player for theatre

SimpleCue

Field testing

Audio · Show Control / Application/ C++ / JUCE/ v0.4.1

A cross-platform audio cue player for theatre and live events, with cues, fades, links, loops and vamps, and a per-cue output routing matrix. You can drive it with OSC, MIDI, MSC, MMC, Art-Net or sACN.

WebLinked — A URL in, SDI, NDI and a screen out

WebLinked

Field proven

AV Systems / Application/ C++/ v1.3.1

Renders any web page offscreen through Chromium at a broadcast raster and rate, then sends it to DeckLink and AJA over SDI, to the network as NDI, OMT and RTMP/SRT, into Resolume or TouchDesigner over Syphon and Spout, and fullscreen to a GPU-attached display, with every output taking the same frame. It can run several of those pipelines at once, each with its own browser, clock and raster, so a page that hangs on one feed can't touch the others. The engine clocks the browser one frame at a time instead of letting it paint on its own timer, so 50 ticks a second means 50 paints. Settings, live diagnostics and an interactive preview all live in the browser, so a rack machine needs nothing but an HTTP port.

Advanced Exporter for PowerPoint — Every format PowerPoint exports, and the ones it won't

Advanced Exporter for PowerPoint

Beta

PowerPoint · Content Management / Plugin & Module/ TypeScript/ v0.1.0

A PowerPoint task-pane add-in that exports the open deck to 31 formats, each with its options left in: pictures at any size up to 16,384 pixels, PDFs trimmed to a range or split per slide, handouts and notes pages, Word and OpenDocument, MP4 and WebM with the deck's timings, a self-contained HTML5 presentation, reveal.js, LaTeX Beamer, Markdown and Marp, outlines, CSV and JSON, and cleaned, trimmed or flattened copies of the deck itself. PowerPoint draws every slide at the size each format asks for, and everything happens in the pane, so nothing's uploaded. One manifest covers PowerPoint on Mac, Windows and the web, and installing it means handing PowerPoint one small XML file that points at the hosted build.

Alleycat — Keeps the show on DXV without anyone thinking about it

Alleycat

In development

Video FX · Content Management / Application/ TypeScript

A tray tool that keeps a Resolume show on DXV. Point it at a folder and anything dropped in gets probed and, if it isn't DXV already, sent to Resolume Alley to be converted. Point it at a running Arena or Avenue and it finds the clips that are still h264, converts them and swaps the converted file into the composition in place, keeping in and out points and clip effects, and leaving any clip that's playing alone until it stops. Alley does the converting itself, because ffmpeg has no DXV encoder and Alley is the only thing that makes one.

animATEM — ATEM control with DVE preview

animATEM

Released

AV Systems / Application/ TypeScript/ v0.2.3

Control for the ATEM Mini Pro and Extreme ISO, plus something the hardware doesn't give you: a SuperSource/DVE preview, put together in software from the switcher's own multiview, captured over UVC. There's a touchscreen operator UI and a Companion module.

Aquilon VPU Map — Where every mixer in the chassis went

Aquilon VPU Map

Field testing

AV Systems / Application/ JavaScript / Rust/ v1.4.0

Every layer on an Analog Way LivePremier costs physical mixing hardware, and the frame knows where all of it went. This reads the allocation back and draws the whole chassis on one screen: each VPU as the 8x8 field of links the manual draws, and every layer's bar as wide as the outputs it spans and as tall as its capacity. It only ever reads, never writes.

ATEM Overseer — A whole fleet of ATEMs on one screen

ATEM Overseer

Field testing

AV Systems / Application/ TypeScript/ v0.3.11

A browser dashboard for watching and controlling a fleet of Blackmagic ATEM switchers, styled after the BMD multiviewer. There's a desktop tray app version too.

atem-scopes — Scopes around an ATEM multiview

atem-scopes

Released

AV Systems / Application/ TypeScript/ v0.2.4

Video scopes laid out around a live ATEM multiview. Waveform, vectorscope, histogram, false colour, zebras and focus peaking on any multiview window, program and preview included, with each source named live from the switcher's own multiviewer config. There's a desktop app and a browser build.

automitti — Mitti on switchers it's never heard of (preview)

automitti

Beta

AV Systems · Show Control / Application/ JavaScript/ v0.2.1

A menu-bar app that lets Mitti follow a switcher it doesn't know (a Roland V-160HD, an Analog Way Pulse 4K / Midra 4K, an older Midra or a LiveCore) the way it follows an ATEM, and drives QLab 5 the same way. It can pretend to be an ATEM for Mitti to connect to, send NDI tally to Mitti's output, or drive Mitti itself over OSC or HyperDeck, for several Mittis at once on the one switcher. It also passes Mitti's single OSC feedback stream on to as many places as you list, and serves a full-screen clip clock with the current and next clip, their running times, and the time gone and the time left. Every switcher and player is a driver, so you can add your own next to the built-in ones.

av-test-roms — Test ROMs for the video path

av-test-roms

In development

Video FX · AV Systems / Application/ Assembly

Three test programs (a moving test card, a controller mapping tester and an overscan display), built from source for every console that has a toolchain in Homebrew. They're for checking the video path, not how accurate the emulator is.

AWJ Surface — A fader that follows the switcher back

AWJ Surface

Field testing

AV Systems · Show Control / Application/ JavaScript

Maps MIDI and OSC control surfaces onto an Analog Way LivePremier: faders to layer opacity, encoders to size and position, and buttons to select layers, apply sources and switch keying. It works both ways, so motor faders follow the device, LED rings follow the encoders and X-Touch scribble strips name the layer each strip is pointed at. Read-only mode means the client has no write path at all, rather than a flag.

bdcam — Plug a webcam into a decoder, get NDI out

bdcam

In development

AV Systems / Firmware/ Go

A firmware patch that runs a BirdDog PLAY backwards. Plug a USB webcam into the decoder and it becomes an NDI or SRT sender, or goes straight back out of the HDMI. The board has a hardware encoder fitted and switched on, and the vendor's own software never touches it, because a decoder has nothing to encode.

bdplay — A USB stick as a source on an NDI decoder

bdplay

In development

AV Systems / Firmware/ Go

A firmware patch that adds USB to the source list on a BirdDog PLAY, so the decoder plays video, stills and PDFs off a stick straight out of its HDMI, in order or shuffled, looping, and hardware-decoded. The box already had everything it needed for this and did nothing with it: the media stack is on there, nothing automounts, and the stock web UI checks the source name against a list USB isn't on. So the patch mounts the stick itself, always read-only because people pull these out without ejecting, and takes over the source dropdown instead of trying to teach the vendor's handler a new word. That means the unit stays configured for NDI underneath, and switching back is instant. exFAT works through FUSE without touching the kernel, and PDFs render through PDFium.

bdts — Tailscale, signed in from the decoder's own web UI

bdts

In development

AV Systems · Networking & Infrastructure / Firmware/ Go

A firmware patch for the BirdDog PLAY that adds a Tailscale panel to the System page of the decoder's own web UI, so a unit joins a tailnet from a browser instead of over SSH. It's the other half of the PLAY Patcher, which installs Tailscale but bakes in no auth key on purpose, because a key in a file the browser hands you is a key in cleartext. That left every patched unit installed but not signed in. Settings go through Tailscale's set command rather than up, so changing one preference doesn't reset all the others behind your back, and the panel won't offer exit-node and subnet-route switches this kernel can't honour: there's no TUN device, so Tailscale runs in userspace networking. Reads are open; writes need a live birdUI session, because an open Tailscale API would let anyone on the LAN join the box to a tailnet of their own.

BlackMatrix — An ATEM fleet as one router, with failover

BlackMatrix

Field proven

AV Systems / Application/ TypeScript/ v0.4.2

A crosspoint router matrix over a fleet of Blackmagic ATEM switchers: sources across the top, destinations down the side, one click to route. It also serves the Videohub Ethernet Protocol, one server per switcher, so hardware router panels, Companion and a media server's own matrix driver all get at the same crosspoints. On a redundant rig it watches the main media server and fires a salvo when it stops answering.

companion-play — An NDI decoder turned into a Companion box

companion-play

In development

AV Systems · Show Control / Firmware/ Shell/ v0.1.0

A replacement operating system for the BirdDog PLAY that turns it into a Bitfocus Companion appliance: the Companion server, its admin interface on the unit's own HDMI output, and USB control surfaces plugged into its port. It replaces the firmware, so the unit stops being an NDI decoder until it's flashed back, but only two partitions change, which leaves both recovery paths intact. 808 Companion modules ship in the image, so it works with no network on first boot.

Dante BabelBox — Dante kit from different vendors, on speaking terms

Dante BabelBox

Gathering captures

Audio / Application/ Rust/ v0.5.0

A control bridge for Dante kit from different vendors: preamp gain and phantom power across Behringer/Midas, Allen & Heath and Yamaha, plus radio-mic telemetry from Shure and Sennheiser.

File Drop Batch — A drop link for every presenter, in Nextcloud

File Drop Batch

Released

Content Management / Plugin & Module/ PHP/ v1.5.1

A Nextcloud app for production teams. Build a show from a CSV, in the browser or from a live Google Sheet, and it makes a folder and an upload-only drop link for every session, emails each presenter their link, and can set up an account per theatre that only sees its own folder.

Flock — Every BirdDog Play decoder from one page

Flock

Field proven

AV Systems / Application/ Rust/ v0.2.6

One web UI for a whole fleet of BirdDog Play NDI/SRT decoders: find them on the LAN, group them with tags, change any setting BirdUI has on any unit, or change it across a whole group at once.

Font Manager for PowerPoint — The deck's real fonts, checked inside PowerPoint

Font Manager for PowerPoint

Beta

PowerPoint · Content Management / Plugin & Module/ TypeScript/ v0.2.0

PowerPoint Font Manager as an Office add-in: a task pane inside PowerPoint that reads the open presentation directly, works out which fonts it actually uses, checks which of those are installed on the machine you're on, and offers the missing ones as downloads, metric-compatible stand-ins or a sidecar .zip. It's the same scanner as the web tool, vendored from that repository and imported unchanged, run on the deck you've got open instead of a file you drop in, so nothing's uploaded and there's no drag-and-drop. One manifest covers PowerPoint 2016+ on Windows, 2019+ on Mac, PowerPoint on the web and Microsoft 365. There's a double-click installer for Mac and Windows; all it does is point PowerPoint at the hosted build, so the add-in keeps itself up to date.

gh-fleet-analytics — GitHub numbers, before GitHub forgets them

gh-fleet-analytics

Released

Networking & Infrastructure / Library & Protocol/ Python/ v0.1.2

Snapshots every repo an account owns into per-repo JSON committed to git, and draws a password-protected dashboard from it, because GitHub keeps traffic for 14 days and only reports stars and downloads as a running total.

LEQtion — Sound level meter and dual-channel analyser

LEQtion

Field testing

Audio / Application/ Rust / Tauri/ v0.1.3

A desktop sound level meter and dual-channel analyser, with a fractional-octave RTA, a spectrograph, time-weighted SPL and as many LEQs as you care to set up, plus level history charts, CSV logging, a signal generator and transfer function measurement with phase, coherence and delay finding. It all sits on a grid of tiles you lay out yourself.

openRCS Protocol — The Analog Way control protocol, written down

openRCS Protocol

Released

AV Systems / Library & Protocol/ Markdown

A reference for the TCP control protocol of Analog Way's Midra and LiveCore series video processors: the wire format, the variable model and the complete variable tables. Documentation only.

PLAY Patcher kit — The PLAY Patcher's parts, as one download

PLAY Patcher kit

Field testing

AV Systems · Networking & Infrastructure / Firmware/ Shell/ v0.3.0

Everything the PLAY Patcher puts into a firmware package, released as one zip: the installer scripts, the module binaries, a manifest saying where each file goes and which option needs it, and the licence notices. The page serves those files from its own origin, so nothing outside a browser could get at them until now. Tailscale and MediaMTX aren't in it, on purpose: whoever builds a package fetches them from their own publishers, the same as the page does.

Presentation Commander — Client — A presenter for the stage laptop

Presentation Commander — Client

Field testing

Content Management / Application/ TypeScript/ v1.3.2

The half that runs on the presentation laptop: its own PDF, Keynote and Google Slides engine with two NDI outputs, Program and Next Slide, driven remotely from the Server.

Presentation Commander — Server — Master control for a presentation room, over NDI

Presentation Commander — Server

Field testing

Content Management · AV Systems / Application/ TypeScript/ v1.1.4

Master control for a presentation room: a real-time NDI video matrix router, a layered scene compositor, a presenter-notes hub, and a Control Surface with a JSON-RPC automation API.

Presentation Converter — Slides to PDF, notes intact

Presentation Converter

Field testing

Content Management · PowerPoint / Application/ TypeScript/ v0.3.0

Converts Keynote, PowerPoint, Google Slides and ODP to PDF with a presenter-notes sidecar, so the notes survive the conversion. GUI, CLI, server and a Nextcloud app, all from one codebase.

Resolve Configurator — A whole Resolve project from one CSV

Resolve Configurator

Field testing

AV Systems · Content Management / Application/ Python/ v0.1.6

Sets up a whole DaVinci Resolve project, with theatre and day bins, a timeline per session, imported media and smart-bin recipes, from the same session CSV that drives the file-drop workflow.

Rookery — One cue, every WebLinked

Rookery

Released

AV Systems · Show Control / Application/ Rust/ v0.2.4

One web UI for a fleet of WebLinked instances: tag them into groups, send any WebLinked command to a group or the whole fleet over OSC, and watch each instance's state come back over HTTP. A lighting desk or cue stack can drive the same groups with one OSC message, using WebLinked's own verbs, so you retarget an existing button by editing the front of its address.

Show Mode — Stops your show Mac embarrassing you mid-show

Show Mode

Field proven

Content Management · Show Control / Application/ Swift/ v0.5.0

A menu-bar app for the Mac running your slides or playback. One click, a hotkey or a showmode:// URL from Companion stops it sleeping and turns off the screen saver, hot corners, Mission Control, notification banners, Night Shift, True Tone and the colour-shift apps. It blacks out the wallpaper, keeps the mouse off the screens the audience can see, and stops the displays rearranging themselves halfway through. It can also hush other apps, Spotlight, Time Machine and update checks, and there's a pre-show check for the things no app can switch off. Everything it changes gets written down first and put back when the show's over, or on the next launch if the Mac fell over mid-show.

Show Mode for Windows — Stops your show PC embarrassing you mid-show (preview)

Show Mode for Windows

Beta

Content Management · Show Control / Application/ Rust/ v0.2.0

A notification-area app for the Windows PC running your slides or playback, and the Windows sibling of Show Mode for the Mac. One click, Ctrl+Alt+Shift+F11 or a showmode:// URL from Companion stops it sleeping (lid shut included), turns on Do Not Disturb and turns off system sounds, the screen saver, Energy saver, Snap, AutoPlay and crash dialogs. It blocks the Windows key, keeps the cursor off the audience's screens, blacks out the wallpaper, keeps the main display main and splits a screen that starts mirroring back out. It quits f.lux, pauses Syncthing and can mute every app that isn't the show. A pre-show check points out what no app can switch off, a waiting Windows restart above all. Everything it changes gets written down first and put back when the show's over, or on the next launch if the PC fell over mid-show.

simpleVIS — See your lighting programming, before the room

simpleVIS

Field testing

Lighting / Application/ TypeScript/ v0.4.4

A lightweight lighting visualiser. Drop in an MVR and it reads the rig straight out of it: fixture positions, patch, and the GDTF definitions packed in alongside, so it knows which channel is pan, how wide the beam opens and whether the colour mixes additively or subtractively. Then feed it Art-Net, sACN or DMX off a USB interface and watch the programming in volumetric haze, from wherever you fancy putting the camera. Pixel-mapped fixtures work properly: a wall that declares four template channels across a hundred references gets resolved to the three hundred it actually occupies, one DMX slot per pixel. The desktop build takes the live input. There's also a browser demo, which imports and flies round the same rig on a built-in look. It's a demo and not a hosted edition because Art-Net and sACN are UDP, and a browser can't receive them.

SRT Router — A broadcast-style crosspoint for SRT

SRT Router

Field testing

AV Systems · Networking & Infrastructure / Application/ Rust/ v0.2.5

A crosspoint for SRT that works like a broadcast router: any number of inputs and outputs, each output switchable live to one source, all added and removed on the fly from a web UI. It's a straight relay with no transcoding, and NDI transport is included.

Stoatworks Burrow — One list for every plugin, tool and module

Stoatworks Burrow

Beta

Video FX · AV Systems · Audio · Networking & Infrastructure / Application/ Rust / TypeScript/ v0.5.0

An optional desktop app for all the Stoatworks software: plugins, tools, applications and Companion modules. It shows what you've got installed and what has an update, and installs each one in whichever formats you use, whether that's FFGL for Resolume, OpenFX for Resolve, After Effects, or VST3 and Audio Units for a DAW. It keeps itself up to date too. You don't need an account, and it doesn't send anything anywhere.

How the filters work

Discipline is the part of the job a project belongs to, and a project can sit in more than one. Runs on is counted from the release builds that actually exist, so a project only claims Linux where a Linux build was cut. Anything that lives inside another application has no platform of its own, and turns up under Plugs into instead. Talks to is the gear and the wire protocols at the far end. Chips within a row are or-ed together and rows are and-ed, so macOS or Windows, and Blackmagic is one question you can ask. Put a discipline after a # in the address, /software/#audiofor instance, and the page opens with that chip on.

Audio

Cue playback, DSP, amplifier and console control.

What I've built for it

AV Systems

Switchers, routers, media servers and stream transport.

What I've built for it

Video FX

Effects, generators and plugins that run inside somebody else's host.

What I've built for it

Lighting

DMX, Art-Net and sACN distribution.

Content Management

Getting presenter files in, converted, and on screen.

What I've built for it

PowerPoint

Decks: their fonts, their exports, and the screens they end up on.

Show Control

OSC, MIDI, MSC and Companion integration.

Networking & Infrastructure

The plumbing under a multi-room event.

What I've built for it