← simpleplaypro.com
User Manual · Version 1.4

SimplePlay Pro X

Show playout, multi-track compositing, and multi-protocol routing — built native for macOS, for the ten minutes before doors when everything has to work.

macOS 15 Sequoia+ Engine AVFoundation · Metal Codecs ProRes · H.264/265 · HAP Out HDMI · NDI · Syphon · SDI Control OSC · MIDI · LTC/MTC · Art-Net
Doors in ten. Your projectors are warm, the LED wall is patched, the lighting console wants to trigger cue 12 over Art‑Net, and someone just dropped a new sponsor reel into the watchfolder. SimplePlay Pro X was built for exactly that ten minutes.

SimplePlay Pro X is a native macOS show playout, compositing, and routing system. It runs theatrical productions, keynotes, houses of worship, broadcast control rooms, touring rigs, and corporate AV — anywhere a video cue absolutely has to fire, frame‑accurate, on the beat, every single night.

What makes it different: it is deterministic by design. Everything you build during prep replays identically at showtime. No live‑improvisation surprises, no "it looked different in rehearsal." With the Live Deck you choose when prepared content fires; what it does is fixed in prep, and every trigger is logged, so a show called live can be replayed exactly.


Release NotesWhat's New in 1.4

SimplePlay Pro X now speaks your language: the whole app, and this manual, in nine languages.

🆕 FeatureWhat it does
Nine LanguagesThe app and this manual in English, Arabic, German, Spanish, French, Gujarati, Hindi, Japanese and Simplified Chinese. Timecode, ports, channels and cue numbers stay in Western digits in every language, to match the gear beside them.
Arabic, Right to LeftIn Arabic the window mirrors, while everything laid out along time or across the stage -- the timeline, the Live Deck, the canvas, meters and monitors -- keeps left to right.
Pick Your LanguageSettings ▸ General ▸ Language: Same as This Mac, or any of the nine. It applies the next time the app opens. See §31.
The Manual in Your LanguageHelp ▸ User Manual opens this manual in the app's language, with the other languages listed at the top of its sidebar.

Release NotesWhat's New in 1.3

The Stage Compositor becomes something you can call a show from: a Live Deck of prepared clips fired over the running timeline, layers that route to their own screens, and as many NDI outputs as you need.

🆕 FeatureWhat it does
Live DeckA grid of prepared clips — rows are layers, columns are looks — fired live on top of the running composition. Each slot has its own start (when fired or at the next marker) and ending (loop, hold, clear, back to the previous, or the next look). See §16.
Layer OutputsSend a whole timeline track or deck row to an output. Every clip you drop on it goes there — no per-clip setup. Pick a layer's outputs in the Layer tab. See §14.
Screen Targets & Stage MapPlace any clip on one screen, mirror it across several, or keep it on the whole stage. The canvas outlines every output's part of the stage in its Patch Bay colour.
Layer TabThe inspector is now Clip · Layer · Canvas. The Layer tab holds a track's or row's outputs, opacity, volume and blend, bypass, solo and group. (It replaces the Stack tab.)
Slot Ending ButtonsEvery slot that plays to an end shows its ending as a round button on its picture — click to step through Hold, Loop, Next, Previous and Clear, as on a playlist cue. See §16.
Edit While the Show RunsOpen a loop's tab mid-show: it previews on the canvas only, while Main, the Live Deck and every fired slot carry on on the outputs. See §15.
A Live CanvasThe compositor's canvas shows exactly what the outputs show — fired slots, effects and blend modes included — playing or stopped.
True Audio MetersThe compositor's meters measure the audio actually going out, after every volume and audio matrix.
Row Faders & 18 Blend ModesEach Live Deck row's fader rides opacity, volume or blend — click its red, green or purple dot. Clips and layers get 18 blend modes, and a layer's blend has an amount from Normal to the full mode. See §14.
Multiple NDI OutputsRoute any number of outputs to NDI — each is its own named stream with its own frame rate and audio choice. See §20.
Loop Timelines & Timeline TabsBuild loops in their own timeline tabs beside Main, then play them from a track or a deck slot. See §15.
Timeline RowThe deck's bottom row switches the whole playhead between Main and your loops, with a cut or fade.
Action MarkersMarkers can Hold until GO, Vamp (loop a section) until GO, or Jump to another marker.
Control Cues & Send MarkersFire lighting, sound and other gear from the show: a Control cue in the Playlist, or a Send marker on a timeline, sends OSC and MIDI (notes, control and program changes, MIDI Show Control). See Control Cues.
Text & TimersTitles in any font, and countdowns, count-ups and a clock, as compositor clips. See Text & Timers.
Start From an ExampleFile ▸ New Show from Example… (⌘⇧N) opens a small working show of each kind (cue list, timeline or Live Deck) with hints along the top. See Three Ways to Build a Show.
DMX OutSet lighting levels over Art-Net from a Control cue or a Send marker, with fades. See DMX Out.
Timecode OutSend LTC (audio) and MTC (MIDI) that follow what's on program, so other gear can chase the show. See Timecode Out.
Trigger Log & BakeEvery live fire is logged against timeline timecode. Bake turns a rehearsal into timeline tracks that replay it exactly.
Backup Follows the DeckA Stage Sync backup plays the same slots, holds and releases as the master.
New Clip InspectorIn the order you work: Where, Essentials, Playback, Effects (a card per effect, with bypass), Audio — every control once. Vignette and Mask are new.
New Cue PropertiesThe playlist inspector gets the same clean layout as the compositor's.
One Header, Both WorkspacesA Playlist | Stage Compositor switch by the project name, with Project Output and Advanced… (the Output Patch Bay) beside it.
13" MacBook ReadyEvery bar fits a 13" MacBook and the window's smallest size, shortening labels instead of hiding tools.
Lip SyncVideo now locks to the audio actually being heard. 48 kHz files no longer drift.
HDR ShowsHDR video (HDR10 / PQ and HLG) now plays properly: in a standard show it's converted to standard range instead of looking dark and washed out, and with the show's Range set to HDR its highlights reach output windows on HDR and XDR screens brighter than white. Set it in the Output Patch Bay. See §17.
Show Frame RateThe stage renders at your outputs' rate instead of a fixed 60, so 59.94 SDI and 50 Hz projectors stop dropping frames, and frames are timed to a matching output screen's refresh so it shows each one once. Auto follows DeckLink or the output screen; set it in the Output Patch Bay. See §17.
Output Warping & MasksEach output gets its own mesh warp for curved and odd-shaped screens, and soft masks to black out set pieces — any shape, feathered, inverted if you need it. Set them in the Output Patch Bay. See §17.
SDI at 50 Hz and Film RatesDeckLink output adds 1080p and 1080i at 50 Hz, 1080p at 23.98, 24 and 60, 720p at 50, and 2160p up to 60. Modes your card can't output are marked, and output won't start in one. See §20.
LTC That LocksIncoming LTC from timecode generators and audio interfaces now reads reliably, on any input channel, with a level meter and a clear message when audio arrives that isn't timecode. See §24.
Render HealthThe FPS badge shows any skipped frame, and its popover sums up the whole run — skipped ticks, render times and what clocks the show — with a report you can copy and send.
Smoother Clips and CamerasClips decode ahead of the display so they show every frame, cameras and capture cards run at 1080p, and live inputs open with the show so they're ready on the take.
Help MenuJoin the Discord community, and read release notes and known issues, from the Help menu.
Updates When You Open the AppSimplePlay Pro X checks for a newer version every time it opens and offers it in a bar under the header -- never a window over your show. See Updates.
MIDI in the Stage CompositorMIDI Map now reaches the compositor: Live Deck slots, looks, timeline-row cells, row clears and row faders, and the timeline transport. See §23.

Upgrading?

  • Edge blending is now off unless a project turns it on, and audio output picks the built-in output automatically — never AirPods or other Bluetooth. Check both in your show file on the first run.
  • The Stack tab is gone. Its faders, bypass, solo and groups are in the inspector's Layer tab, and each deck row header now has its own fader and B (bypass) button.
  • NDI is now set per output in the Output Patch Bay, not in Preferences. Older shows keep their NDI stream and its name.
  • Shows open on Auto frame rate. With outputs on 59.94 or 50 Hz gear that's what they'll now render at, not 60; pick a rate in the Output Patch Bay to set it yourself.

Release NotesWhat's New in 1.2

🆕 FeatureWhat it does
Native Stream Deck PluginA dedicated Elgato Stream Deck plugin — 11 show actions with live cue name, countdown, and override state on the keys. No Companion required. See §26.
Expanded OSC ControlNew endpoints for panic stop (/simpleplay/endall), per-cue stop (/stop/selected), preview transport (/preview/play), Auto Play, and Project Output — plus status feedback for each. See §22.
Companion ParityThe Bitfocus Companion module gains the same five actions, with button tallies for Auto Play, Project Output, and Preview Playing.
Quit ProtectionClosing the app now asks before discarding unsaved cues, and warns separately if program output is still live. See Quitting Safely.
Playlist Progress BarThe active cue's progress bar no longer overlaps its duration, and follows the cue's assigned colour.
Clearer Live TransportThe program scrubber keeps its red fill when the app isn't the focused window, so you can read playback position at a glance while working elsewhere.
Quieter DiagnosticsFixed spurious "NDI A/V sync drift" warnings that appeared repeatedly when nothing was being sent to NDI.

Upgrading? If you use a Stream Deck, note that Stop now stops only the selected cue — End All is the panic key. Re-assign any key you had bound as your emergency stop.


Release NotesWhat's New in 1.1

If you're coming from version 1.0, here's what landed:

🆕 FeatureWhat it does
Stage CompositorA full multi-track timeline. Layer video, live webcams/capture cards, generators, images, live NDI/Syphon, and lower thirds; animate them with keyframes; key, grade, blur, and warp them.
Live Video CaptureReal-time hardware camera and USB capture card (Webcams, Cam Link, USB3 Video) ingestion locked to 1080p60 with zero-allocation rendering into compositor layers.
Built-in GeneratorsDrag broadcast test patterns, SMPTE/EBU/ARIB color bars, solids, gradients, and alignment grids directly onto timeline tracks.
Timeline Waveforms & Loop TrimmingDetailed audio waveforms measured from each file, front/tail clip thumbnails, magnetic snapping, and loop trimming — drag a looping clip's end past its media and it repeats, with a notch at every pass.
Unfolded Bezier Curve TracksVisual keyframe automation curve drawer for animating opacity, volume, and coordinates with synchronized canvas updates.
4-Corner Keystone WarpingDrag-to-warp interactive canvas corner pins plus precision numeric X/Y sliders (Top-Left, Top-Right, Bottom-Left, Bottom-Right) per output.
Instant Test Cards & Audio Tone Generator24 broadcast test cards with Monoscope custom banner text and animated sweeps, plus a multi-tone broadcast audio generator (sine, sweeps, noise, reference levels, L/R routing).
Expanded Playout TransitionsInstant Cut, timed crossfades (0.5s, 1.0s, 2.0s), and 4 transition styles: Dissolve, Dip to Black, Dip to White, and Wipe with sample-accurate AV sync.
PIP & Canvas Sizing PresetsOne-click Picture-in-Picture presets (Top-Left, Top-Right, Bottom-Left, Bottom-Right, Split Left, Split Right, Fit Canvas, Fit Native, Center).
Output Patch Bay PersistenceFull multi-display canvas layout, keystone geometry, and edge-blend settings serialized into portable .sppx project files.
Layer FXChroma key with spill suppression, colour grading, blur, vignette — per layer, per clip.
Projection Warp MeshScalable N×M control‑point mesh warping per layer up to 16×16 (256 control points), GPU accelerated with smooth interpolation.
Relational Decimal CueingTheatrical and corporate decimal cue numbering (e.g. 1.0, 1.1, 1.10, 2.0) with segmented hierarchical ordering and auto-continue chaining.
Native HAP DecodingThe entire HAP family (Hap1, Hap5, HapY, HapM, HapA, Hap7) decoded natively with full alpha and corrupt-chunk protection.
64‑Channel Audio MatrixPer‑clip input→output gain matrixing with Dante/AES67 support via CoreAudio.
Image SequencesDPX, EXR, PNG, TIFF, TGA sequences as first‑class cues with missing‑frame policies.
WatchfoldersDrop a file on a network share; it ingests itself into your playlist with write-stabilization.
Session RecoveryUnclean shutdown detection with a restore prompt. Crash during a show? Pick up where you left off.
Stage Sync RedundancyLAN master/backup hot‑standby with heartbeat, automatic takeover, generation epochs, and deterministic dual-master auto-fencing.

