notes editor shows one sound's roll while the loaded pattern is another's nf-s0o9 ← Beads

open priority 2 task unassigned

Twinned from https://github.com/cfsh/ninefold/issues/487 by tools/beads/import_github.py's reconcile pass.

From the playtest sitting 2026-08-04, F5 build ca7a756. Aedan's words:

> "I managed to create a weird bug. I'm looking at the keys pattern, but actually the roll I'm showing on the right is for drums. So I put in some notes, and I'm hearing note sounds, but I'm looking at a drums editor. There's a weird bug going on here."

Evidence: [capture-1](https://github.com/cfsh/ninefold/blob/6334c0a49699b4e877cc48eccc3e0913c06ae343/playtest-logs/2026-08-04-ca7a756/capture-1.png) and [capture-2](https://github.com/cfsh/ninefold/blob/6334c0a49699b4e877cc48eccc3e0913c06ae343/playtest-logs/2026-08-04-ca7a756/capture-2.png) — he shot it twice, 13 s apart, from the same state.

The journal corroborates it, and that is the useful part. Both captures record the editor's *model* state as:

``` zone=Notes pattern=hum sound=keys ```

while the *rendered* roll was, in his eyes, the drum grid. So this is not a mislabel — the view and the state genuinely disagree. Whichever is authoritative, one of them is wrong, and note entry was going somewhere he could hear but not see.

Corroborating detail: drums render as a fixed-lane grid rather than a pitched roll (PianoRoll._isDrum short-circuits the L2/R2 octave logic), so "looking at a drums editor" is a structurally different widget, not just different labels — consistent with the roll having been built for one sound and the pattern loaded from another.

Repro notes

Not deterministic in his hands — he hit it while moving between channels and patterns, in the sitting that also produced #453's screen-flip behaviour. The 8 focus transitions before capture-1 are all within zone=Notes on pattern=hum / sound=keys, including two visits to NotesChangeInstrument, so the change-instrument button is in the immediate history and is the first thing worth suspecting: changing the instrument while a pattern is open may rebuild the roll for the new sound without reloading (or without re-binding) the pattern.

Three anomaly: null focus-lost events also occurred in this sitting (01:53:16, 02:03:32, 02:03:33, all zone=SongGrid) — probably unrelated, noted so they aren't rediscovered.

Why this one matters more than its size suggests

Every other item from this sitting is polish. This one silently edits the wrong data: he added notes believing he was editing keys. Worth pinning with a probe assertion once the cause is known — the roll's bound sound and the loaded pattern's sound should be assertably equal.

Possibly related to the one-screen flip path (#453) — see #464's "uncovered flip-with-fill-panel path". Filed standalone rather than on #453 because it may well pre-date that work; whoever picks it up should check both.

Refs #453, #464, #475

Dependencies

None.

Comments

No comments.

Add a comment