SonaCueSonaCue

Changelog

What's new in SonaCue.

Release history, newest first.

v1.4.12026-08-30
  • Reworked the dark colour scheme: surfaces now step further apart in tone — waveform panel, timeline strips, header and side panels each read as their own plane — and carry a slight cool undertone instead of pure neutral grey. Secondary windows (Show Check, Match Levels, Stage Display Settings, Help, the changelog and the licence dialog) now follow the same style: white controls instead of system blue, and a fixed-colour text field instead of AppKit's time-of-day-shifting bezel. Settings, Show Check and About also drop their framed boxes for the Edit panel's flat sections, so every window reads as one family.
  • Fixed the beat-grid anchor line drifting away from loop and trim lines the further it sat from the start of the track.
  • Fixed copy and paste ignoring a marquee selection: marking several loops, notes, or MIDI/OSC triggers and pressing ⌘C now copies the whole group, and ⌘V pastes it at the playhead keeping their spacing — previously only a single selected item could be copied.
  • Fixed several visual inconsistencies: the marked region now looks the same across the waveform and timeline strips; OSC trigger markers now match the size of note and MIDI trigger markers; the show list and Edit panel headers now line up; a loop's name bar no longer changes shade while being renamed.
  • Clicking anywhere in the time ruler or a timeline strip (notes, MIDI, OSC) now seeks the playhead to that position, the same as clicking in the waveform.
  • Marking a selection in a timeline strip now shows its duration in the header, the same as a waveform selection.
v1.4.02026-08-29
  • New: Show Check (File → Show Check…, ⇧⌘K) — a pre-flight report of everything that fails silently during a show: a moved audio file, an output device or channel pair that is no longer there, an invalid LTC route, a selected MIDI destination that is unplugged, an OSC socket that never opened, a trial about to expire. Each row carries its fix, from relinking a file to opening the right Settings tab. Switching to Show mode runs the same check silently and only opens the report if something needs attention (switch that off under Settings → General).
  • New: Match Levels (File → Match Levels…) measures every cue's integrated loudness (LUFS) and sets the track levels so the whole show plays at one level. The gain is capped so no cue's true peak passes −1 dBFS, which keeps the master limiter out of the signal path entirely — a cue with no headroom left is marked “peak-limited” and stays where it is instead of being pushed into the limiter. Peaks are measured 4× oversampled, so the inter-sample peaks in MP3 and AAC material are accounted for. Applying is one undo step.
  • New: an OSC trigger timeline, below the MIDI one — one-shot OSC messages fired at exact positions, for Companion, QLab, lighting desks and media servers. Each trigger has an address and an optional integer, float or text argument; markers are created, dragged, snapped, copied and deleted exactly like the MIDI ones. It also has its own pre-roll trigger — a single OSC message fired the moment a cue enters timecode pre-roll — set per track in the Edit panel, alongside the MIDI pre-roll trigger. The destination host and port live under Settings → OSC, separate from the feedback host, because cue triggers rarely go to the same box as the button LEDs.
  • Cue mappings now travel with the show. The MIDI keys and number keys that fire each cue, and the OSC trigger destination (host and port), are saved in the show file instead of globally — so opening a different show loads its own mappings instead of carrying one set across all of them. The transport mappings (GO, Play, Stop, Next, Previous) stay global, since those belong to your controller rather than any one show. Mappings you made in an earlier version are adopted automatically the first time you open the show they were made in.
  • New: Stage Display (View → Stage Display, ⇧⌘D) — a second-screen window with a large countdown to the running cue's out-point (yellow in the last 30 seconds, red in the last 10), the current note in large type, the next cue, and the timecode. It opens on the second screen when there is one and goes full screen. Every readout is sized as a share of the window rather than in points, so the display fills whatever screen it is put on and switching a panel off makes the remaining ones grow into the space. Every readout carries a caption (NOW PLAYING, REMAINING, NEXT, TIMECODE, NOTE) so it's clear what each value is. Arrange it in View → Stage Display Settings…: a size from Tiny to Huge per panel, drag any row to reorder, a link to put two panels side by side in one row, and Countdown/Stage/Control presets to start from — all with a live preview, on your own screen while the display runs on the other one.
  • New: the SonaCue Helpline — a one-line help bar under the header that describes whatever the mouse is over, including which keys or gestures apply. Toggle it from Help → SonaCue Helpline or the question-mark button in the header.
  • Multi-track selection in the show list (Edit mode): ⌘-click toggles tracks in and out of the selection, ⇧-click extends it to a range. Removing tracks or changing their colour then applies to the whole selection.
  • Redesigned the Edit panel: settings now sit in two aligned columns instead of one scrolling strip, every value lines up on a single edge, and a coloured bar under each heading matches what you are editing on the timeline (loop green, note yellow, MIDI teal, OSC indigo). Its header names the current selection and offers a way back to the track. Input fields keep one fixed colour that no longer shifts with the time of day.
  • Note diamonds on the timeline are now yellow to match the note accent colour used in the Edit panel header and the Stage Display. Previously they were grey, while MIDI and OSC triggers already had their own colours. All three strips now follow the same scheme: type colour when idle (notes yellow, MIDI triggers teal, OSC triggers indigo), green for the last-active marker, white for the selected one.
  • Relinking a missing audio file now accepts a folder as well as a file. Pick the folder the files moved to and SonaCue searches it and its subfolders and relinks every missing cue it finds there at once, instead of one file picker per cue. Files that were renamed only in capitalisation or converted to another format (song.wav → song.aiff) are matched too, and the summary reports which cues were relinked that way and which are still missing. The whole batch is a single undo step.
  • Fixed a MIDI output destination that was selected while plugged in becoming impossible to deselect once unplugged: it disappeared from the list under Settings → MIDI, yet Show Check kept warning that it wasn't connected, with no way to clear it. Selected destinations that aren't currently connected now stay in the list marked “not connected”, so you can switch them off.
  • Fixed the loop on/off button not sitting flush to the loop's left edge when zoomed out.
  • Fixed the timecode section's up/down arrow button occasionally missing clicks in Show mode while a cue was playing.
  • Fixed a loop's box, name bar and resize handles drifting out of alignment the further the loop sat from the start of the track.