Part One · Getting Started

Section 01The 60-Second Show

You do not need to read this manual to run a show. You need three steps.

🚀 The Three‑Step Live Workflow

① Drop media in. Drag video, audio, or images onto the Playlist Cues list at the bottom of the window. Or hit Import Files.

② Pick a cue. Click it. It loads into the Preview Monitor — the panel with the yellow border. Nothing you do here touches the live screens.

③ Press GO. Hit Return or click the big green GO button. Your cue crossfades to the Live Program Monitor (red border) and out to every screen, projector, NDI stream, and SDI card you've patched.

That's it. Everything else in this manual is refinement.

Three Ways to Build a Show

New Show from Example
File ▸ New Show from Example…: the three ways to build a show, each opening a small working example.

Not sure where to start? File ▸ New Show from Example… (⌘⇧N) shows the three ways to build a show side by side. It also opens after the welcome screen the first time you run the app. Each one opens a small example that plays straight away, made of test patterns and titles, on the outputs you already have. Hints for it run along the top of the window until you close them.

Pick it whenThe example
Cue ListOne thing happens after another, each on GO: conferences, theatre, award shows.Five cues: a walk-in loop, opening titles, a Control cue that carries straight on, a speaker title and a close.
TimelineA sequence is built to the second, layered, and played through, waiting where you tell it to.Background and Titles tracks, a Hold marker that waits for GO, and an end.
Live DeckYou fire prepared content when you call it, over a running background: concerts, events, live TV.A looping background with a deck of Backgrounds and Titles rows across three looks, the last of which clears.

They combine. A cue in a cue list can be a whole timeline (a Composition cue), and any timeline can carry a Live Deck. The example opens untitled, so the first save asks where to keep it. Replace its test patterns and titles with your own media, or pick Blank Project to start from nothing.

The Five Buttons You Need at 3 a.m.

ButtonKeyWhat it does
🟢 GO / TAKEReturnFires the previewed cue to live output using your chosen transition.
🛑 END ALLEscPanic stop. Fades and halts everything on the program bus, immediately.
⬛ BLACKOUT—Cuts live video to black instantly. Press again to restore. Playback keeps running underneath.
🌘 FTB—Fade to black — the graceful version of blackout.
❄️ FREEZE—Holds the current frame on screen. Audio keeps playing.
🔇 MUTE—Silences master audio without touching video.

💡 Rehearsal room tip: Esc is your friend. It is always safe to press. Practice it once before doors so your hand knows where it lives.


Section 02Meet the Workspace

SimplePlay Pro X main workspace
The main workspace during a show: the Gala Night composition on Live Program (red, right) with the Wildlife Reel cued in Preview (yellow, left), transitions and GO between them, the playlist below with video, audio, Control, Wait and composition cues, and Cue Properties on the far right. The header's Playlist | Stage Compositor switch changes modes.

The window is deliberately laid out the way a broadcast switcher is — preview on the left, program on the right, the take button between them.

Header Bar

