mirror of
https://github.com/9x/sheetmusictrainer.git
synced 2026-11-03 22:03:54 +01:00
Phrase mode: player-style transport, separate display toggles, preview cursor + stepping
- Transport restructured like a music player: Start/Pause, step back/forward buttons (while previewing), Preview, Retry, Next. - Virtual instrument and Hint moved out of the transport row into a separate display-toggles row using switch-style toggles (same visual language as tuner/metronome switches) — pure show/hide, no run state. - Preview now tracks a cursor: the current preview event is marked in the notation (caret + color via existing currentIdx pipeline). - Preview stepping: pause-free stepping forward/backward one event at a time; each step replays from the cursor position so notes can be located on the fretboard. Arrow keys ←/→ work while previewing. - With Hint active, the fretboard/piano marks the preview cursor note (displayIdx follows the preview cursor). - previewIdx resets on structural changes and when the preview ends.
This commit is contained in:
@@ -165,6 +165,12 @@ function App() {
|
||||
case 'n':
|
||||
phraseRef.current?.next();
|
||||
break;
|
||||
case 'arrowleft':
|
||||
phraseRef.current?.previewStep(-1);
|
||||
break;
|
||||
case 'arrowright':
|
||||
phraseRef.current?.previewStep(1);
|
||||
break;
|
||||
case 's':
|
||||
phraseRef.current?.skip();
|
||||
break;
|
||||
@@ -430,6 +436,7 @@ function App() {
|
||||
<>
|
||||
<div className="help-item"><span>Start / Pause / Resume</span><span className="shortcut-key">Space</span></div>
|
||||
<div className="help-item"><span>Preview phrase (Play / Stop)</span><span className="shortcut-key">P</span></div>
|
||||
<div className="help-item"><span>While previewing: step note forward / back</span><span className="shortcut-key">→ / ←</span></div>
|
||||
<div className="help-item"><span>Retry phrase</span><span className="shortcut-key">R</span></div>
|
||||
<div className="help-item"><span>New melody / next bars</span><span className="shortcut-key">N</span></div>
|
||||
<div className="help-item"><span>Skip note (at your pace)</span><span className="shortcut-key">S</span></div>
|
||||
|
||||
Reference in New Issue
Block a user