v1.3.02026-08-06
  • The Help window (Help → SonaCue Help) has been rebuilt as a two-pane browser: topics are grouped into chapters in a sidebar instead of one long list of collapsible sections, keyboard shortcuts are shown as key caps, and every entry carries an icon — colour-coded to match the waveform, so the blue trim handles, orange fades, pink beat anchor and green loops are recognisable at a glance. A search field filters every topic at once.
  • Tempo detection: click the wand button in the beat grid controls to automatically detect the track's BPM and snap the first-beat anchor to the nearest downbeat. The analysis runs in the background and takes about half a second for a full-length track. If the detected tempo is off by a factor of two, right-click the BPM field to halve or double it.
  • Clicking empty space in the waveform or on any timeline strip now deselects the current loop, note, or MIDI trigger. Previously the selection stayed until you clicked a different item.
  • Fixed LTC output causing the music to clip in split-mode: when routing timecode to one channel of the main output pair, the LTC signal was being mixed into the same metering and limiting stage as the music, which reduced headroom and could trigger the limiter on the music channel. Timecode and music are now metered and limited independently.
v1.2.32026-07-28
  • Fixed a crash that could occur when the audio output device changed during a show — plugging in or unplugging headphones, an interface, or AirPods, or switching the system's default output. SonaCue now reconfigures the output safely when a device is still settling instead of quitting.
  • Fixed the header timecode readout being greyed out when MIDI Timecode was turned off, even while SMPTE (LTC) output was still running. It now dims only when both timecode outputs are off.
  • Fixed the Edit panel not switching to a loop's options when you selected a loop right after a MIDI trigger. Selecting any timeline object — loop, note, or trigger — now always shows that object's options; with nothing selected, the track's options are shown.
  • Fixed the large timecode section's move-to-top/bottom button often not repositioning the section until the next action (such as switching modes), even though the arrow flipped every time. It now moves on every press.
