Commit Graph

57 Commits

Author SHA1 Message Date
c1f8f46cfe Assist mode: drop duplicate live-note staff from mic bar
The Assist card already shows the played note large (staff + fretboard);
the pitch-monitor-bar staff duplicated it. Text readout (note + Hz) stays.
2026-09-20 00:04:16 +02:00
baa66c0dc7 UI: reorder game modes (Assist first), rename Sight Reading -> Learn Notes
Internal key 'sight_reading' kept for localStorage compatibility;
TODO added at gameMode type def for future rename + migration.
2026-09-19 23:45:53 +02:00
OpenClaw
75ad4613bb 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.
2026-09-15 22:27:04 +00:00
OpenClaw
6b52a049e8 Restore text-entry gate for keyboard shortcuts (cleanup) 2026-09-15 21:33:33 +00:00
OpenClaw
97a9a83f68 Fix Next/New no-op for seeded material + keyboard shortcuts after button clicks
- nextAction: giuliani and single-chord arpeggios now roll a new seed
  too (they consume melodySeed); previously the handler silently did
  nothing for them. Scale drills keep no Next (deterministic).
- New/Next button visibility matches the same condition, and the label
  is 'Next' for fixed material only.
- Keyboard shortcuts: HTMLButtonElement removed from the interactive
  gate — after any mouse click the button keeps focus and previously
  swallowed N/R/P/H/L/V/M. Space/Enter on a focused button still
  activate it natively and no longer double-fire the global
  pauseToggle/skip handlers.
2026-09-15 21:32:27 +00:00
OpenClaw
1ec1353c0b Add Assist mode: primitive note display for practicing from paper
New game mode 'assist' — no trainer, no scoring:
- Large display of the currently mic-detected note
- Live notation staff (same pipeline as the pitch monitor)
- Live fretboard showing alternative positions for the played note
  (respects the fret-window practice filter)
- Tuner and Metronome remain the shared footer tools, identical in
  all modes; user can practice own-pace from paper with a free
  metronome

Header mode toggle gains 'Assist'; 'm' shortcut cycles back to sight
reading from assist/phrase. Export PitchData type.
2026-09-15 21:11:21 +00:00
OpenClaw
b214c209f9 Feedback round 2: strings filter, key sync, fixed clef, unified metronome
- Strings filter: per-string toggle buttons (replaces fret-window-only
  semantics as a third 'limits notes' control); combines with fret window
  and key filter in targetPool (fretted instruments).
- Key sync checkbox: display key signature can follow the target key
  (major/minor mapping), default off — both remain independently settable.
- LiveNoteStaff: optional fixed clef — guitar/bass now keep their usual
  clef instead of flipping at middle C; octave markers handle range.
- Unified metronome widget (MetronomeWidget) with animated linear pendulum
  synced to the audible click; shown in ALL modes next to the tuner.
  Phrase BPM now reads from settings.rhythm.bpm (single source); the
  phrase-local BPM control was removed from the setup panel.
- Tests: 160/160; tsc + eslint clean; build ok.
2026-09-14 12:38:22 +00:00
173c4c56bc Fix stave vertical placement: compensate VexFlow space_above_staff_ln offset in live staff and phrase rows (verified via screenshots) 2026-09-14 02:21:33 +02:00
4f2ee8798a Phrase mode: count-in click fix, auto-continue sections, BPM widget, live-note staff, 13 new exercises 2026-09-14 01:45:39 +02:00
4d6e205b07 Phrase mode: App integration (mode toggle, keyboard, zen), Controls tweaks, styles 2026-09-14 00:58:43 +02:00
3cc9a0c43d Add reference note duration and wait-for-silence options
- Settings: reference note duration slider (0.5-4s, default 1.5s) applies to
  ear-training auto-play, sight-reading auto-play and the manual Play Note
  button/keys alike.
