controls panel: show the R2 + d-pad navigation chord while editing notes nf-wqxl ← Beads

open priority 2 task unassigned

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

From the playtest sitting 2026-08-02, build be9465e. Aedan's words:

> "The hotkey controls for the R2 chord for moving… jumping around the notes editor." > "I want the R2 chord to show up in the controls panel when you are editing notes."

The binding exists and is undocumented in the guide. games/tonapse/ui/PianoRoll.cs:359-362:

``` // Chord: holding R2 turns the d-pad into navigation — // ±octave vertically, ±bar horizontally (#163). A chorded R2 press // doesn't zoom [on release]. ```

The guide never says so. ControlsGuide.cs, the PianoRoll { InCursor: true } ("editing notes") hint set, currently yields:

| shown today | |---| | ✕ add / remove | | hold ✕ grow note | | □ play | | L1/R1 walk song | | L2/R2 zoom notes | | L3 fit notes in view | | ◯ back |

R2 appears only as half of the L2/R2 zoom pair, so nothing tells you that holding it re-purposes the d-pad. That's the fastest way to move around a pattern and it's currently discoverable only by accident or by reading the source.

Ask: add a row to the editing-notes set for the chord — something in the shape of R2 + d-pad · jump octave / bar, using the existing Chord(...) renderer (already used for □+R2 play song in the modal set, ControlsGuide.cs:248).

Wording should follow the #195 rule — say what it acts on, not just the gesture — so prefer "jump octave / bar" over "navigate". Exact phrasing is the implementer's call.

Worth checking while in there: whether the same chord is worth advertising in the non-cursor PianoRoll ("notes") state, and whether the un-chorded-release zoom behaviour needs a mention so the two R2 rows don't read as contradictory.

Refs #195, #163, #354

Dependencies

None.

Comments

No comments.

Add a comment