v1.2.22026-07-24
  • Copy and paste for timeline objects: ⌘C copies the selected loop, note, or MIDI trigger; ⌘V pastes it at the current playhead position. Right-click menus on the waveform and timelines also offer Copy and Paste. The pasted item is an independent copy with the same settings — loops land at the playhead with a minimum gap from neighbors, notes and triggers land exactly at the playhead. Copy and paste are unavailable in Show mode.
  • Hold Option while dragging any handle, loop edge, note, or MIDI trigger to temporarily suspend beat-grid snapping. Release Option to snap again. The key can be pressed or released mid-drag.
  • Right-click the LIM pill in the header to toggle the master limiter on or off without opening Settings. The pill dims and shows a strikethrough when the limiter is disabled.
  • Right-clicking anywhere on a loop — the waveform region, the name bar, or the enable button — now shows the same context menu, including an Enable/Disable Loop item.
  • Deleting all characters from a track name and confirming now restores the previous name instead of leaving the track unnamed.
  • The level meter turns red while the output is at or above 0 dBFS — a visual warning that the signal is clipping (or being held by the limiter).
  • Fixed the volume automation dB readout being obscured by loop name bars when dragging a node inside a loop region. The readout now always appears in the foreground.
  • Fixed a double-border appearance on all numeric and text input fields across the app.
v1.2.12026-07-23
  • Fixed selecting a track taking several seconds when the output is a Bluetooth device such as AirPods. SonaCue re-applied the output device on every track switch, and re-negotiating a Bluetooth connection is slow — about a second each time. It is now applied once, so switching cues is instant again. Wired outputs (built-in speakers, USB and Thunderbolt interfaces) were already fast and are unchanged.
v1.2.02026-07-22
  • Track levels now go up to +15 dB, so a quiet recording can be brought up to the rest of the show without re-exporting it. The level slider was rescaled to make room: 0 dB now sits about two thirds of the way up and is marked with a tick. A track that played at unity before shows its handle lower than it used to — the audio is unchanged. The dB field next to the slider takes anything from −∞ up to +15.
  • New master limiter holds the output below 0 dBFS, so a boosted track can’t clip no matter how far up the level goes. On by default; switch it off under Settings → Audio. The LIM indicator next to the level meter lights while the limiter is actually pulling the output down — if it stays lit through a whole song, that track’s level is higher than it needs to be. The limiter adds 2 ms of latency to the audio; timecode is generated from the playhead, so MTC and LTC are unaffected.
  • The waveform is now drawn at the track’s level instead of the file’s: a louder cue looks louder, a quieter one smaller, and a track boosted past the top of the box flattens against it. On by default — turn it off under Settings → General → Waveform to always see the raw file amplitude. Tracks you had set below unity will draw smaller than before.
  • Number keys can now fire cues, so a show can be run without MIDI hardware. Click the “123” toggle in the header, click a cue in the show list, then press 1–9 or 0 to bind it. Pressing a mapped key selects that track and fires GO — or leaves the loop, if that cue is already playing inside one. Works in both Edit and Show mode, and typing into a text field is unaffected. Mappings survive restarts and are listed under Settings → MIDI → Number Mappings.
  • Fixed numeric fields clipping their own contents as soon as a value gained a digit or a decimal place — a −60.0 dB level or a 122.75 BPM tempo no longer gets cut off.
v1.1.12026-07-20
  • Fixed MIDI Timecode not being chased by receivers whenever a track's start timecode was anything other than the default 01:00:00:00. The quarter-frame stream has to start on an even frame and span exactly two frames per sequence; it was derived from the transport position each time, so sequences drifted apart and any odd-frame start locked the stream to the wrong parity. Receivers decoded the right numbers but refused to lock. Timecode output is also noticeably steadier now.
  • Fixed audio going silent while the show appeared to keep running. Re-applying the output device during playback stopped the player without resuming it — the playhead, elapsed time and timecode all kept counting, with no warning and nothing on screen to indicate that nothing was being played.
  • OSC feedback no longer stops updating during long runs. The listener and the feedback connection could both end up gone while incoming commands still worked, so Companion buttons kept firing but its LEDs never updated again until SonaCue was restarted. Both are now watched and re-opened automatically, and failures are recorded to a log file for diagnosis.
  • Fixed Show mode refusing to zoom far enough into very short cues: a trim shorter than about 2% of the file hit the zoom ceiling and revealed audio outside the in/out points.
  • Fixed the waveform scrolling past the out-point in Show mode after resizing the window or dragging the splitter.
  • Loop playback no longer briefly stalls the interface on a loop's first pass — the crossfade at the loop seam is now prepared ahead of time instead of during playback.
  • The warning about an unavailable output channel pair now appears once instead of on every cue for the whole show.
  • A missing or unreadable audio file no longer causes repeated decoding attempts every time it is touched.
  • Fixed SonaCue being blocked on launch with “Apple could not verify SonaCue is free of malware that may harm your Mac”. The app carried a build-time library search path pointing outside the app bundle, which Gatekeeper on macOS 15 rejects. If you hit this, download this version and install it over the old one — no other change is needed.