The same in both workspaces:

  • Project name with the Playlist | Stage Compositor switch beside it — the workspace you're in is lit. ⌘⇧E switches too.
  • Project Output opens or closes the output windows; Advanced… opens the Output Patch Bay.
  • Theme picker (7 themes), UI brightness, the Errors badge, MIDI Map toggle, demo‑mode indicator, and the settings gear.
  • FPS badge (View ▸ Show FPS, while the output windows are open): the main output's frame rate and the engine's. Its dot turns red for ten seconds whenever the render loop skips a tick (every output repeated a frame) and yellow when frames are using most of their time. From the first skipped tick a red skipped count appears, and the badge shows itself even with Show FPS off, until you reset it. Click it for Render Health: the whole run since the last reset (ticks, skipped ticks, frame times against one frame at the show rate, output windows' busy and missed ticks), what times the frames (an output screen's refresh, or the stage's own clock), Reset, and Copy Report.

On a 13" MacBook, or with the window at its smallest, labels shorten (Playlist | Compositor, Output, Advanced) rather than disappearing. Hover any button for its full name.

Preview Monitor — Yellow Border

Your safe audition space. Audition cues, scrub the playhead, set In and Out points (SET IN, SET OUT), check that the file plays cleanly. Nothing here reaches the audience. Transport buttons (GOTO IN, SET IN, SET OUT, GOTO OUT) sit directly beneath.

Centre Transport & Transition Column

  • READY status pill
  • TRANSITION STYLE — DISSOLVE, DIP BLACK, DIP WHITE, WIPE
  • TRANSITION TIMING — CUT, 0.5s, 1.0s, 2.0s crossfade
  • The large glowing green GO button

Live Program Monitor — Red Border

Exactly what your audience sees, plus stereo audio level meters down the right edge. If it's on this monitor, it's on the wall.

Active Cue Strip

Below the monitors: the currently playing cue with a scrub bar, elapsed/remaining time readout, GOTO 10s / 20s / 30s to End jump buttons, and a STOP button.

Playlist Cues

Your show, top to bottom. Index numbers, thumbnails, durations, progress bars, colour tags, loop and follow indicators. Right‑hand controls per row: loop toggle, follow toggle, audio mute, delete, and a drag reorder handle.

Cue Properties Inspector

Everything about the selected cue — playback, trims, picture, audio, EQ and the channel matrix (see §6).


Section 03Media & Cue Types

Nine Cue Types

TypeDescription
🎬 VideoA video file. Plays through the A/B buffer engine with embedded audio routing.
🔊 AudioAudio‑only. Routed through the multi‑band EQ and channel matrix.
🖼️ ImageA still, held on the canvas for a set duration.
🎞️ Image SequenceA numbered frame sequence (DPX/EXR/PNG/TIFF/TGA) treated as one clip.
⏱️ WaitA timed pause. Inserts programmatic delay into auto‑follow chains.
📁 GroupA collapsible folder. Organise a show into acts and scenes.
🎛️ CompositionAn entire Stage Compositor multi-track timeline, packaged as a single playlist cue.
📡 NDI InputA live NDI source from the network, usable as a compositor layer.
📰 Lower ThirdA rendered title/subtitle graphic over an accent bar.
🔤 TextYour own words in any font, or a countdown, count-up or clock, as a compositor clip. See Text & Timers.

⚠️ Format honesty: SimplePlay Pro X decodes through AVFoundation plus its own native HAP decoder. There is no FFmpeg inside. If a container isn't in the format table, it won't play — and we'd rather tell you now than have you find out during the keynote. Transcode exotic files to ProRes, H.264/H.265 in MOV/MP4, or HAP before show day. A container can hold a codec that won't play even when the container is supported — a .mov with PNG or Animation video, for one. Those are flagged once, by name, when you add them (an error naming the codec and what to convert to), and the clip stays blank rather than retrying.

HAP — Fully Native

The complete HAP codec family decodes natively, GPU‑assisted, with alpha:

FourCCNameNotes
Hap1HapRGB, DXT1/BC1
Hap5Hap AlphaRGBA, DXT5/BC3
HapYHap QHigh quality, Scaled YCoCg DXT5
HapMHap Q AlphaScaled YCoCg + BC4 alpha
HapAHap Alpha‑OnlyBC4/RGTC1
Hap7Hap 7 / Hap RBC7

HAP is the right choice for media‑server workflows: huge frame sizes, cheap decode, clean alpha. Wrap it in a .mov.

Image Sequences

Choose File → Import Image Sequence (DPX/PNG/EXR)… (⌘⇧I). SimplePlay Pro X detects the numbering pattern, padding, and frame range automatically.

Per‑sequence options:

  • Frame rate — how fast to play the stack
  • Missing frame policy — Hold Previous Frame, Black Frame, or Transparent Frame
  • Alpha mode — Premultiplied, Straight, or Ignore Alpha (Opaque)
  • Colour space

Part Two · Running a Show

Section 04Building the Playlist

Importing

  • Drag files from Finder straight onto the playlist
  • Import Files button, or File → Import Files…
  • Let a watchfolder do it for you

Organising & Relational Cue Numbering

  • Cue IDs & Decimal Hierarchy: Cues support both whole numbers and theatrical/corporate decimal numbering (e.g. 1, 1.1, 1.2, 1.10, 2, 2.0.1). Last-minute cues can be inserted between existing cues without breaking external control bindings or renumbering the script.
  • Segmented Sorting: Relational sorting treats numbers hierarchically (1.2 < 1.10 < 2.0), avoiding standard alphabetical pitfalls.
  • Renumber Cues: Renumbers the entire active playlist sequentially from 1 when needed.
  • Add Group: Create act/scene folders and collapse them to streamline navigation.
  • Wait Cue: Insert a timed delay cue into auto-advance sequences.
  • Control Cue: Add Group ▾ → Add Control Cue inserts a cue that sends OSC and MIDI to other gear — see Control Cues & Send Markers.
  • Drag & Drop: Drag rows to reorder; drop into groups to nest.
  • Colour Tags: Seven vivid colour tags for at‑a‑glance show organization.

Control Cues & Send Markers

A Control cue
A Control cue's properties: an OSC message to the lighting desk and a three-second DMX fade on Art-Net universe 1. It's linked, so the show carries straight on to the next cue.

A Control cue fires other gear from the show: a lighting desk, a sound system, a camera, another media server. Add one with Add Group ▾ → Add Control Cue, then list what it sends in the inspector's Control section:

  • OSC — a host, a UDP port, an address such as /eos/cue/1/12/fire, and any arguments, space-separated: 1 is an integer, 0.5 a decimal, anything else (or "in quotes") text.
  • MIDI — a destination (a MIDI interface's port, or an IAC bus to reach another app on this Mac) and a Note On, Note Off, Control Change, Program Change or MIDI Show Control command (GO, STOP, RESUME, LOAD, ALL OFF or RESET, with a cue number and device ID).
  • DMX — lighting levels over Art-Net: a node's IP address (or a broadcast address such as 255.255.255.255), a universe, a first channel and the levels for it and the channels after it (255 128 0, or percentages such as 50%), with an optional fade in seconds. See DMX Out.

Messages go out in order when the cue fires. What's on program carries on — a Control cue never replaces the picture. Like any GO, the next cue is then selected; turn on auto-continue to fire it straight away, so a Control cue can fire alongside the video cue after it. Send Now sends the list by hand, to check the other gear answers before the show. Control cues can also be fired by timecode, OSC, MIDI and the Stream Deck, like any cue.

On a timeline, a marker set to Send… (right-click its flag) sends its own list every time the playhead reaches it — see Action Markers.

On a Stage Sync pair only the master sends: the backup runs the same show but holds its messages back, so nothing fires twice. Everything sent is written to the app's log.

Batch Editing

Hold ⌘ or ⇧ to select multiple cues. The inspector switches to Batch Mode, letting you set volume, gravity, speed, fade durations, and colour tags across dozens of cues in one move.

Auto-Follow & Auto-Continue Chains

Link ModeIconBehaviour when the cue ends
DisabledNonePlayout stops. Parks and waits for a manual GO.
Auto‑Continue / Follow Next🟢 ⬇️Automatically takes the next cue immediately upon completion.
Auto‑Follow Previous🟡 ⬆️Steps back one cue and takes previous item.
Auto‑Follow First🔴 ⬅️Loops to the top of the playlist or group.
Hold Last Frame🟠 ⏸️Holds the final frame statically instead of dropping to black. Ideal for speaker walk-ups and corporate slides.
Loop Cue🔁Loops this cue from In-point to Out-point indefinitely.

⏱️ Pre-Wait Delay Execution: When a cue has a configured Pre-Wait Delay (delayDuration), SimplePlay Pro X holds the outgoing video or background frame cleanly during the countdown, cutting or dissolving only when the take fires. Playout never prematurely flashes black during pre-wait delays.


Section 05Going Live — Transitions, Buffers & Panic Buttons

The A/B Dual Buffer Engine

There are always two playback engines running:

  • Buffer A — Program. The cue on air. Hardware‑decoded straight to Metal GPU textures.
  • Buffer B — Standby. The previewed cue, already decoded and parked on its first frame.

When you press GO, B fades up while A fades down. Because B was already spun up and warm, there is no decode hitch, no black flash, no first‑frame stutter — the two most common ways a video cue embarrasses you in front of an audience.

Playout Transitions

Going live
Preview on the left with the next cue ready, the transition column and GO in the centre, Program on the right, and below them the active cue's countdown and the panic row.
ModeBehaviour
CUTInstantaneous hard cut switch on Return.
DISSOLVESmooth, uniform 32BGRA sRGB crossfade between Program and Preview.
DIP BLACKGracefully fades Program down to black, then fades Preview up from black.
DIP WHITEDynamic flash/dip-to-white transition.
WIPEDirectional horizontal wipe across the screen.
0.5s / 1.0s / 2.0sPreset durations for auto-timed crossfades.

⏱️ Sample-Accurate AV Sync: Video presentation timestamps are locked directly to the AVAudioNode sample-rate render clock, preventing any audio/video drift across long takes.

The Panic Row

BLACKOUT · FTB · FREEZE · MUTE · AUTO PLAY · END ALL

These are always visible, always live, and never behind a menu. That's on purpose.


Section 06The Cue Inspector

Cue Properties
Cue Properties for a video cue, top to bottom: cue ID, colour and comment; playback; time trigger; trim and fades; picture; audio and the graphic EQ.
An audio cue
An audio cue: the same blocks without the picture, with its output device, channel routing and the 8-band graphic EQ.

Select a cue; the right‑hand Cue Properties panel fills in. It's laid out like the Stage Compositor's clip inspector: titled blocks, labels on the left, controls on the right.

Header — the cue's thumbnail, its editable title, and one line of facts (type, format, length, size). A missing file shows here with Relink and Locate Show Folder.

Cue

  • Cue ID — your own alphanumeric ID (Q101, 2.5, ACT1). This is what OSC, MIDI, and timecode address.
  • Colour — seven tags
  • Comment — notes for whoever runs the show when you're not there

Playback

  • Start — Paused on the first frame: load and hold on frame one
  • Delay — a pre-wait before the cue plays
  • End — Hold the last frame instead of dropping to black
  • Jump To — chain to a specific cue
  • Speed — 0.25× to 2.0×, pitch‑corrected audio

Time Trigger — switch it on from the block's header; timecode, capture and Chase appear once it's on.

Trim

  • In / Out — non‑destructive trims. ⌘[ and ⌘] set them at the playhead; ⌘\ resets.
  • Fade — fade-in and fade-out durations

Picture (not shown for audio cues)

  • Fit / Fill / Stretch / Custom, with width, height and zoom for Custom
  • Brightness / Contrast / Saturation, and Reset once anything has changed

Audio — Volume, Output device, Routing (a preset pop-up plus Matrix… for the full matrix), and the EQ.

Image, Wait, Image Sequence and Composition cues get a block of their own, and file cues end with Show in Finder.

💡 Double-click a slider's label to reset it. Image and wait durations are drag-or-type fields — drag sideways, or click and type an exact value.

Several cues selected? The header says how many and of what kinds, and every change applies to all of them (Batch Mode).


Part Three · The Stage Compositor

Section 07Stage Compositor — Overview

Switch to it with Stage Compositor in the header's Playlist | Stage Compositor switch, or Control → Switch to Stage Compositor (⌘⇧E). The same switch takes you back.

Stage Compositor
The Stage Compositor: the media browser on the left; the stage canvas in the centre, cut into four screens — LED Left, LED Right, IMAG and Broadcast — with the presenter on IMAG; timeline tabs (Live Deck, Main, Walk-in Loop) above the multi-track timeline, with action markers on the ruler; the clip inspector on the right, its Where map showing the screens the selected clip plays on.

This is a multi‑track compositing timeline that lives inside your show file. Build a layered look during prep; fire the whole thing as a single playlist cue on the night — and, with the Live Deck, fire prepared clips on top of it at the moment you choose.

To make a composition cue, choose Add Group ▾ → Add Composition in the playlist: it adds the cue and opens the Stage Compositor on it. Take it like any other cue.

The Anatomy

The media browser
The media browser's three tabs: Files (the show folder, with lengths and sizes), Generators (text and timers, test cards and calibration grids) and Live Capture (cameras, capture cards, Syphon and NDI sources).
The stage canvas
The stage canvas mid-show: one 16:9 stage cut into four screens. The Feature Reel track plays on LED Left and is mirrored on LED Right; the presenter and the lower third go to IMAG.
The timeline
The Main timeline: six tracks, each a layer with mute, solo, lock and audio on its header; action markers on the ruler — a Hold for the speaker, a Send that cues the lights, an Applause Vamp — and the transport, snapping and zoom above.

Media Browser (left) — Features 3 tabs:

  1. Files — Browse local disks. Filter by All / Video / Audio / Images / Sequences, or search. Thumbnails, durations, and codec badges.
  2. Live Capture — Connected hardware webcams and USB capture devices (Elgato Cam Link, USB3 Video, MacBook Pro Camera) running at locked 1080p60.
  3. Generators — Built-in broadcast test patterns, SMPTE/EBU/ARIB bars, solid colors, and alignment grids.

Stage Canvas (centre) — Live composite at your stage size: exactly what the outputs show, playing or stopped, with Live Deck slots fired over the timeline and every clip's effects and blend. A selected deck slot that isn't on air shows dimmed, so you can place it before firing. The level meters beside it measure the audio actually going out — timeline clips, loops and fired deck slots, after every volume and audio matrix. Click layers to select them; drag to move and resize with live onscreen transform gizmos. With several outputs in Span Across Outputs mode, each output's part of the stage is outlined in its Patch Bay colour (the Stage Map, see §14). Pop Out detaches the canvas to its own window (or ⌘⇧F for fullscreen).

Bottom Panel — tabs along its top edge:

Live Deck │ Main · Opening Loop × · Award Sting × · +

  • Live Deck — the grid of prepared clips you fire live (§16).
  • Main — the composition's own multi-track timeline, with front/tail clip thumbnails, audio waveforms (in each clip's green volume lane), and magnetic snapping.
  • Loop timelines — one tab per loop, and + to make one (§15).

Inspector (right) — three tabs:

  • Clip — the selected clip: where it plays, its transform, playback, effects and audio (§8).
  • Layer — the selected clip's track or deck row, or one you click by its header: its outputs, master, bypass, solo and group (§14).
  • Canvas — the stage itself: a stage map, the stage Size (a preset or exact W × H, with Match Output Layout to hand sizing back to the outputs), the Screens list with Open Output Patch Bay…, the Video Wall Grid, and Fit All / Fill All for every clip.

💡 Stage size. Normally the stage sizes itself from your outputs. A size you set in the Canvas tab is kept through output changes and saved with the project — it never re-tiles your screens. Match Output Layout gives sizing back to the outputs.


Section 08Layers, Transform & Blending

The Clip tab
The Clip tab for a video clip: Where (the screens it plays on), Essentials, Playback, Effects — here a colour grade and motion blur — and Audio.

Select any clip on the timeline (or a slot in the Live Deck) and the Clip tab shows it, laid out in the order you work: where it plays, how it looks, how it plays, its effects, its sound. Every control appears once.

Where

A small stage map showing your screens and where the clip lands, then the clip's screens:

  • Follow Layer (the default) — the clip goes wherever its track or deck row goes. Outputs it inherits carry a LAYER badge.
  • Whole Stage — keep this clip on the whole stage, whatever its layer does.
  • An output — pick one or more outputs for this clip alone. The first is the one it's positioned on (EDIT); the rest show the same picture (MIRROR).

Most of the time you'll leave clips on Follow Layer and route the layer instead — see §14.

Essentials

  • Position & Size — X, Y, Width, Height in pixels of the clip's own screen (or the whole stage), plus Rotation.
  • Opacity — 0–100%, keyframable.
  • Blend — 18 modes (below). A clip left on Normal blends the way its layer does; the note under the menu says how.
  • Quick Place — a 3×3 grid snaps the clip to a corner, edge or the centre; Fit, Fill, Full Frame and 1:1 Native size it in one click. Fill covers the screen and crops.
  • PIP, Split & Shape Presets — Top-Left, Top-Right, Bottom-Left, Bottom-Right, Split Left, Split Right and more, from one menu.
  • Media Fit — how the media sits in the clip's box: Letterbox, Crop, or Stretch.

Playback

  • In / Out and Fade on the timeline, plus Loop.
  • A Live Deck slot shows Starts and When It Ends instead (§16).

Blend Modes

The clip's Blend menu and the Layer tab's hold the same 18 modes, grouped:

GroupModesUse them for
—NormalStandard alpha compositing
LightenAdd, Screen, Lighten, Color DodgeLight, fire, particles, haze — black drops out
DarkenMultiply, Darken, Color BurnShadows, textures, ink — white drops out
ContrastOverlay, Soft Light, Hard LightTexture and punch over a picture
DifferenceDifference, Exclusion, SubtractGraphic, inverted looks
ColourHue, Saturation, Color, LuminosityTint or recolour what's beneath

A clip with a mode of its own keeps it, at full strength. A clip left on Normal takes its layer's mode and amount (§14).

Audio

Volume and mute, a routing preset pop-up (showing Custom once you've edited it), and the full matrix in a pop-over (§13).


Text & Timers

A text clip
A text clip: its words, font, weight, size, colour, alignment and box, above the blocks every clip has — here with keyframes that slide and fade the title in.

Titles, speaker names, slide text and on-screen clocks are Text clips. In the media browser's Generators tab, the Text & Timers section has four: Text, Countdown, Count Up and Time of Day. Double-click one to add it at the playhead, or drag it onto a track or a Live Deck cell. A text clip is placed, faded, keyframed and sent to outputs like any other clip.

Select it and the inspector's Text block sets what it shows and how it looks:

  • Shows — Text, Countdown, Count Up or Time of Day. Type the words in the box below; several lines are fine.
  • Timers — in a countdown, count-up or clock, {time} in the words is replaced by the time ("Doors in {time}"); without it, the time follows the words. Format is Auto (MM:SS, H:MM:SS from an hour up), MM:SS or H:MM:SS. A countdown runs to zero over the clip and holds there, or over its own Length in seconds.
  • Font, Weight, Italic, Size, Colour, Shadow — size is in points on a 1080-high stage, so text keeps its share of the screen at any resolution.
  • Align — left, centre or right, and top, middle or bottom, within the clip's box (set its position and size in Essentials).
  • Line Gap, Box (a background behind the text, with its colour and corners) and Padding.

Countdowns and count-ups are worked out from the clip's own time, so a show plays them the same way every time it runs. Time of Day is the exception: it shows the Mac's clock. Text costs almost nothing on the GPU — it's drawn once, and again only when the words change (once a second for a timer).

Section 09Layer FX — Keying, Grading, Blur & Vignette

Per clip. Deterministic. Saved in the project file.

The Effect Stack

In the clip inspector's Effects block, effects the clip doesn't use yet sit there as + buttons — + Chroma Key, + Color, + Blur, + Vignette, + Mask, + Warp Mesh. Click one to add it as a card. Cards are listed in the order they're applied, and each has:

  • a power button — bypass the effect without losing its settings;
  • a fold arrow — tuck the card away when you don't need its controls;
  • × — remove it. Removing a card resets that effect to neutral, so the show looks the same whether or not anyone opens the inspector.

Motion Blur is a card from the start (on by default).

Chroma Key

Difference keying with real spill suppression:

ControlRangeNotes
Key ColorGreen · BluePick the screen you actually shot against
Tolerance5 – 60%How much colour variation counts as "key this out"
Softness0 – 40%Edge feathering. A little goes a long way.
Spill0 – 100%Spill suppression: removes green bounce from hair, shoulders, and edges

Colour Grading

The Color card:

  • Brightness (−0.5 to +0.5)
  • Contrast (0.2× to 2.0×)
  • Saturation (0.0× to 2.0×)
  • Hue (−180° to +180°)
  • Temperature (cool to warm)

Blur, Vignette & Mask

  • Blur — Radius 0 to 30 px. Great for a defocused background plate behind a keyed presenter.
  • Vignette — darkens the clip's edges; Intensity 0.0 – 2.0.
  • Mask — shows only part of the clip: a Rectangle, Rounded rectangle or Ellipse, with Width, Height, Corners (for Rounded), a soft Feather edge, and Invert to cut a hole instead.

Motion Blur

  • On by default. Fast keyframe-driven movement (a layer sliding into frame, a quick pan) is smoothed with directional blur derived from the layer's own animated velocity, instead of looking strobed.
  • Toggle it off in Clip Properties if you want sharp per-frame motion instead — a static/unanimated layer costs nothing either way, since the blur pass only ever runs while it measures actual movement.

Section 10Keyframe Animation & Unfolded Bezier Curve Tracks

Any of these properties can be animated over time:

Opacity · Position X · Position Y · Scale X · Scale Y · Rotation · Volume

Keyframing & Curve Drawer

Curve lanes
A title's opacity and Position X lanes unfolded under its clip: the fade-in and the slide, with a keyframe at each point.
  • Click the ◇ diamond next to a property to set a keyframe at the playhead.
  • Timeline clips only. Live Deck slots play on their own clock from the moment they're fired, so they don't take keyframes — make the animation on a timeline (a loop timeline works well) and fire that. A slot that already has keyframes from an older show still plays them; the inspector offers Remove Keyframes.
  • Unfold Curve Track: Open the inline curve track drawer below a timeline clip to see and place keyframes on a per-property automation curve.
  • Canvas Keyframe Sync: Moving layers directly on the Stage Canvas automatically writes position keyframes when animation is active.

Easing Curves

Each keyframe carries a Curve setting, chosen from the menu next to it in the Clip Properties inspector (or by right-clicking the keyframe itself):

CurveFeel
LinearConstant speed. Mechanical — good for scrolling.
Ease InStarts slow, accelerates. Things leaving.
Ease OutStarts fast, settles. Things arriving.
Ease In OutSmooth both ends. The default for most motion.
HoldNo interpolation — snaps to the next value. Stepped cuts.
BezierThe one freeform curve, with two draggable orange tangent handles per segment, including overshoot/anticipation bounces past the keyframe values.

Linear/Ease In/Ease Out/Ease In Out/Hold are fixed-shape presets — picking one always produces the same curve. Bezier is the only one of the six with handles to drag.

Where you drag the handles depends on the property:

  • Position (the layer's path across the canvas): right on the Stage Canvas motion path itself. Double-click a waypoint diamond to switch it to Bezier instantly (double-click again to switch back to Ease In/Out) — or right-click it and choose Bezier from Easing Curve if you want one of the other five presets instead. Either way, two orange handles appear on either side of the waypoint, bending the actual on-screen path the layer travels. One drag reshapes X and Y together, since a point on the path is a single 2D waypoint.
  • Opacity, Volume, Scale, Rotation (properties with no spatial position to show on the canvas): in the curve track drawer — unfold it below the timeline clip. Double-click a keyframe to switch it to Bezier (double-click again to revert), or right-click it for the full Easing Curve menu, then drag its two handles on that value-over-time graph.

Switching a keyframe to Bezier for the first time seeds its handles with a smooth curve computed from its neighbors, so a chain of Bezier keyframes flows through each point rather than kinking at every one. If a handle (or a neighboring keyframe) gets dragged out of alignment afterward, right-click the keyframe/waypoint and choose Smooth Tangents to snap it back to that continuous shape without leaving Bezier mode.


Section 11Projection Warp Mesh & Timeline Trimming

Projection Warp Mesh

  • Hardware-Accelerated Free-Form Warping: Per-layer geometry mapping executed directly on Apple Silicon GPUs through custom Metal vertex shaders.
  • Scalable Density (up to 16×16 / 256 Control Points): Built for architectural projection, domed ceiling mapping, curved LED backdrops, and complex stage surfaces.
  • Grid Density Presets: Switch seamlessly between 3×3, 4×4, 5×5, 8×8, and 16×16 control grids from the inspector.
  • Non-Destructive Spline Interpolation: Switching grid densities preserves existing warp contours through bicubic surface evaluation.
  • Interactive Mini Warp Grid Editor: Drag control points directly in the inspector or on-screen canvas. Control knobs automatically scale down on dense grids (8×8, 16×16) to maintain precision and avoid visual crowding.
  • Instant Grid Reset: Single-click button restores the mesh to a flat rectangular identity mapping without affecting other layer transform properties.

Advanced Timeline Trimming & Snapping

  • Front & Tail Thumbnails: Every clip displays start and end thumbnail frames.
  • Audio Waveforms: click a clip's green dot to open its volume lane, and its waveform shows there — measured from the file (the loudest sample in every hundredth of a second), for exactly the part of the media the clip plays, and scaled by its volume so dips and fades show. Click the dot again to hide it. A file with no sound has no waveform: its green dot is greyed out (No audio in this file).
  • Magnetic Snapping (S): Snaps clip edges to the playhead, other clips, cue markers, and track starts.
  • Loop Trimming: Extending the right edge of a loop-enabled clip repeats the media, with a notch and a snap point at every pass.
  • Clips at any zoom: a short clip — or a long one zoomed far out — shows what fits: its curve dots, then its thumbnail, then its name. Its opacity, volume and animation lanes stay exactly the clip's width, their headers shortening to the value, then just the coloured dot. Each timeline tab keeps its own zoom, and a tab opened for the first time fits the view.
  • Split Clip (⌘B): Razor-blade slice at the playhead.

Section 12Live Video Capture, Syphon & NDI Ingestion

Hardware Live Capture

  • Under the Live Capture tab in the compositor browser, SimplePlay Pro X enumerates all connected USB webcams, UVC devices, and capture cards (Elgato Cam Link, USB3 Video capture cards, FaceTime HD cameras).
  • Streams video directly into CompositionRenderer locked to 1080p60 with visual-only zero-allocation buffers, keeping CPU and latency minimal.

Syphon & NDI Ingestion

  • Ingest local Syphon feeds or network NDI streams as native compositor layers.
  • Apply transforms, chroma keying, and PIP positioning to live camera streams in real time.

Section 13Per-Clip Audio Matrix

The audio matrix
A clip's audio matrix: presets from stereo up to 64 channels for Dante, and a grid that sends each input channel to any outputs.

Every clip carries its own input → output channel gain matrix, up to 64×64.

Presets

  • Stereo (1–2) · Mono Sum (1–2) · Quad (1–4)
  • 5.1 Surround (1–6) · 7.1 Surround (1–8)
  • 1:1 Direct (1–16, 1–32, 1–64 Dante AoIP)

Every output channel can be custom-labelled (HOUSE L, DELAY R, SUB, PRESS FEED).


Section 14Screens & Layers

The Canvas tab
The Canvas tab: the stage's size and the screens cut from it, each with its place on the stage.

One composition has one stage — a single canvas — and the Output Patch Bay cuts it into one part per output when Span Across Outputs is on. Putting a picture on a particular screen means putting it on that screen's part of the stage. There are two ways to do it:

  • Route a layer (the usual way) — send a whole timeline track or Live Deck row to an output. Every clip on it goes there.
  • Give a clip its own screens — for the odd clip that should go somewhere different from its layer.

The Stage Map

With two or more outputs spanning the stage, the canvas outlines each output's part in its Patch Bay colour, and the clip inspector's Where block and the Canvas tab show the same map in miniature. A clip placed on a screen is drawn and dragged inside that screen; extra mirrored screens show a dashed MIRROR outline.

⚠️ Matrix mode. With Span Across Outputs off, every output shows the whole canvas, so routing to a screen changes nothing you can see. Turn it on in the Output Patch Bay first; the Layer tab's Output note reminds you while it's off.

Layer Outputs

Click a timeline track header or Live Deck row header, and pick its outputs in the inspector's Layer tab (below) — a chip per output, in its Patch Bay colour:

ChipsMeaning
Whole StageThe layer plays on the whole stage
One outputEverything on the layer plays on that output
Two or moreIt plays on the first (EDIT), mirrored on the others (MIRROR) — one decode, several screens

Now drop clips on the layer and they go where its outputs say — no per-clip setup. A clip sized to fill the whole stage fills the whole screen it's sent to. Drag a clip to another track and it moves to that track's output.

🎛️ Recipe — one layer per NDI stream. In the Output Patch Bay, make six outputs, turn on Span Across Outputs, and set each output's Output: to NDI (§20). Back in the compositor, click each of six track headers and pick its output in the Layer tab — track 1 to Output 1, track 2 to Output 2, and so on. Every clip you drop on a track now goes out on its own NDI stream.

The Layer Tab

The Layer tab
The Layer tab for the Graphics track: its outputs, and masters for opacity, volume and blend — here every clip on it blends as Screen at 85%.

The inspector's Layer tab edits a layer as a whole. It shows the selected clip's track or row — or click a track or row header to show that one. (Clicking a clip afterwards takes you back to the Clip tab.) You can also right-click a header and choose Layer Properties.

  • Output — Whole Stage plus a chip per output, with a note saying where the layer's clips go. If some clips have screens of their own, it says how many, with a Follow Layer button that hands them all back to the layer in one undoable step — handy for a show you routed clip by clip before layers had outputs.
  • Master — for everything on the layer (double-click a label to reset it):
    • Opacity — a master for the picture.
    • Volume — a master for the audio, on top of each clip's own volume.
    • Blend and Amount — the blend mode for the layer's clips left on Normal, and how much of it: 0% looks Normal, 100% is the full mode. Amount is greyed out while the layer is on Normal.
    • Bypass (hidden from the outputs), and Solo for tracks.

The red, green and purple dots beside Opacity, Volume and Amount are the ones on a deck row's fader.

  • Group — put the layer in a group (or New Group…), and set that group's own Master and Bypass, Rename… or Delete it.

A Clip's Own Screens

In the clip inspector's Where block:

  • Follow Layer (default) — go wherever the layer goes.
  • Whole Stage — stay on the whole stage even when the layer is routed somewhere.
  • One or more outputs — this clip alone goes there. Turning off its last output hands it back to the layer.

Masters, Bypass & Groups

What you see is the clip's own opacity × its layer's master × its group's master; what you hear is the clip's volume × its layer's volume. A master at zero, or a bypassed layer or group, takes the layer off the outputs without stopping anything — lift it and the picture is straight back.

WhereControls
Timeline track headerM (bypass), S (solo), lock, audio mute
Live Deck row headerA fader that rides 🔴 opacity, 🟢 volume or 🟣 blend, and B (bypass) — for riding live
Layer tabAll of the above, plus outputs and groups

The row fader. Click one of the three dots on a deck row's header to choose what its fader rides; the fader and the readout beside the dots take that dot's colour. 🔴 is opacity and 🟢 volume — the same colours as a timeline clip's opacity and volume dots. 🟣 is blend: how much of the row's blend mode shows. While the row is on Normal, the purple dot is dim and the readout says Normal ▾ — click it to choose a mode. Once it has one, the row's subtitle names it (ROW 2 · ADD).

A group ("All IMAG", "Sponsor Wall") is one master and one bypass shared by several tracks and rows: one fader or click takes them all down together.

Upgrading from the Stack tab? It's gone — everything it did lives in the Layer tab and on the headers above.

Stage Sync note: layer masters — opacity, volume and blend — are part of the show file, not the live heartbeat. A fader you ride during the show isn't copied to a backup machine, and isn't in the trigger log.


Section 15Timeline Tabs, Loop Timelines & Action Markers

Loop Timelines

A loop timeline
The Walk-in Loop tab: a loop timeline previewed on the canvas — marked PREVIEW, not on the outputs — while the show carries on.

Besides Main, a composition can hold any number of loop timelines — a walk-in loop, an award sting, a sponsor cycle — each edited in its own tab at the top of the bottom panel.

  • + in the tab bar → New Timeline, or reopen a tab you closed.
  • Right-click a tab for Rename…, Duplicate, Load into Live Deck, Add to Main at Playhead, Close Tab, and Delete… (it tells you how many clips play the timeline, which go too; Undo brings it all back).
  • Tabs that don't fit go into a » menu, so the bar never scrolls.

Playing a loop. A loop plays through a timeline clip — a box on a Main track or in a Live Deck slot that shows the loop inside it:

  • Add to Main at Playhead puts one on Main.
  • Load into Live Deck (on the toolbar while a loop is open, or in the tab menu) puts it in a row's first empty look, a new row, or the deck's Timeline Row (§16).
  • Select a timeline clip to see its loop and length, with Open Timeline. Its look lives on the loop's own clips, so rotation, media fit, effects and audio routing aren't offered on the timeline clip itself; its Blend goes to the loop's clips left on Normal.
  • A timeline clip set to Loop starts its loop again at the end; otherwise it holds the last frame.
  • The same loop can play in several places at once — each plays independently.

🎬 Edit while the show runs. Changing tabs never touches the show. With the show playing — from the Live Deck or the compositor's transport, or as a cue on program — open a loop tab and Main, the Live Deck and its fired slots carry on on the outputs exactly as they were.

  • A loop tab is a preview. The canvas shows the loop on its own player, marked PREVIEW · not on the outputs. The toolbar's transport (and Space) plays, pauses and scrubs the preview only; it's silent, so nothing reaches the show's sound. Cameras, NDI and Syphon appear in the preview when the show already has them open; the preview never opens a device of its own.
  • The show keeps its controls. OSC (/compositor/play, /pause, /seek, /cue/…), Companion and /deck/… firing all drive the show, whichever tab is open. Back on Main or the Live Deck, the transport is the show's again, still running.
  • Edits go to the show. A loop that's playing on air — in a deck slot, on a Main track or in the Timelines row — changes on air as you edit it, the same as editing Main does.

Loops can't contain timeline clips or a Live Deck of their own.

Action Markers

Add a marker at the playhead with M. Right-click a marker flag on the ruler to choose what it does when the playhead reaches it:

ActionBehaviour
Cue Point (default)Nothing — a named place to jump to.
Hold Until GOThe timeline stops at the marker and waits. Fired Live Deck slots keep playing.
Vamp Until GOThe section from the previous marker (or the start) to this one loops until GO. The vamp section is shaded on the ruler.
Jump To ▸Goes to the chosen marker every time it's reached.
Send…Sends OSC and MIDI to other gear every time it's reached, and the timeline carries on — the same messages a Control cue sends.

To rename a marker or change its colour, double-click its flag, or right-click it and choose Rename…. A marker you haven't renamed takes its action's name, so a new marker made a Hold reads "Hold"; a name you've typed stays whatever the marker does.

GO releases a waiting Hold or Vamp before it would take the next cue. The compositor toolbar shows a HOLD or VAMP badge with its own GO button while it waits, and /compositor/release does the same over OSC. Moving the playhead by hand ends a hold and re-arms the markers ahead.


Section 16The Live Deck

A grid of prepared clips you fire live, on top of the running composition. What each slot does (source, screen, fades, effects, audio) is fixed during prep; when it fires is your call. Every fire is logged, and a rehearsal can be baked onto the timeline so it replays exactly.

The deck lives inside a Composition cue (Add Group ▾ → Add Composition in the playlist): it's live while that cue is on program (the header says NOT ON PROGRAM otherwise). Taking a non-composition cue stops it along with the compositor.

The Live Deck
The Live Deck on program with the Keynote look fired: looks across the top (Walk-in to Outro); each row is a layer — Graphics, IMAG, Features, Backdrops — with its fader and bypass on its header. LIVE slots are on air, and the Timelines row along the bottom holds Main and the Walk-in Loop. The selected Space Station slot is in the inspector's Clip tab.

The Grid

Open the Live Deck tab in the bottom panel. Start with Create a 3 × 4 Deck, or add + Row and + Look yourself.

  • Rows are layers, stacked above the timeline — the top row is in front. Each row plays one slot at a time.
  • Looks are columns. Click a look's header to fire every row's slot in that column at once.
  • The bottom Timelines row switches the timeline underneath (below).

Filling cells. Drag anything from the media browser onto a cell — files, cameras, NDI, Syphon, generators. Click a slot to edit it in the Clip tab; double-click (or ▶) to fire it; drag to move it, ⌥-drag to copy. Right-click for Fire, Loop, Cut, Copy, Paste, Duplicate and Delete; copy and paste work between the deck and the timeline both ways. A slot that's on air can't be deleted, pasted over or moved to another row.

Reading the grid. Cells show live pictures for cameras, NDI, Syphon and lower thirds, and a poster frame for files that switches to playback once on air.

TallyMeaning
🔴 Red, LIVE + progress barOn air
🟠 OrangeOn its way out (fading, or under its replacement)
🟡 ARMEDWaiting for the next marker

Row headers carry the row's name and number, × (take it off air), a fader that rides opacity, volume or blend — pick with the red, green and purple dots — and B (bypass); see §14. The chevron collapses a row to a slim strip of slot names; ⋯ → Collapse All Rows / Expand All Rows does every row. Right-click a row header to rename it, move it up or down the stack, bypass, clear or delete it. Right-click a look header to rename it, delete it, or set Clear Rows With No Slot Here (firing the look then clears rows that have nothing in that column).

Firing & Clearing

  • Firing a slot replaces whatever its row is playing with a dissolve: the old slot stays at full strength until the new one has faded in (the new slot's fade-in).
  • Clearing — the row's ×, or Clear All in the header — takes slots off air, each with its own fade-out.
  • Each fired slot runs on its own clock, from the moment it's fired, so its fades start when you press the button. Pausing or stopping the timeline doesn't stop fired slots.
  • Every source in the deck is opened when the composition starts, so firing never waits for a file or a camera.

Slot Behaviours

A Live Deck slot
A Live Deck slot selected: the Clip tab shows its row and look, and in Playback when it starts and what it does when it ends.

Select a slot; the Clip tab's Playback block has:

SettingOptions
StartsWhen Fired, or At Next Marker — the slot is ARMED until the timeline's playhead reaches its next marker, then starts exactly on it. (No marker ahead fires it at once.)
When It EndsLoop, Hold the last frame, Clear the row, Previous (back to what the row played before — a sting returning to its backdrop), or Next (fire the next look's slot in this row).

The ending button. Every slot that plays to an end — a file, an image sequence or a loop timeline — shows its ending as a round button on its picture, in the Playlist's colours: 🔵 ↻ Loop, 🟠 ⏸ Hold, 🟢 → Next, 🔴 ← Previous, ⚪ ✕ Clear. Click it to step to the next ending (Hold → Loop → Next → Previous → Clear); right-click to pick one. A collapsed row shows a smaller one beside the slot's name. Cameras, NDI, Syphon, stills, generators and titles play until their row is cleared, so they have no ending.

The Timelines Row

The bottom row decides which timeline plays underneath the deck. A cell under each look holds Main or one of your loop timelines. Firing the look — or the cell itself — switches the playhead to that timeline, from its start. One plays at a time; a look with no timeline cell leaves the current one running. Every take starts on Main.

Right-click a timeline cell for:

  • Timeline ▸ — Main or a loop
  • Transition ▸ — Cut, or Fade 0.5 s / 1.0 s / 2.0 s (the old timeline stays at full under the new one — a dissolve, not a dip)
  • Start ▸ — When Fired or At the Next Marker
  • At Its End ▸ (loops) — Loop, Hold Last Frame, Back to the Previous Timeline, or Next Look's Timeline. Main ends the way its cue does; a loop on this row never ends the cue.

While a loop is on, Main's timeline tab shows a notice — the playhead is measuring the loop, not Main.

Transport

The deck's header has its own transport: back to start, previous / next marker, play / pause, stop, loop, timecode, and the GO badge for holds and vamps. It drives the program cue once the composition is taken, and the editor's preview otherwise.

With the Live Deck tab showing: Space plays / pauses, ↑ / ↓ go to the previous / next marker, and ⌘C ⌘V ⌘D ⌫ copy, paste, duplicate and delete the selected slot.

Trigger Log & Bake to Timeline

The Trigger Log
The Live Deck Trigger Log: one take's fires, clears and timeline switches against the composition's timecode, with Export CSV… and Bake to Timeline.

Every fire, clear and timeline switch is logged against the timeline's timecode, grouped by take (from taking the composition until it stops or is taken again).

  • Window → Live Deck Trigger Log (or ⋯ → Show Trigger Log) lists the takes. Bake any take, export the log as CSV, or clear it.
  • ⋯ → Bake Last Take to Timeline turns the latest take into timeline tracks in front of the existing ones — one track per row that was used, carrying the row's master, bypass, group and outputs. Each fire becomes a clip that runs until the next fire or clear in its row, so the show replays exactly as it was called. One undo step removes it.

Note: bake covers a take only up to its first timeline-row switch. After that the playhead measured another timeline, which Main's tracks can't replay; the Trigger Log tells you when that happens.

Control from Outside

  • OSC — /deck/look/{n}/go, /deck/row/{r}/slot/{n}/go, /deck/row/{r}/clear, /deck/clear and /deck/timeline/{n}/go (§22).
  • Companion — ⋯ → Export Companion Page… builds a Bitfocus Companion page for the current deck: looks across the top with Clear All, a row of slot buttons and a row Clear for each deck row, and the Timelines row on the bottom line (§26). Its buttons light from the deck: green while a slot, look or timeline cell is on air, amber while it's armed for the next marker — so you can ride the deck from the Stream Deck without looking back at the Mac (with OSC State Feedback on).
  • Backup machines follow the deck — see §29.

Part Four · Output & Routing

Section 17The Output Patch Bay

Open with Advanced… in the header, Control → Output Patch Bay… (⌘⇧M), or Open Output Patch Bay… in the compositor's Canvas tab.

Output Patch Bay
The Output Patch Bay: the selected output's canvas on the left — here OUT 1, LED Left, with its top corners keystoned in — its inspector on the right, and the four outputs along the bottom.

One window. Everything about where your pixels go.

Layout & Controls

An output's inspector
An output's inspector, top to bottom: output and format, DeckLink SDI mode, screen fit, 4-corner keystone, mesh warp, masks, edge blending, and the test pattern and tone generators.
  • Header — Canvas resolution, frame rate, output count, and Open Output Windows / Close Output Windows button.
  • Quick Actions — Display Test Card · Span Across Outputs (auto-tile across multi-display walls) · Edge Blending · Frame Rate · Range.
  • Frame Rate — the rate the stage renders at and every output is fed at, saved with the project. Match it to your outputs: a 59.94 SDI feed or a 50 Hz projector fed at another rate drops or repeats frames. Auto (the default) follows DeckLink when an output goes there, otherwise the refresh of the screen the first output is on (a 120 Hz screen runs the show at 60). Pick 23.976 to 60 to set it yourself. DeckLink is always fed at its own SDI mode's rate. When an output's screen refreshes at the show rate or a whole multiple of it (a 60 Hz projector on a 60 fps show), frames are timed to that screen's refresh, so it shows every frame once instead of now and then showing one twice; with DeckLink in use, or no such screen, the stage keeps its own clock.
  • Range — the show's dynamic range, SDR (the default) or HDR, saved with the project. HDR video (HDR10 / PQ and HLG files) is read with its full range either way.
    • SDR: HDR video is converted to standard range — its reference white near white, brighter highlights rolled off — so it sits naturally next to everything else.
    • HDR: HDR video keeps its highlights, and output windows on a screen that can show HDR (a MacBook Pro's XDR display, or an HDR display with HDR on in System Settings ▸ Displays) show them brighter than white. On other screens they stop at white. A warning sign appears when none of the output screens can show HDR.
    • Everything else — cameras, NDI and Syphon inputs, standard video, HAP, image sequences, text, keys, grades and fades — looks the same in either range.
    • Syphon, NDI and DeckLink outputs stay standard range: in an HDR show, highlights on them are clipped at white.
  • Live Canvas — Interactive master canvas with drag-to-position and drag-to-keystone. Toggles for Labels, Blend Overlaps, Grid, and Snap.
  • Output Inspector (right):
    • Name & Output — what this output drives: a physical display, a Virtual Display, NDI, Syphon, or BMD SDI / DeckLink. Any number of outputs can be NDI, each its own stream (§20); Syphon and DeckLink are one output each.
    • Format, Signal & Orientation — the output's own resolution, Full Composite / Fill / Key signal, and 0°–270° rotation.
    • Screen Fit & Scaling — Fit, Fill, Stretch, Custom, plus real-time Resolution HUD.
    • 4-Corner Keystone & Alignment — Corner pin warping with X/Y sliders.
    • Mesh Warp — a grid of points to bend this output onto a curved, uneven or odd-shaped screen.
    • Masks — soft-edged shapes that black out a set piece or trim a screen that isn't a rectangle.
    • Edge Blending — Soft edge blend overlap masks.
    • Test Patterns & Tone Generator — 24 test cards and audio tone generator.
  • Output Strip (bottom) — Every output as an interactive chip with its resolution and destination, plus Add Output (up to eight; for more, use the Canvas tab's Video Wall Grid, which lays outputs out in rows).

Section 184-Corner Keystone, Edge Blending & Video Walls

4-Corner Keystone Warping

Enable 4‑Corner Keystone Warping on any output:

  • Interactive Pins: Drag the corner handles directly on the canvas mesh.
  • Numeric Precision: Fine-tune Top-Left (X, Y), Top-Right (X, Y), Bottom-Left (X, Y), and Bottom-Right (X, Y) sliders.
  • Reset All Corners: Returns the output to a perfect rectangle with one click.
  • Choose between Perspective and Bezier warp algorithms.

Mesh Warp

Mesh warp
A four-by-four mesh warp on the IMAG output: drag any point on the canvas to fit the picture to the screen.

When four corners can't fit the screen — a curved wall, a cylinder, an LED shape that isn't a rectangle — warp the output with a mesh. Select the output in the Output Patch Bay and turn on Warp this output with a mesh in the Mesh Warp card:

  • Drag the points on the canvas preview to bend the picture onto the screen. Snap rounds them to the alignment grid, as it does for the keystone corners.
  • Columns and Rows set the grid, from 2 × 2 up to 8 × 8. Adding points keeps the shape you've already made.
  • Reset puts every point back on a flat grid.

Each output has its own mesh, saved with the project. The keystone corners still apply on top of it, and edge blending, cropping and Screen Fit work as before — on the screen, on NDI, Syphon and DeckLink alike.

Masks

Output masks
A mask on the Broadcast output, drawn on the canvas and set in the Masks card: black out a piece of the set, or keep only what's inside it, with a soft edge.

A mask blacks out part of an output — a set piece in front of the screen, a door, the edge of an odd-shaped LED wall. Select the output in the Output Patch Bay and click Add Mask in the Masks card. It starts as a rectangle in the middle; drag its corners on the canvas preview to shape it, and click + to add a point halfway along its longest edge for curves and odd shapes.

  • Feather softens the edge, up to 15% of the output's width.
  • Black out everything outside it keeps only the inside — to trim a screen to its shape. These masks show with a dashed outline.
  • Each mask can be renamed, switched off, or deleted, and an output can have as many as it needs.

Masks sit on the output itself, after the mesh warp and keystone, so they stay put on the screen whatever the picture does. They're saved with the project and apply on the screen, NDI, Syphon and DeckLink alike.

Soft Edge Blending

Edge blending is off unless the project turns it on — a new project, or one saved without it, never inherits blending from the last show. For overlapping projectors, switch on Edge Blending and set Left, Right, Top, and Bottom overlap masks. SimplePlay Pro X generates gamma-corrected blend gradients so projector overlap seams disappear. Turn on Blend Overlaps in the canvas view to see overlap zones highlighted.

The Video Wall Recipe

  1. Set your master canvas to the full wall resolution (e.g. 5760 × 1080 for three 1080p projectors).
  2. Add one output per projector.
  3. Hit Span Across Outputs to auto-slice the canvas.
  4. Keystone each output until the test grid aligns perfectly with the physical projection surface.
  5. Dial in edge blending masks.
  6. Save your project (⌘S) — all geometry persists in the .sppx file.

Section 19Instant Test Patterns & Broadcast Audio Tone Generator

Test patterns and tone generator
The Instant Test Card Generator and Broadcast Audio Tone Generator in the Output Patch Bay inspector, and the Monoscope card on the stage with its own banner.

24 Broadcast Test Patterns

Auto‑CycleEBU BarsARIB BarsMonoscope
Align GridCrosshair10‑Step GreyPLUGE Window
Luma GradientSafe Area100% White0% Black
Zone PlateMultiburst VMultiburst HBowtie
CheckerboardVideo NoiseRGB CirclesCMY Circles
100% Red100% Green100% Blue100% Yellow
  • Animate: Adds a moving sweep and clock to detect frame drops, tearing, and monitor lag.
  • Monoscope Banner: Enter custom banner text (e.g. PSP Ventures, venue name, or client name) to brand your confidence monitors instantly.

Broadcast Audio Tone Generator

  • Reference Tones: 400 Hz Sine, 1 kHz Sine, 5 kHz Sine
  • Frequency Sweeps: 20 Hz–20 kHz, 1 kHz–10 kHz
  • Noise Types: Pink Noise, White Noise, Brown Noise
  • Calibration Levels: −18 EBU, −20 SMPTE, −12 dB, −6 dB
  • Channel Routing: L+R, Left Only, Right Only, Alternating L/R

Section 20NDI, Syphon & DeckLink SDI

NDI Output preferences
Preferences → NDI Output: every NDI stream at a glance — here the Broadcast output, on the network as “Gala Night Broadcast”.

NDI® Outputs

Any output in the Output Patch Bay can be an NDI stream — as many as you need, each its own source on the network. In the Patch Bay, select an output and set Output: to NDI. Its inspector then shows:

  • Stream — the name receivers see, as COMPUTER (name). Each NDI output gets a unique name to start with (e.g. SimplePlay Pro X - Output 3); type your own and press Return. Names must differ — a clash gets a number added.
  • Frame Rate — 23.976 to 60 fps, announced to receivers (59.94 and the other NTSC rates as their exact fractions).
  • Send Program Audio — on for the first NDI output only, so a receiver taking several feeds hears the show once. Turn it on for any stream that should carry audio.
  • A status dot — On the network, or Not on the network — retrying (the app keeps retrying a stream that drops, and tells you in the Errors drawer).

Each stream carries its output's part of the stage, through the same keystone, blend and fit as a physical screen, at the output's own Format resolution. With layer outputs, that means one track or deck row per stream: route track 1 to Output 1, track 2 to Output 2, and each NDI stream carries only its layer.

Preferences → NDI Output lists every stream with its output, size, frame rate and audio, and whether it's on the network. Settings live on the outputs, not here.

Upgrading: a show that used NDI keeps its stream under the old name, so receivers reconnect on their own. Frames go out as UYVY, converted on the GPU — lighter on the CPU with several streams. NDI carries no alpha channel from the stage.

NDI Discovery Architecture & Network Setup:

  • Local Network (mDNS/Bonjour): By default, NDI uses mDNS (multicast DNS) on UDP port 5353 for automatic peer discovery. macOS requires Local Network access permission for SimplePlay Pro X (prompted on first launch or configured in System Settings → Privacy & Security → Local Network).
  • Subnets & Enterprise Networks: Multicast traffic does not cross network routers or VLAN boundaries without mDNS reflection. For production setups spanning multiple subnets or managed switches with IGMP/multicast filtering disabled, configure NDI Discovery Server (via the free NDI Access Manager utility). Set the Discovery Server IP in NDI Access Manager on both SimplePlay Pro X and receiving machines.
  • Firewalls: Ensure TCP port range 5960-5969 (NDI discovery/messaging) and dynamic UDP/TCP frame streaming ports are allowed through macOS Application Firewall and venue network firewalls.

Syphon

Zero-copy GPU texture sharing locally between macOS applications. Set one output's Output: to Syphon in the Patch Bay and SimplePlay Pro X publishes that output's picture as a Syphon server.

Hardware SDI playout with Key + Fill support for broadcast switchers (Ross, Grass Valley, ATEM). Playout features:

  1. Double-buffered frame submission.
  2. IOKit power assertion preventing display/system sleep.
  3. Frame heartbeat watchdog with 1.2s auto-reconnect.
  4. Frames go to the card on their own thread, so a busy interface never holds SDI back.

SDI Output Mode (Output Patch Bay ▸ DeckLink SDI Output Mode) sets the signal the card sends:

SizeModes
1080p23.98, 24, 25, 29.97, 30, 50, 59.94 (default), 60
1080i50, 59.94, 60
720p50, 59.94, 60
2160p (UHD)23.98, 24, 25, 29.97, 30, 50, 59.94, 60

The list marks any mode your card says it can't output, and choosing one shows a warning; output won't start in a mode the card refuses, and says why. With the show Frame Rate on Auto, the show renders at the SDI mode's rate (1080p50 and 1080i50 run the show at 50 and 25 frames a second). Use 50 Hz modes for PAL regions (UK, Europe, Australia and most of Asia).

Prerequisite: Blackmagic Desktop Video Driver DeckLink PCIe cards, UltraStudio Thunderbolt devices, and DeckLink Mini Monitors require Blackmagic Desktop Video (v12.4 or later recommended) to be installed on macOS.

  1. Download and install Desktop Video from blackmagicdesign.com/support.
  2. On Apple silicon Macs, approve the Blackmagic system extension in System Settings → Privacy & Security and restart if prompted.
  3. Verify the device appears in Blackmagic Desktop Video Setup before launching SimplePlay Pro X. Once detected by macOS, the device will automatically populate in SimplePlay Pro X's Output Patch Bay (⌘⇧M).

Part Five · Audio

Section 21Audio Engine, EQ & the 64-Channel Matrix

32‑bit floating point audio processing throughout.

Audio output preferences
Preferences → Audio Output: device selection with Direct Hardware Lock and automatic failover.

Output Device & Failover

Preferences → Audio Output selects the hardware interface.

  • Automatic (default) picks the built-in output — the speakers on a MacBook or iMac, the headphone jack on a Mac mini, Studio or Pro. It never picks Bluetooth (AirPods), AirPlay or virtual devices, so a phone pairing its headphones can't pull show audio onto them. The picker shows it as Automatic — device name.
  • Direct Hardware Lock pins playout to the chosen interface. The choice is remembered by the device itself, so it survives restarts and re-plugging; an interface that's unplugged at launch shows as Not Connected rather than raising an alarm.
  • Auto‑Failover automatically switches to built-in audio if a Thunderbolt cable or USB interface disconnects mid-show, alerting the operator immediately.

8-Band Parametric EQ

Per cue graphic or parametric EQ (64 Hz to 8 kHz, ±12 dB).

Dante & Multi-Channel AoIP

Direct CoreAudio multi-channel routing to Dante Virtual Soundcard (DVS), PCIe Dante cards, and AES67 interfaces without proprietary licensing daemons.


Part Six · External Control

Section 22OSC

OSC preferences
OSC / UDP Controls: the listening port, the list of addresses (shortened here), the Companion profile export and status feedback to a console.

Enable in Preferences → OSC / UDP Controls. Default UDP port 53000 (feedback on port 53001).

Common Endpoints

  • /simpleplay/take · /go · /take — Fire selected cue
  • /simpleplay/go/{cueID} — Fire cue by ID, number, or decimal (e.g. /simpleplay/go/1.5)
  • /simpleplay/select/{cueID} — Select cue in playlist without taking it live
  • /simpleplay/stop · /stop — Stop cue or Panic stop
  • /simpleplay/endall — Panic: end all active playback
  • /simpleplay/stop/selected — Stop only the currently selected cue
  • /simpleplay/blackout · /ftb · /freeze · /mute (0 / 1 / toggle)
  • /simpleplay/autoplay (0 / 1 / toggle) — Auto Play cue advance
  • /simpleplay/projectoutput (0 / 1 / toggle) — Open / close the project output windows
  • /simpleplay/preview/play — Play / pause the preview player (mirrors the Space bar)
  • /simpleplay/volume (0.0–1.0)
  • /compositor/play · /compositor/pause · /compositor/stop
  • /compositor/release — release the Hold or Vamp marker the composition is waiting at (GO does the same)
  • Live Deck (looks count from 1, left to right; rows from 1, bottom of the stack up):
    • /deck/look/{n}/go — fire every slot in look n
    • /deck/row/{r}/slot/{n}/go — fire one slot
    • /deck/row/{r}/clear · /deck/clear — take a row, or every row, off air
    • /deck/timeline/{n}/go — switch to the Timelines row's cell under look n
  • Cue addresses: /cue/{cueNumber}/go, /cue/selected/go, /cue/{cueNumber}/stop, /cue/{cueNumber}/pause, /cue/{cueNumber}/resume
  • Auto-Continue & Chaining:
    • /cue/{cueNumber}/autoContinue (0 / 1 / toggle) — Toggle or set auto-continue on clip completion
    • /cue/{cueNumber}/continueMode (0 = none, 1 = auto-continue down, 2 = auto-follow up, 3 = loop to first)

Section 23MIDI & MIDI Mapping

MIDI preferences
MIDI Controls: notes and CCs mapped to actions, learned from the controller.

Preferences → MIDI Controls.

Visual MIDI Learn Mode

MIDI Map
MIDI Map on: every control that can be mapped is highlighted — here the Live Deck's slots, looks, row faders and transport. Click one, then touch the controller.

Click MIDI Map in the header bar, click a highlighted control, and tap a pad or button on your MIDI controller -- or turn a knob or fader to map a fader. Done. In the playlist: Take, Stop, Blackout, FTB, Freeze, Mute and each cue. In the Stage Compositor: the Live Deck's slots, looks, Timelines-row cells, each row's clear button and Clear All; each row's fader (a knob follows whichever master its dots pick: opacity, volume or blend); and the transport -- play/pause, stop, previous and next marker, and GO on a Hold or Vamp. Deck pads are kept by position (row 2, look 3), numbered as the deck's OSC addresses are, so a controller set up once works with every show.


Section 24LTC & MTC Timecode

Timecode preferences
Timecode Input and Timecode Out: chase LTC or MTC, and send LTC on an audio channel or MTC to a MIDI port, following what's on program.
  • LTC: Real-time decoding from any audio input channel (24, 25, 29.97, 30 fps). In Settings ▸ Timecode Input, choose the device, the Input Channel that carries the timecode (on interfaces with more than one) and the frame rate. The Input meter shows the level: timecode reads best between about −20 and −6 dBFS, and the meter turns orange when it clips. If timecode doesn't lock, the panel says whether no audio is arriving or audio is arriving that isn't timecode — usually the wrong channel or frame rate.
  • MTC: MIDI Timecode quarter-frame and SysEx full-frame decoding.
  • Modes: Trigger mode (fire cue at timecode address) and Chase mode (continuous timeline lock).

Timecode Out

SimplePlay Pro X can also be the clock: Preferences → Timecode → Timecode Out sends timecode that follows what's on program, so a lighting desk, sound server or pyro controller can chase the show.

  • What it follows: the position in a video cue, the timeline in a composition cue, or the Stage Compositor show in compositor mode. The Start Time (for example 01:00:00:00) is sent at the start of each cue, and the time counts up from there as the cue plays. Timecode stops when playback pauses or stops, and jumps when the playhead jumps (a new cue, a seek, a timeline switch).
  • Frame rate: 24, 25, 29.97 drop-frame or 30 fps, for both outputs.
  • LTC: sent as audio on one channel of any output device (a spare channel of your audio interface, or a Dante channel), at a level you choose. The other channels of that device stay silent. If the device is unplugged and plugged back in, LTC starts again by itself.
  • MTC: sent to any MIDI destination: four quarter-frame messages a frame while playing, and a full-frame message when it starts, jumps or is moved while paused.
  • Outgoing Timecode shows what's being sent right now.

The settings are saved with the project. On a Stage Sync pair only the master sends.

Before this release, LTC from other equipment wasn't recognised: the reader looked for the end-of-frame sync pattern backwards. Incoming LTC now reads as SMPTE specifies.


Section 25Art-Net / DMX

DMX preferences
DMX Controls: Art-Net in, with channels mapped to actions, and the DMX the show sends out.

Preferences → DMX Controls. Standard UDP port 6454. Map incoming DMX512 channels (1–512) to playout actions or learn channels directly from your lighting console.

DMX Out

Control cues and Send markers can also set lighting levels themselves — house lights to half when the show starts, a hazer on for a scene, a blackout at the end — with a DMX message (see Control Cues & Send Markers).

  • Levels fade from wherever the channels are now, over the message's fade time (0 snaps). A later message on the same channels takes over from where the fade has got to.
  • Each universe a message has touched is sent as a full 512 channels over Art-Net (UDP 6454): 40 times a second while it changes, and once a second otherwise, so nodes keep it. Levels hold until another message changes them.
  • Preferences → DMX Controls → DMX Out shows what's being sent; Release All stops sending. Opening another project or starting a new one releases them too. What the lights do then is up to the node (most hold the last levels or fade out).
  • Channels a message hasn't set are sent at 0. If a lighting desk sends the same universe, set the node to merge highest takes precedence, or give the show a universe of its own.
  • The universe is the Art-Net Port-Address (0–32767), numbered the same way as the Art-Net input. SimplePlay Pro X's own Art-Net input ignores what it sends, so a DMX cue can't fire its own DMX mappings.
  • On a Stage Sync pair only the master sends.

Section 26Bitfocus Companion & Stream Deck

Official native module (companion-module-simpleplay-prox) providing bidirectional control, live status feedback, and Stream Deck button presets over OSC.

Installation & Setup

  1. Module Installation:
    • From Companion Catalog (Coming Soon): SimplePlay Pro X is coming soon to the official Bitfocus catalog. In the meantime, use the direct package install below.
    • Direct Package Install: Download companion-module-simpleplay-prox.zip and extract it into:

`` ~/Library/Application Support/companion/modules/ ``

You should end up with a companion-module-simpleplay-prox folder in there. Quit and reopen Companion — it only scans for modules at startup. The module then appears when adding a connection. (Verified on Companion 5.0.4.)

  1. Network Connection:
    • Enable the OSC Server in SimplePlay Pro X (Control → External Control Input, default port 53000).
    • Enable OSC State Feedback targeting Companion's listening port (53001).
    • In Companion, point the module's Target IP to your SimplePlay Pro X Mac. Status turns green (OK).

Actions, Feedbacks & Variables

  • Actions: Fire active cue (Take/GO), Fire cue by number/decimal (e.g. 1, 1.5, 2.0), End All / Panic Stop, Stop Selected Cue, Preview Play / Pause, Blackout, FTB, Freeze, Mute, Auto Play, Project Output, Show Lock toggle, and Stage Compositor transport.
  • Feedbacks: Real-time color tally for Playing (Green), Paused (Amber), Blackout/FTB/Freeze (Red), Mute, Auto Play, Project Output, Preview Playing, and Show Mode Locked (Yellow).

Ports: the module's Feedback Listening Port must match the port in SimplePlay Pro X's Send OSC Status Feedback setting, and must not be the same as the OSC Server port (53000) — Companion has to bind it, and binding a port the app already owns fails with EADDRINUSE.

Only one control surface can receive feedback at a time: SimplePlay Pro X sends status to a single target. If you run both Companion and the native Stream Deck plugin, whichever one is pointed at the feedback port gets the live tallies; the other still sends commands normally.

  • Live Deck page: in the compositor's Live Deck, ⋯ → Export Companion Page… saves a ready-made Companion page for the current deck — look buttons across the top with Clear All, one line of slot buttons (plus Clear) per deck row, and the Timelines row at the bottom. One page holds seven looks and three rows. The buttons light green while their slot, look or timeline cell is on air and amber while it's armed for the next marker; turn on OSC State Feedback so Companion hears the deck.
  • Variables:
    • $(companion-module-simpleplay-prox:current_cue_name)
    • $(companion-module-simpleplay-prox:time_remaining)
    • $(companion-module-simpleplay-prox:is_playing)
    • $(companion-module-simpleplay-prox:show_mode_locked)

Native Stream Deck Plugin

A dedicated Elgato Stream Deck plugin, separate from the Companion module above. Use this if you want a Stream Deck talking straight to SimplePlay Pro X without running Companion.

Install

  1. Download com.simpleplaypro.streamdeck.streamDeckPlugin.
  2. Double-click it. Stream Deck installs it and the actions appear under a SimplePlay Pro X category.
  3. In SimplePlay Pro X, enable the OSC Server (Preferences → OSC / UDP Controls, port 53000), and enable OSC State Feedback to 127.0.0.1:53001 so keys show live state.

Requires Stream Deck 6.9 or later, and SimplePlay Pro X 1.2.0 or later.

Actions

KeyWhat it does
GoFires the selected cue. Shows LIVE, the cue name, and a countdown while playing.
StopStops only the selected cue.
End AllPanic: stops all active playback.
Previous / Next CueMoves the playlist selection up / down. Does not fire.
Preview PlayPlay / pause the preview player — mirrors the Space bar.
Blackout · FTB · FreezeMaster overrides, with live [ON] / [OFF] state on the key.
Auto PlayToggles Auto Play cue advance.
Project OutputOpens / closes the project output windows.

⚠️ Changed in plugin 1.2.0 — check your panic key. Stop used to end all playback. It now stops only the selected cue, and End All is the panic key. If you had Stop bound as your emergency button, rebind it to End All.

Action identifiers also changed, so keys assigned to the older Take / Go, Panic Stop, Fire Cue, Mute Audio, Next / Previous Cue or Master Volume actions need re-assigning after updating.

Keep the plugin and the app in step. The newer keys (End All, Preview Play, Auto Play, Project Output, and the per-cue Stop) call OSC endpoints added in app version 1.2.0. On an older app those keys send commands nothing answers, and they will appear to do nothing.


Part Seven · Show Day Reliability

Section 27Watchfolders & Auto-Ingest

Watchfolders
Watchfolders: folders the show watches for new media arriving on show day.

Preferences → Watchfolders. Automatically ingests newly exported media from network shares.

  • Copy Stabilization: Waits until large video files finish writing before ingestion.
  • Ingest Action: Append to Playlist, Add to Group, or Replace Matching Cue.

Section 28Session Recovery

Crash protection writes continuous state snapshots. Unclean shutdowns prompt for automatic session restoration upon relaunch.

Quitting Safely

Closing the app — Cmd+Q, the window's close button, or Quit from the menu — checks whether you'd lose anything first.

SituationWhat happens
Nothing unsaved, nothing liveQuits immediately, no prompt
Unsaved changesSave / Don't Save / Cancel
Program live or output windows openWarns that quitting takes the output down: Quit / Cancel
BothWarns about both, and offers to save

Cancel always returns you to exactly where you were — nothing closes, nothing is discarded.

Choosing Save finishes writing the project to disk before the app exits; if the save fails or you cancel the save dialog, the quit is abandoned so nothing is lost. Unsaved Stage Compositor layers count as unsaved work, even when the playlist itself is clean.

There is deliberately no prompt when there's nothing at stake. A dialog on every quit just teaches you to dismiss it.


Section 29Stage Sync — Master / Backup Redundancy

LAN Redundancy
LAN Redundancy: make this Mac the Stage Sync master or its backup.

Connect two SimplePlay Pro X rigs over LAN. Master broadcasts heartbeat; Backup hot-standby shadows playhead and automatically assumes control upon master signal loss.

The Live Deck on a Backup

A backup running the same composition follows the master's Live Deck: it plays the same slots, each started as far in as it is on the master, follows replacements and clears, and switches the Timelines row with it. Holds and vamps follow too — GO on the master releases the backup's hold. Fires and clears reach the backup at once rather than on the next heartbeat tick.

Layer master faders are part of the show file, not the heartbeat: a master you ride live isn't copied to the backup.

Generation Epochs & Deterministic Split-Brain Fencing

In a live show environment, network changes or link drops can result in two rigs broadcasting simultaneously as Primary Master:

  • Generation Epoch Counter (epoch): When a Backup machine assumes control during failover (promoteToMaster()), it automatically increments its generation epoch (epoch + 1), superseding any prior Master.
  • Deterministic Auto-Fencing: Upon network partition healing or collision detection, StageSync compares generation epochs and election timestamps:
    • Higher Epoch Wins: The newer generation rig remains Primary Master. The stale Master automatically self-fences (demotes to Backup) to prevent conflicting playout commands on the show network.
    • Epoch Tie-Breaker: If two rigs have identical epochs, incumbent election priority (electedAt) ensures the established, active playout rig retains Master while the newly introduced rig demotes to Backup.
  • Partition Invariant Note: In a two-node LAN topology without an external witness, a complete physical cable severance is detected locally on both rigs (Backup initiates takeover; Master continues playing). Downstream hardware video switchers (e.g. Barco, Lightware DVI/SDI auto-failover) arbitrate the physical display feed. The moment network connectivity restores, StageSync's generation epoch mechanism immediately resolves the collision and auto-fences the stale node without manual intervention.
  • Manual Mode Option: If an operator prefers manual confirmation, Auto-Fence on Collision can be toggled off in Preferences, preserving the interactive Demote to Backup alert banner.

Section 30Media Relinking & Project Files

  • .sppx Project Files: Single file packaging of cues, trims, EQ, compositor timelines, canvas geometry, keystone, and patch settings.
  • 4‑Pass Relink Engine (⌘I): Reconnects moved or renamed media drives in seconds (Exact → Cleaned → Subpath → Stem).

Part Eight · Reference

Section 31Preferences Reference

  • General: Themes (7 modes), brightness, Always on Top, Mute Preview, auto-save interval, and Enable 10-Bit / EDR High Dynamic Range Rendering — the show's processing depth. Off (default): compositing and output windows run 8-bit, with dithering so gradients don't band. On: 16-bit float compositing and output, so fades and blends stay smooth even from 8-bit media. It switches live; image sequences set to Auto (Follows 10-Bit Setting) pick it up when they load. A show whose Range is HDR (Output Patch Bay) composites in 16-bit float whatever this is set to. Language sets the interface language: Same as This Mac (the default) or any of the app's nine, from the next time the app opens. It's the same setting as the app's language in macOS System Settings ▸ General ▸ Language & Region ▸ Applications.
  • Cue Defaults: Default fades, looping, auto-play behavior, video gravity.
  • Shortcuts: Keyboard shortcut remapping.
  • Watchfolders: Monitored directories and ingest rules.
  • Audio Output: Device selection (Automatic by default — never Bluetooth) and auto-failover.
  • NDI Output: A status list of every NDI stream. Names, frame rates and audio are set on each output in the Output Patch Bay.
  • OSC / MIDI / Timecode / DMX: Protocol listeners and mappings.
General preferences
General: language, theme, brightness, playout safety toggles, auto-save and crash reporting.
Shortcuts preferences
Shortcuts: the full keyboard reference, filterable and remappable.
Language
General ▸ Language: the app's nine languages, or the same as this Mac.
Cue Defaults
Cue Defaults: fades, looping, auto-play and video gravity for newly added cues.

Section 32Keyboard Shortcuts

These are the defaults. Change any playout, cue-editing or Stage Compositor shortcut in Settings → Shortcuts: click the shortcut, then press the new key combination. If those keys already belong to another action, they move to the new one and the other action is left unassigned. Each row also has buttons to clear the shortcut or restore its default, and Reset All to Defaults puts everything back.

Menu commands such as Save and Undo keep their standard shortcuts in the app. To change those, use macOS System Settings → Keyboard → Keyboard Shortcuts → App Shortcuts.

Playout shortcuts don't fire while you're typing in a text field, while a dialog or sheet is open, or while the Settings window is in front. Holding a key down fires its action once; only cue navigation (↑ / ↓) repeats.

Playout & Transport

ShortcutAction
Return (or keypad Enter)Take / Go
EscEnd All / Panic
SpacePlay / Pause preview
↑ / ↓Select previous / next cue
←Clear preview

Cue Editing

ShortcutAction
⌘DDuplicate selected cue
⌘⌫Delete selected cue
⌘[Set In point
⌘]Set Out point
⌘\Reset In / Out points
LToggle loop mode
DToggle auto-follow down mode
⌘Z / ⌘⇧ZUndo / Redo
ShortcutAction
⌘NNew project
⌘OOpen project
⌘SSave project
⌘⇧SSave project as…
⌘⇧MOutput Patch Bay
⌘⇧ESwitch between Playlist and Stage Compositor
⌘,Preferences
⌘IBatch relink show media
⌘⇧RScan watchfolders now
⌘LToggle Show Mode lock

Stage Compositor

These are active in Stage Compositor mode.

ShortcutAction
⌘BSplit clip at playhead
⌘ASelect all clips
⌘C / ⌘VCopy selected clips / paste at playhead
⌫Delete selected clips
MAdd cue marker
SToggle magnetic snapping
⌘⇧FFullscreen canvas

Live Deck

With the Live Deck tab showing, these keys work on the deck instead:

ShortcutAction
SpacePlay / pause the deck's transport
↑ / ↓Previous / next marker
⌘C / ⌘VCopy / paste the selected slot
⌘DDuplicate the selected slot
⌫Delete the selected slot (not while it's on air)

Section 33Licensing

SimplePlay Pro X is licensed through Lemon Squeezy.

  • Demo Mode: Fully functional with a 15-minute session time limit (100% watermark-free output).
  • Commercial Pro License: Unlocks unlimited continuous playback.
  • 14-day offline grace period: Runs air-gapped on show networks.

Updates

About
About: the version and build, the user manual, Check for Updates, support and acknowledgements.

SimplePlay Pro X checks for a newer version every time it opens, and once a day while it runs. When there is one, a bar under the header says so:

  • What's New & Install… shows the release notes and installs the update. Later hides the bar until the app next opens.
  • The bar waits while anything is on air, so nothing moves on screen during a show, and the app never restarts to install while output windows are open -- it installs when you quit.
  • Every 1.x update is free. A new major version (2.0) is a paid upgrade: the bar offers it with Learn More… instead.
  • To check yourself: SimplePlay Pro X ▸ Check for Updates…, or the button in Settings ▸ About.

Section 34Troubleshooting & FAQ

❓ I pressed GO and the screen is black. Check if BLACKOUT or FTB is enabled in the top panic strip. Verify in the Output Patch Bay that your output is assigned to an active display and not set to Not Assigned.

❓ DeckLink card is connected but does not appear in Output Patch Bay. Blackmagic DeckLink and UltraStudio devices require the Blackmagic Desktop Video driver to be installed on your Mac. macOS does not include native drivers for SDI hardware. Install Desktop Video from blackmagicdesign.com/support, allow the system extension in macOS System Settings → Privacy & Security, and verify the device appears in the Blackmagic Desktop Video Setup utility before launching SimplePlay Pro X.

❓ NDI stream is not appearing on the receiving software or vision mixer.

  1. Check macOS System Settings → Privacy & Security → Local Network and ensure SimplePlay Pro X has local network access permitted.
  2. Ensure both sending and receiving devices are on the same IP subnet, or configure an NDI Discovery Server via NDI Access Manager if operating across corporate subnets or VLANs.
  3. Confirm UDP port 5353 (mDNS) and TCP ports 5960+ are not blocked by macOS Application Firewall or venue network switches.

❓ I routed a track to Output 2 but its clips still cover the whole stage. Check that Span Across Outputs is on in the Output Patch Bay — in Matrix mode every output shows the whole canvas. Then check the clip's Where block: a clip set to Whole Stage, or to screens of its own, doesn't follow its track. The Layer tab's Follow Layer button hands every clip on a layer back to it.

❓ I made several NDI outputs but a receiver shows only one. Each NDI output is its own source — look for each stream name in the receiver's source list. If a stream's status says Not on the network, another NDI source on this computer may already use that name; rename it in the Patch Bay.

❓ Firing a Live Deck slot does nothing. The deck is live only while its Composition cue is on program — the deck header says NOT ON PROGRAM otherwise. Take the composition first. A slot set to Starts: At Next Marker shows ARMED and waits for the playhead to reach the next marker.

❓ Live webcam / capture card is not appearing in the compositor. Check macOS System Settings → Privacy & Security → Camera permissions. In the Stage Compositor Live Capture tab, click refresh to re-enumerate UVC/USB3 video capture devices.

❓ On a Mac with 8 GB of memory, a big show hitches now and then. A stage around 7680 pixels wide with large HAP fills and live cameras is near the limit of 8 GB: when macOS runs short of memory the show can pause for a moment, or repeat a frame. For stages that size we recommend a Mac with 16 GB or more. On an 8 GB Mac, quit other apps while the show runs, and check Render Health after a rehearsal.

❓ How do I calibrate projector keystoning? Open Output Patch Bay (⌘⇧M), enable 4-Corner Keystone Warping, select an Align Grid or Crosshair test pattern, and drag the corner pins directly on the canvas until the grid aligns square on the projection surface.

Getting help

  • Help ▸ Contact Support & Feedback… opens an email to support@simpleplaypro.com with your app and macOS versions already filled in. We reply within one business day.
  • On a show day, start the subject with SHOW DAY: those emails are answered first, weekends included. Planning a big show? Write a week ahead and we'll make sure someone is reachable. Help ▸ Support Hours & Show-Day Help… has the details.
  • Help ▸ Join the Discord Community… — ask other operators, share setups, and hear about updates.
  • Help ▸ Release Notes & Known Issues… opens simpleplaypro.com/changelog: what changed in each release, and the known issues in the current one with workarounds. Check it before a show when you've just updated.

Section 35Appendix — Supported Formats

Video

.mp4 · .mov · .m4v · .mpg · .mpeg Codecs: H.264, H.265/HEVC, ProRes (Proxy, LT, 422, HQ, 4444, 4444 XQ), HAP (Hap1, Hap5, HapY, HapM, HapA, Hap7).

Audio

.mp3 · .wav · .m4a · .aac · .flac · .aif · .aiff

Images & Sequences

.png · .jpg · .jpeg · .gif · .tiff · .bmp · .heic · .webp · .svg · .dpx · .exr · .tga


SimplePlay Pro X — Built for mission-critical show playout.


ClosingDesign Philosophy

SimplePlay Pro X is a show-oriented compositing playout and routing tool. It is not a VJ instrument, and the difference is deliberate.

✅

In scope

Anything you configure in prep that replays identically every show: multi-track compositing, chroma keying, colour grading, blur and vignette, keyframed animation, projection warping, per-clip audio matrixing, and the full protocol surface.

🎹

Fired live, prepared in advance

Playlist GO, Live Deck slots and looks, live-input switching, Hold and Vamp markers. When it fires is your call; what it does is fixed in prep. Every trigger is logged and can be baked, so a show called live can be replayed exactly.

🚫

Out of scope

Anything whose output depends on live input or improvisation: procedural generators, audio-reactive visuals, tempo sync, live improvisational plugin chains.

That constraint is the product. It's why you can build a look on Tuesday and trust it on Saturday.