Skip to content

History / Troubleshooting

Revisions

  • Device face: the roster shows whoever identified, master[flow] included Rows in first-seen order, a closed app dims in place, more than four is "plus n more". Mentions the probe device under Installing. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

    @ryangavin ryangavin committed Oct 6, 2026
  • Add the multi-output interface fix to Troubleshooting An interface with eight or sixteen outputs arrives in Settings offering only 1/2, because macOS reports its preferred speaker layout rather than its outputs. The steps for an Aggregate Device, which publishes no layout and so restores the real count.

    @ryangavin ryangavin committed Sep 8, 2026
  • Say what the device face says now, and admit the page can lag The device stopped counting attached windows a while ago: Status reads `Connected to Live` whether or not an app is on it, and underneath is a row per app — set[flow], visual[flow], chart[flow] — with a dot that lights while that one is connected, and `plus N more` for anything else attached. The old wording described a connection count that no longer exists, so `No connections` was being offered as a diagnosis for a state the device cannot report. Both pages now carry a note that they are hand-written and can fall behind, and that Live wins the disagreement. It is the honest thing to say on a page describing a face that changes with the build and only changes here when somebody remembers — the same drift that put eleven `lens` modes on Visuals until the reference was generated.

    @ryangavin ryangavin committed Aug 31, 2026
  • The device no longer opens a browser set[flow] is an app of its own now. The device face has lost the button and the address that went with it: the WebSocket is not a documented interface, so an address on the face invited something nobody supports. Status is the only readout left, which is the one worth having. Co-authored-by: Codex <noreply@openai.com> Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DYCKLWb13J5PLkNpGGRdfi

    @ryangavin ryangavin committed Aug 26, 2026
  • Say that Live keeps drawing while the set is read The first read no longer locks Live up: it runs in pieces with a pause between each, so the progress bar means something now. Two consequences a user can see and would otherwise misread — it finishes a little later than it would if it hogged everything, and restructuring the set mid-read makes it start over rather than show a half-and-half answer. Co-authored-by: Codex <noreply@openai.com> Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XgWVKDg9bAtZhhDoQjtqE4

    @ryangavin ryangavin committed Aug 18, 2026
  • Say that only the first load reads the set The device keeps track of the set now, so opening, refreshing or opening a second window is instant however big it is — and a refresh that reads everything again is a bug to report rather than something to work around. Also says the following happens in the device, which is why closing every window doesn't stop it and how the Push encoder stays right with no browser open. Co-authored-by: Codex <noreply@openai.com>

    @ryangavin ryangavin committed Aug 15, 2026
  • Rename the tempo button and say what it writes The button is now Apply tempo to song start: the song's first scene gets Scene.tempo and the rest of the song gives it up. That is also how a set written the every-scene way converts, so the page says so, and Troubleshooting gains the symptom that sends you there — firing a scene mid-song snapping the whole set. Co-authored-by: Codex <noreply@openai.com>

    @ryangavin ryangavin committed Aug 15, 2026
  • Document the split left columns and the continuous song header The grid's left edge is two columns now, not one. The metadata column holds a scene's number, BPM and key and nothing else; the Master column beside it is Live's Master track at the head of a column of its own, carrying each scene's launcher and role above, and Stop All Clips and Master's strip below. Both stay pinned while you scroll across the tracks. What that changes for a reader: the ▶ is in the Master column rather than a gutter of the scene's own, the role chip sits beside it, the Songs heading is no longer tinted with Live's Master color — that color went with the Master column — and Master's strip is the same size as every other strip rather than a wider one centred in an oversized cell. An open song header is one continuous bar across the whole grid, with its name, artist, facts, tag and flags pinned to the left edge so scrolling out to track 30 still says which song those clips belong to. The song tag is gone from the scene rows: every scene of a song carries the same one, so a column of them said nothing the header hadn't. Both ASCII diagrams are redrawn and re-aligned. The width table's track counts are recomputed for the narrower left edge — Narrow fits about 11 tracks now, Wide about 7 — and the 8/16 note says that Master takes a track's worth of width without being one of the eight. Two things were stale before this and are fixed with it: "click a scene name" described a gesture whose target shows no name, and Troubleshooting still recommended the S column width, which was removed some time ago. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JcqKqi7azGSadYatDcsyGD

    @ryangavin ryangavin committed Aug 12, 2026
  • Update song navigation and grid controls Co-authored-by: Codex <noreply@openai.com>

    @ryangavin ryangavin committed Aug 8, 2026
  • The grid keeps up with more, and re-reads on staleness Follows the code change that moved the full re-walk off window focus and onto an age check, and that gave the bridge observers on whatever Live's Session cursor is sitting on. **The grid disagrees with Live** was describing behaviour that no longer exists. It said the app re-reads everything whenever you switch back to the browser, and that an in-place rename needs a trip into Live and back. Neither is true now: an in-place rename, recolor or delete reaches the grid on its own, and the full re-walk happens on staleness rather than on every alt-tab. What is left uncovered is worth naming precisely rather than hand-waving, so the two genuine blind spots are listed with the reason: Live exposes no notification for a clip's length or a group's fold state, so there is nothing to watch and **sync** is the answer. The table swaps the rename row, which is now automatic, for those two. **Nothing appears in the grid** still said to check both pills. There is one readiness line in the bottom strip now, and it names the first thing it's waiting on rather than asking anyone to combine two statuses. **Undo** described the snapshot being re-walked every time you switch back from Live, as part of why there's one level and no redo. The reasoning is unchanged — the picture an undo entry was captured against keeps moving — but the trigger isn't what it says.

    @ryangavin ryangavin committed Aug 8, 2026
  • Document meter controls and device connection status

    @ryangavin ryangavin committed Aug 8, 2026
  • Document the consolidated readiness status

    @ryangavin ryangavin committed Aug 8, 2026
  • Song tags, the sort hierarchy, and following Live Brings the manual up to the 2026-08-07 work. Three of these were not additions but corrections — the pages described behaviour the app no longer has. The convention lost its BPM. A scene name is `[ROLE] @{key} {SONG} {TAG}`; the tempo lives on Scene.tempo, which is the one fact Live already has a home for, and duplicating it into the name meant two answers that could disagree. Naming is rewritten around that, with the three readable legacy forms in a table so a half-converted set is recognisable rather than mysterious. Song tags are new and get a section rather than a page: an open, optional, brace-delimited classification of what the song is. The braces are the point — they make an arbitrary tag reversible without a fixed vocabulary, which is what keeps the mapping derivable from the name alone. Roles gets the tag-versus-role distinction, since one describes a scene and the other a song, and they are deliberately different marks. Roles and the chosen palette moved out of bsv.json and localStorage into a hidden device parameter, so Live writes them into the .als. That is a better story than the one it replaces and Installing, Roles and Color each told the old one. Home gains a section saying it plainly: there is no database, and the set is the storage. The palette is now compiled in. Color and Troubleshooting documented a Re-derive button that no longer exists — worse than incomplete, since someone would have gone looking for it. Following Live is documented with its failure mode stated out loud. It watches the Session cursor and it is the least verified path in the app, so "a clip drawn in two places means this got it wrong, press sync" is in both Reading the grid and Troubleshooting. A manual that only described the happy path would leave the one symptom worth reporting looking like a bug in the reader's set. The same commit records what following Live cost: a write no longer re-reads the set, so it no longer quietly catches up on changes made in Live as a side effect. That is a regression from the user's seat and it says so. Also: the sort hierarchy in the running order, per-scene slices in folded song headers, ⌘A, and the bar.beat.sixteenth readout that has been in the header since the branded transport and was never written up. Some of this documents work that is still in the working tree, so the manual is briefly ahead of the released device. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MutvDXT74GQ57Jjztt21cz

    @ryangavin ryangavin committed Aug 7, 2026
  • Add the user manual

    @ryangavin ryangavin committed Aug 5, 2026