v1.1.02026-07-12
  • Spectral waveform coloring: the waveform can be tinted by frequency content — bass red, mids green, highs blue. Toggle it in Settings → General → Waveform; off by default, the plain grey envelope is unchanged when disabled.
  • Arrow keys now work during playback in Show mode: ↑/↓ pre-selects the next track without interrupting the current cue, and the pre-selected track plays automatically when the current song ends (or on Enter).
  • Show mode now confines the waveform viewport to the track's in/out points — you can no longer zoom or scroll past the trimmed region. Zoom resets on entering Show mode, and the fit button fits exactly to the trim.
  • Fixed the output level meter holding its last reading after playback stops; it now drops to zero immediately.
v1.0.22026-07-11
  • Added a header level meter that tracks peak output in real time.
  • Dragging audio files onto the show list now inserts tracks at the drop position instead of always appending at the end.
  • New setting (Settings → General): preserve the current zoom level when switching tracks in Show mode with follow-playhead on.
  • The Notes panel now shows the last-fired MIDI trigger (type, channel, number, and value) at the bottom.
  • Follow mode no longer locks out manual scrolling while playback is paused.
  • Playlist total duration now excludes skipped tracks.
v1.0.12026-07-08
  • Fixed activation being stuck on “Wrong Version”: if you held a v0 license on a v1 build, the license window offered no way to sign in and activate your v1 license. You can now activate directly from that screen.
v1.02026-07-08
  • SonaCue 1.0 — the first public release.
  • A native macOS playback engine for live shows: frame-accurate transport, seamless (gapless) loops with click-free crossfades, in/out trims, perceptual fades, and draw-your-own volume automation.
  • Beat grid with snapping, a note timeline for on-stage cues, and a per-track MIDI trigger timeline.
  • MIDI Timecode (MTC) and SMPTE (LTC) output to sync DAWs, lighting desks, and video systems; MIDI learn and OSC control for external show-control gear.
  • Edit mode for building your show and a clean, locked Show mode for running it live.
v0.18.32026-07-08
  • Fixed the waveform drifting out of sync with the audio during playback (worse the longer a track played) — a rounding error in the waveform's peak calculation.
v0.18.22026-07-07
  • Added an About SonaCue window (app menu) showing the version and open-source acknowledgements.
  • The website download is now a signed, notarized disk image (.dmg) that opens cleanly on macOS Sequoia — no first-launch security detour.
v0.18.12026-07-06
  • Releases are now signed with a Developer ID and notarized by Apple — no more clearing the download quarantine attribute before first launch.
v0.18.02026-07-06
  • Rewrote waveform rendering: the waveform, beat grid, and time ruler now draw a precise envelope that stays sharp and glitch-free at any zoom level, with peak detail that scales to the track's length.
  • Added a follow-playhead mode that keeps the playhead centered and pans the waveform, ruler, and note/MIDI timelines underneath it.
  • Fixed a bug causing the whole UI to re-render 30 times a second during playback — the waveform and playhead now stay smooth, especially when zoomed in.
  • Added a large, glanceable timecode display next to the Edit/Notes panel, for reading the playhead from across the room during a show.
  • Added SMPTE (LTC) timecode output alongside MTC — route it to a split channel of the main output, a spare channel on a multichannel interface, or a separate output device entirely (Settings → Audio), with its own status chip in the large timecode display.
  • Show mode now also blocks creating or deleting loops and volume-automation points from the waveform's right-click menu.
