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

What it does
Mitti knows how to follow a Blackmagic ATEM. It plays when the switcher puts it on air, does whatever you've chosen when it's taken off, and can make the switcher take at the end of a clip. It doesn't know a Roland V-160HD, an Analog Way Pulse 4K or Midra, or a LiveCore. automitti sits between them and does the introductions.
The most complete way is an emulated ATEM. automitti answers the ATEM protocol on the network with the real switcher's inputs, names, program, preview and tally, and Mitti finds it over Bonjour and connects to it like any other ATEM. Every option Mitti has for an ATEM then works unchanged, and when Mitti asks for a cut or an auto, the real switcher does it. The other ways are NDI tally sent to Mitti's own NDI output, or automitti driving Mitti directly over OSC or HyperDeck with the same four choices Mitti offers for an ATEM.
On a layer switcher like the Pulse 4K or a LiveCore, Mitti counts as on air while its input is the source of any layer on a screen's program, and it counts from the moment a take starts, so the clip rolls with the mix rather than after it.
It runs several Mittis at once (main and backup, or one per kind of content), each on its own switcher input with its own tab, feedback port and rules, all sharing the one switcher and the one emulated ATEM. A device can be QLab 5 instead of Mitti. QLab has no switcher integration of its own, so automitti's rules GO its cue list when the switcher takes QLab's input, take the switcher off it when the video cue ends, and count the running video down on the clip clock.
Mitti sends its OSC feedback to one address and one address only. automitti takes that slot and passes every packet on, unchanged, to Companion, a Stream Deck and any other machine that wants it. The same feedback, plus the clip durations read over HyperDeck, drives a clock page any browser on the network can show full screen: the clip on air, a big countdown that goes amber then red, the elapsed time and running time, and the next clip with its running time.
- Several Mittis at once on the one switcher, each with its own tab, input, feedback port, relay, NDI tally and rules, and a home page that shows them all
- An emulated ATEM that Mitti finds over Bonjour and connects to, carrying the real switcher's inputs, names, program, preview and tally
- Mitti's Pause-at-End cut or auto performed on the real switcher
- NDI tally to Mitti's NDI output, with no video pulled across the network
- Rules over OSC or HyperDeck: play on program, rewind on preview, pause or load the next cue when taken off, cut or auto at a clip's end, optionally a few seconds early
- Roland V-160HD over its LAN control port, with tally pushed by the switcher
- Analog Way Pulse 4K and the Midra 4K family over AWJ, with any screens and a chosen layer
- Analog Way LiveCore (Ascender, NeXtage, SmartMatriX Ultra) and the older Midra range (Pulse², Eikos², QuickVu…) over Analog Way's TCP 10500 protocol
- A manual mode where anything that can send HTTP, Companion included, sets the tally
- QLab 5 as a player, over OSC on TCP: GO, pause and stop on a cue list, with the running video's time on the clip clock
- Mitti's OSC feedback relayed byte for byte to several destinations
- A clip clock page for any browser: current and next clip, running times, elapsed, remaining
- A choice of which network address Bonjour announces, for machines with a VPN
- Drivers: each switcher and player is a module behind one contract, with your own loadable from the data folder and a shared test that holds them to it
Where it stands
Preview, released at v0.2.0 for macOS. With a real Mitti 2.8.19 and Analog Way's Midra 4K simulator, the whole loop has been watched end to end using nothing but Mitti's own ATEM trigger: Mitti found and connected to the emulated ATEM, an auto on the switcher onto Mitti's input rolled the clip half a second in while the transition was still running, and at the end of the clip Mitti's own Pause at End asked the emulated ATEM for an auto, which the switcher did. The clip clock read the current and next running times from Mitti itself. Blackmagic's own switcher SDK, which Mitti uses, accepts the emulated ATEM, and NDI tally was read back by an NDI sender the way Mitti reads it. The new bits in v0.2.0 have only been checked this far. Several Mittis at once ran as two Mitti simulators on the V-160HD simulator, not two real Mittis yet. The LiveCore and older Midra drivers, written from what openRCS found on a real NeXtage 16 and Pulse², have only met simulators, not a real frame. And QLab was a real QLab 5.5.10, but driven with Wait cues only, so a video cue actually playing hasn't been checked. The switchers are the part still unproven on hardware: the V-160HD driver has only met a simulator written from Roland's documents, and the Pulse 4K driver only Analog Way's own simulator. Try it with your own switcher before a show depends on it. The macOS build is signed and notarised by Apple and opens normally. There are no Windows or Linux builds yet.