SonaCueSonaCue

Features

Everything SonaCue can do.

The full list, not just the highlights.

Playback engine

  • Sample-accurate playback via AVAudioEngine — the waveform and the audio are the same file, so seeking is frame-accurate.
  • In/out trim points per cue, with the trimmed-away part greyed out rather than hidden.
  • Perceptual (dB-linear) fade-in / fade-out curves, so half a fade sounds like half a fade.
  • Configurable fade-out on Escape and Stop, instead of a hard cut.
  • Auto-advance to the next cue in Show mode, with per-cue Autoplay and Skip flags.
  • A live L/R peak level meter in the header that turns red at or above 0 dBFS.
  • Survives the output device changing mid-show — headphones, an interface or AirPods coming and going, or the system default switching.
  • Drag & drop inserts audio files at the exact drop position in the set list; File → Add Track(s)… (⌘I) appends without dragging.
  • WAV, MP3, AIFF/AIF, M4A, CAF, FLAC, AAC, MP4 and ALAC.

Waveform view

  • Precise envelope rendering that stays sharp and glitch-free at any zoom level, with peak detail that scales to the cue's length.
  • The waveform is drawn at the cue's level, not the file's — a boosted cue looks louder, a pulled-down one smaller. Switch it off to see raw file amplitude.
  • Optional spectral colouring tints the waveform by frequency content — bass red, mids green, highs blue.
  • Follow-playhead mode keeps the playhead centred and pans the waveform, ruler and all three timeline strips underneath it in lockstep.
  • Optionally keep the current zoom when switching cues in Show mode with follow-playhead on.
  • Show mode confines the viewport to the cue's trimmed region — no zooming or scrolling past it.
  • Clicking the waveform, the time ruler or any timeline strip seeks the playhead there.

Seamless loops

  • Multiple non-overlapping loops per cue, each independently enabled.
  • Gapless, sample-accurate loop scheduling with a click-free crossfade at the seam.
  • Play a fixed number of passes, or hold open-ended until you cue the exit — the exit takes effect after the current pass, and is click-free too.
  • The loop blinks on its final pass, so the exit is visible before it happens.
  • Per-loop volume ducking with its own fade-in and fade-out, held smoothly across every pass.

Levels, automation & the limiter

  • Draw a custom dB curve directly on the waveform instead of plain fades; ⌘-click adds or removes a point, and the curve interpolates linearly in dB.
  • Automation replaces the fade handles on a cue when enabled, and the level slider stays a master gain on top of it.
  • Cue levels go up to +15 dB, so a quiet recording joins the show without being re-exported. Type an exact dB value or drag the perceptually tapered slider.
  • A master limiter holds the output below 0 dBFS. The LIM indicator lights while it is actually pulling the output down; right-click it to toggle the limiter without opening Settings.

Match Levels

  • Measures every cue's integrated loudness (LUFS, ITU-R BS.1770-4 with K-weighting and gating) and proposes one level for the whole show.
  • The gain is capped so no cue's true peak passes −1 dBFS — which keeps the master limiter out of the signal path entirely rather than pushing cues into it.
  • True peak is measured 4× oversampled, so the inter-sample peaks in MP3 and AAC material are accounted for.
  • A cue with no headroom left is marked “peak-limited” and stays where it is. Apply to all cues or just the selection; either way it is one undo step.

Beat grid & tempo detection

  • One click detects the cue's tempo and places the first-beat anchor on a real downbeat; the analysis runs in the background.
  • Right-click the BPM field to halve or double the tempo if the detection lands an octave out.
  • Loop edges, trim points, fades, notes and both kinds of trigger all snap to the grid.
  • Adjustable line spacing from 1/8 to 4 bars, and a draggable anchor — hold Shift to move it in whole beats.
  • Hold Option while dragging to suspend snapping, mid-drag if you like.

Notes & cues

  • Place named notes with a body anywhere on a cue's timeline.
  • Show mode surfaces the note the playhead last passed as a large read-only cue card, and the Stage Display shows the same one.
  • Notes, MIDI triggers and OSC triggers each have their own strip, colour-coded — notes yellow, MIDI teal, OSC indigo, green for the one most recently passed or fired, white for the selected one.
  • Any strip can be hidden when a cue does not use it.

Show mode

  • Locks all editing — nothing can be changed by accident mid-show.
  • One set list, one GO button. Space fires the next cue, or requests a loop exit while one is playing; Escape fades out.
  • Cue rows carry their colour, their Autoplay and Skip flags, and status glyphs for timecode pre-roll and loops; the footer totals the playlist, skipped cues excluded.
  • An optional large, glanceable timecode section next to the cue note, movable to the top or bottom of the panel.
  • The Notes panel confirms the last MIDI and OSC triggers fired — type, channel, number and value.
  • ↑/↓ pre-selects the next cue during playback without interrupting the current one — it plays when the current cue ends, or on Enter.
  • Show Check runs automatically on the switch into Show mode and only opens if something needs attention.

Stage Display

  • A second-screen window (⇧⌘D) that opens on the other display and goes full screen.
  • Five panels: cue name, a countdown to the cue's out-point (yellow under 30 s, red under 10 s), the active note, the next cue, and timecode with status.
  • Every readout is sized as a share of the window, so it fills any screen — and switching a panel off makes the remaining ones grow into the space.
  • Arrange it live: a size from Tiny to Huge per panel, drag any row to reorder, link two panels into one shared row, and Countdown / Stage / Control presets to start from.
  • The configuration window previews the real display on your own screen while it runs on the other one.