v0.17.02026-07-05
  • Added an OSC control/feedback interface (Settings → OSC) for show-control gear like Bitfocus Companion and Stream Deck: GO/Stop/Next/Previous, select or fire tracks by index, and status feedback for button LEDs.
  • Pairs with the SonaCue Companion module — see the Downloads page.
v0.16.12026-07-05
  • File → Add Track(s)… (⌘I): pick one or more audio files from a browser panel to append them to the show as new tracks, without drag & drop.
v0.16.02026-07-03
  • Built-in auto-updater (Sparkle): SonaCue checks once at launch and offers new versions in-app; you can also check any time under Settings → General → Check for Updates…
  • Only same-major updates are offered automatically (e.g. 0.16 → 0.17), and updates install without re-triggering Gatekeeper quarantine.
v0.15.02026-07-03
  • Fixed license activation — rotated the backend signing keypair to match the one embedded in the app.
  • Fixed a duplicate window that could appear after the activation browser redirect.
  • Redesigned Settings (⌘,) into General / Audio / MIDI / License tabs, with new preferences: configurable stop fade-out duration, configurable autosave interval, "open last show at launch", and a MIDI input-mappings manager.
  • Added per-device audio channel routing — on multi-output interfaces, choose which channel pair (1-2, 3-4, …) the stereo mix plays on, remembered per device.
v0.14.02026-07-02
  • Licensing: 14-day trial, one-time-purchase activation (Ed25519-signed, machine-bound license); Show mode is gated behind an active trial/license — editing stays free.
  • Autosave & crash recovery: dirty-state tracking, periodic autosave, and recovery on relaunch after a crash.
  • Live-show robustness: output-device hotplug handling, clearer load-failure notices, better logging.
v0.13.02026-06-30
  • Replaced the flat "Options" menu with a proper Settings window (⌘,): audio output device, MIDI Timecode, MIDI Triggers.
  • MTC and MIDI trigger output can now target any number of physical MIDI destinations, with the virtual port independently toggleable. New devices are detected automatically (hotplug) and are active by default.
  • Added Open Recent, Reveal Show in Finder, and View-menu zoom commands (⌘+/⌘-/⌘0).
  • Added a local "What's New" changelog window — no network access.
  • Removed the macOS Services menu and window-tabbing items; quit/new-show dialogs are now fully in English.
v0.12.02026-06-30
  • Renamed the app to SonaCue; show files now use the .sc extension.
  • Switching to Show mode, or clicking empty space, clears marked waveform/timeline selections.
  • Double-click creates a new note or MIDI trigger on the timeline.
v0.11.12026-06-25
  • Fixed a crash on launch in the distributed app bundle.
v0.11.02026-06-25
  • Missing audio files are flagged with a warning icon; click to re-link.
  • "Save as Project…" creates a portable folder with a Media subfolder.
v0.10.02026-06-24
  • Added MIDI trigger timeline: place, edit, and fire Note/CC triggers during playback.
v0.9.12026-06-24
  • Per-track MIDI mapping for the show list.
  • Improved note timeline coloring and loop ducking limits.
v0.9.02026-06-24
  • Click-free loops: a short crossfade removes the seam between loop passes.
v0.8.02026-06-23
  • Added volume automation — draw a custom dB curve instead of plain fades.
v0.7.02026-06-17
  • Unified design system: consistent spacing, colors, and controls across the app.
v0.6.02026-06-17
  • SonaCue now prompts to save the show before quitting.
v0.5.02026-06-17
  • Added MIDI learn mapping for the transport and GO! buttons.
v0.4.02026-06-17
  • Seamless (gapless) loop playback.
  • Show mode locks track reordering, renaming, and deletion.
v0.3.02026-06-16
  • Added the beat grid, with snapping for handles and notes.
  • Added the GO! button.
v0.2.02026-06-16
  • Added the note timeline, time ruler, loop ducking, and the app icon.
v0.1.02026-06-16
  • Initial release.