- Settings: 'Wait for Silence' toggle holds the next reference note until the
  mic detects the instrument has gone quiet (a still-ringing string masking
  the next note was easy to miss). Safety cap of 8s so continuously
  detectable room noise can't stall the app; without a mic it plays
  immediately. The quiet state is a boolean dep (not the per-frame pitch
  object) so the play timer isn't reset 60x/sec.
- Gate all live feedback (staff preview, readout, tuner) during speaker
  playback: the mic inevitably hears the reference note and would briefly
  leak the target in ear training. Virtual fretboard taps (explicit user
  input) still display instantly.
2026-09-13 18:52:33 +02:00
a785d188e9 Refactoring 2025-12-31 10:35:11 +01:00
0373a7c516 reduce note match threshold_ms 2025-12-30 22:39:19 +01:00
fe5442eda0 Fix issues with resizing on small screens 2025-12-30 22:30:48 +01:00
aea2442fd6 mobile UI 2025-12-30 20:17:35 +01:00
7a272175d9 Improve mobile UI (resizing) 2025-12-30 20:11:08 +01:00
be7d994ca5 Attempt to fix microphone on android 2025-12-30 19:41:21 +01:00
b27c24cfd0 Mobile UI improvements 2025-12-30 19:24:27 +01:00
96b236acee Improve mobile UI 2025-12-30 10:24:25 +01:00
6f67769974 Add hints on mouseover on virtual instrument 2025-12-28 17:10:37 +01:00
d83cccb392 JensMohrmann.de 2025-12-28 15:15:51 +01:00
1008fe0eb6 Adjust logo and switch help and settings buttons 2025-12-28 15:09:30 +01:00
c21576a443 Modern fermata logo 2025-12-28 14:47:37 +01:00
dbe7d9a38e Add keybaord shortcuts for mic and virtual instrument 2025-12-28 14:32:07 +01:00
c76a172c1c Fix success animation blocking new note 2025-12-28 14:17:42 +01:00
5ce02498c1 Readme and technical documentation 2025-12-27 22:46:58 +01:00
e97e036bdd Add piano as virtual instrument 2025-12-27 19:23:41 +01:00
ee36cf00cd Fix pitch detection frequency ranges 2025-12-27 19:01:09 +01:00
03a5e8e3c1 mic sensitivity setting 2025-12-27 18:43:19 +01:00
2ad1fe0ea9 improve volume control 2025-12-27 18:12:32 +01:00
bf6c443ebd Add settings dialog 2025-12-27 17:48:57 +01:00
c12b561bc6 "Good" animation 2025-12-27 17:42:41 +01:00
00a2de2bad mobile UI improvement 2025-12-27 16:45:51 +01:00
647a91c4b8 Improve virtual guitar UX 2025-12-27 13:39:29 +01:00
5a78d0ff04 Virtual guitar 2025-12-27 13:24:59 +01:00
31843095a3 move tuner 2025-12-27 12:57:58 +01:00
a89e017be7 UI improvements 2025-12-27 12:45:04 +01:00
4640ef961b mobile UI improvements 2025-12-27 00:20:28 +01:00
4f247c086a resize frame when hint is enabled 2025-12-26 19:13:19 +01:00
1650eb4824 resize fretboard 2025-12-26 18:58:36 +01:00
bd18844c73 note sets for strings 2025-12-26 18:42:41 +01:00
b8e8623024 custom note sets 2025-12-26 18:25:55 +01:00
bd5a54a704 Note sets 2025-12-26 18:03:05 +01:00
522492c852 added mode change shortcut 2025-12-26 16:13:30 +01:00
0c2a84464a Keyboard Shortcuts 2025-12-25 21:23:31 +01:00
894321f0dc fix build error 2025-12-25 20:59:47 +01:00
e57b790ab9 Ear training mode 2025-12-23 14:40:34 +01:00
30a52529d4 Zen mode 2025-12-21 22:39:18 +01:00
4029f62f43 tuner (buggy?) 2025-12-21 22:26:19 +01:00
3b162e4ba9 UI fixed 2025-12-21 22:16:41 +01:00