Show Check

  • A pre-flight report (⇧⌘K) of everything that fails silently during a show, grouped into problems, warnings and notes.
  • Checks the show: missing or unreadable audio, a trim that leaves nothing to play, triggers switched off on a cue that has them, an empty or all-skipped show, a show never saved.
  • Checks the environment: the output device and channel pair, the LTC route, MIDI destinations that are selected but unplugged, output going nowhere, OSC sockets that never opened, and licence or trial state.
  • Every finding carries its fix — relink the file, select the cue, open the Settings tab that owns it.

Timecode output (MTC & SMPTE/LTC)

  • SonaCue acts as an MTC master with its own virtual “SonaCue MTC” source, plus any number of physical destinations.
  • SMPTE (LTC) timecode as an audio signal alongside MTC — route it to a split channel of the main output, a spare channel on a multichannel interface, or a separate device entirely, at a settable level.
  • Per-cue start timecode and pre-roll, so a lighting desk or DAW locks up before the cue's audio starts.
  • Selectable frame rate: 24, 25, 29.97 drop-frame or 30 fps, shared by both.
  • Status chips for MTC and LTC in the large timecode section, so you can see at a glance that both are running.

MIDI trigger output

  • Drop Note or CC triggers anywhere on a cue's timeline; they fire the instant the playhead crosses them.
  • Per trigger: channel, note or CC number, velocity or value, and the Note-Off delay.
  • An optional pre-roll trigger fires once when a cue enters timecode pre-roll.
  • Output goes to a virtual “SonaCue Triggers” port plus any number of physical MIDI destinations.

OSC trigger output

  • A second trigger timeline for one-shot OSC messages — Companion, QLab, lighting desks and media servers.
  • Each trigger has an address and an optional integer, float or text argument; switching the argument type keeps what you typed.
  • Its own pre-roll trigger, fired the moment a cue enters timecode pre-roll.
  • The destination host and port are saved in the show file, separate from the feedback host — cue triggers rarely go to the same box as the button LEDs.

MIDI & keyboard control input

  • MIDI learn: press a button, then a key on your controller, and it is mapped — transport, GO, or firing a specific cue.
  • A mapped cue key fires a loop exit instead if that cue is already playing inside a loop.
  • Number keys 1–9 and 0 fire cues with no MIDI hardware at all, in both Edit and Show mode.
  • Cue mappings — MIDI keys and number keys — are saved in the show file, so each show loads its own. Transport mappings stay global, since those belong to your controller.
  • Every learned mapping is listed under Settings → MIDI, with per-row removal.

OSC control (Bitfocus Companion / Stream Deck)

  • GO, Stop, Play/Pause, Next/Previous, and select-or-fire-a-cue-by-index, all over OSC — no MIDI routing or IAC bus required.
  • Status feedback mirrors playing state, the current cue, the mode and the cue count back over OSC, so button LEDs stay in sync.
  • The listener and feedback connection are watched and re-opened automatically, and failures are written to a log file.
  • Pairs with the official SonaCue Companion module — direct download on the Downloads page, no GitHub account needed.

Audio routing

  • Pick the output device from any Core Audio device on the Mac, or follow the system default.
  • On multi-output interfaces, choose which channel pair (1-2, 3-4, …) the stereo mix plays on — remembered per device, so each interface keeps its own.
  • If a saved pair no longer fits the current device, SonaCue falls back to 1-2 and says so instead of playing nothing.

Editing

  • A two-column Edit panel that follows the selection: the cue, or the loop, note, MIDI trigger or OSC trigger you have selected, with a coloured accent matching its timeline colour.
  • Mark a range across the waveform and the timeline strips in one drag; the header shows its duration.
  • ⌘C / ⌘V copy and paste a loop, note or trigger — or a whole marked group at once, pasted at the playhead with its spacing preserved.
  • Multi-cue selection in the set list: ⌘-click toggles, ⇧-click extends. Removing cues or changing their colour applies to the whole selection.
  • Snapshot undo/redo — a whole handle drag counts as one step, and so does a bulk relink or applying Match Levels.

Project & safety

  • Shows are saved as portable .sc files, which decode tolerantly — an older build opens a newer file and vice versa.
  • Save as Project… writes a folder with the show and a Media subfolder holding every audio file, referenced relatively, so the whole thing can be moved or copied.
  • Autosave with a configurable interval, plus crash recovery on relaunch.
  • Prompted to save before quitting or opening another show.
  • Missing audio is flagged in the set list; point SonaCue at a folder and it searches it and its subfolders and relinks every missing cue at once, matching case changes and converted formats.
  • Automatic updates (same major version only), verified by an Ed25519 signature. Every release is Developer ID–signed and notarized by Apple.

Learning it

  • The Helpline: a one-line bar under the header describing whatever the mouse is over, with the applicable keys shown as key caps. Switch it off when you no longer need it.
  • A built-in Help window with topics grouped into chapters, key caps for every shortcut, and a search field that filters all of them at once.
  • A guided demo show — every cue narrates the feature it is playing through — on the Downloads page.