Diagnostics and support
What this does: shows where Helm Cues records what happened, how to read it live, and how to send all of it to support in one file.
Everything here is under Help: Diagnostics, Reveal Log Folder, Save Support Bundle… and Report an Issue…
Send a support bundle
Section titled “Send a support bundle”-
Help → Save Support Bundle… (or Save bundle… in the Diagnostics panel).
-
Pick a folder. The file is
helm-cues-support-<date-time>.zip. -
The toast reads
Support bundle saved — N KB, n files. Reveal shows it in Finder. -
Help → Report an Issue… opens helm.show/support with the app and version filled in. Attach the zip to the email.
What the bundle holds
Section titled “What the bundle holds”- The Diagnostics report: the same text as Copy report
- This Mac, the Cues version and a licence summary
- Timecode, clocks, the session and the MA3 bridge, as they stand
- Your Cues settings, the grandMA2 plugin settings, and every audio and MIDI device
- The logs and every crash report
- The open show
What it never holds
Section titled “What it never holds”- The full licence key. Only its first few characters.
- Your Helm Cloud sign-in.
- The session passcode, or this Mac’s session identity.
- Media. No audio, video or images.
- Your full email. Masked:
t***@example.com. - Upload links.
It does hold desk and peer IP addresses, device names, your settings and the open show with its track and cue names. Read it before you send it if the show is confidential.
Details: Technical reference
The log
Section titled “The log”- Folder:
~/Library/Application Support/ShowLink Cues/logs/. Help → Reveal Log Folder opens it. - One file per day. The last 7 are kept.
- Panic writes one line: how long it took, what it stopped, and anything that failed. See Panic.
- Upload links never reach the log.
Old logs are scrubbed on launch
Section titled “Old logs are scrubbed on launch”Logs from older builds could hold upload links. Cues removes them on every launch and logs [cloud] log scrub: ….
After a crash
Section titled “After a crash”-
Cues writes a crash report: the time, version, what failed and the last 200 log lines.
-
On the next launch a banner reads
Helm Cues did not exit cleanly last time — time: <time> · message: <message>. Only the newest unseen crash shows. -
Reveal shows the crash file in Finder. Dismiss hides the banner. Either way that crash does not raise it again.
-
Save a support bundle. It carries every crash file.
The Diagnostics panel
Section titled “The Diagnostics panel”Help → Diagnostics. A side panel: the app runs behind it and every shortcut still works. Close it with × or Esc.
The header shows version, build and uptime, with Copy report, Save bundle… and Logs.
| Section | Shows |
|---|---|
| Timecode out | One row each for LTC, MTC, Art-Net, MIDI Clock: running, held or stopped, the device (or no device), the last frame sent. Then MTC jitter and Error. |
| Timecode in | LTC in, MTC in, Art-Net in: off, no signal, LOCKED or no lock, with the timecode, quality and offset from the playhead in ms. Chase reads enabled or off. |
| Clocks, last 60 s | Heard, Web Audio (the audio engine and output device), and the drift table below |
| Session | Hosting and its members, or Following with its clock readings, or not in a session |
| MA3 bridge | Listening: "<session>" · port n · UDP up · desk cmd n, or no. Each desk with its status and last heard 14:03:22: when Cues last heard from it, not whether it is there. none have said hello means no desk has talked to this Mac since Cues started. |
| System | Memory, the window’s frame rate (fps) and longest gap, the data folder |
| Event log | The last 200 log lines. Scroll up to stop it following. |
Green is running, locked or connected. Amber is held. Red is an error, LINK LOST or blocked.
Copy report puts the whole panel on the clipboard as text.
Read clock drift
Section titled “Read clock drift”The drift table compares two clocks per row over the last 60 s. Every number is in ms.
| Row | Compares | Sampled |
|---|---|---|
MTC − expected | Where MTC is against where the playhead says it should be | Only while playing with MTC running |
Rust mono − perf | The engine’s clock against the window’s clock | Always |
Audio − perf | The audio clock against the window’s clock | Only while audio runs |
| Column | Means |
|---|---|
n | Samples in the window |
mean · min / max | The average gap and its range |
p95 | 95 % of samples sat within this many ms |
ms/min | How fast the gap grows. The slope, not the size. |
-
Play a track for at least 60 s with MTC on.
-
Read
p95onMTC − expected. Compare it to one frame: 40 ms at 25 fps, 33.3 ms at 30. -
Read
ms/min. Near 0 is no drift. A steady value away from 0 is drift: multiply by the set length in minutes for the error at the end. -
A large
meanwith a flatms/minis a fixed offset, not drift. -
Anything you cannot explain: Copy report and send it.
Cues sets no pass or fail line on these numbers. They are measurements.
Read MTC jitter
Section titled “Read MTC jitter”- State:
playing,idleorSTARVED. Starved: the transport is playing but MTC waits. For the music to start after a play or seek, for a player that stopped moving, or for the app (no playhead for 3 s). - Counts: quarter-frames sent, ok and in error.
- Delay: how late each quarter-frame left. Average, max and last.
- In the log: every 10 s, the counts with full frames, relocks, late skips and the largest error against the playhead.
MTC quarter frames up to … ms latewhen one was more than 5 ms late. More than two quarter frames late, MTC starts again on the next frame instead of sending the backlog. See Timecode timings.