Keyboard shortcuts
| Keys | Page | Description |
|---|---|---|
| P | /testing | Play a piano sample on every key click and MIDI noteOn. |
| G | /app | Show heart counter; lose a heart on miss, gain one every 5-streak. Reset on game-over. |
| B | /app | Show the ball-notes hint inside the answer panel on /app. Half of the hint TYPE pair behind the single Hints container on /preferences (B shortcut); at least one of the pair stays on, so the panel — and the Naming quiz question — is never empty. Hide via that control or by long-pressing the balls. Only consulted once `answerHintsChosen` is true — until then the screen width picks the default (narrow → off). |
| K | /app | Show the on-screen piano keyboard inside the answer panel on /app. The other half of the hint TYPE pair (K shortcut; see showAnswerBalls). Hide via the Hints container or by long-pressing the keyboard. Only consulted once `answerHintsChosen` is true — until then the screen width picks the default (narrow → off). |
| H | /app | Keep the answer panel (balls + keyboard) visible at all times, not only after Space-to-reveal or a wrong attempt. The H shortcut toggles it; B / K choose WHICH surface the panel holds (at least one stays on). V1 `o-0` parity. |
| F | /app | Display piano fingerings (digits 1-5) on keyboard hints. Scales subject + singleNotes voicing only; mutually exclusive with hlType (engaging fingerings overrides scale tint). |
| O | /app | One-note mode. Whatever the exercise draws — a chord, a scale degree, a progression step, a song chord — the RIGHT hand only has to play the chord root; nothing else about the question changes (the same chord is drawn, named and hinted). The left hand is unaffected: `leftPlays` still decides what it owes. Wins over `rootlessMode` when both are on (rootless drops the note one-note keeps); a ninja pattern still overrides both. Single-note questions are unaffected. |
| N | /app | How the question is rendered on /app. `chordNames` (default) shows the chord label (e.g. "Am7"); `staff` shows the notes on a music staff (VexFlow renderer). Toggled with the N keyboard shortcut. When `staff`, see the staff* sub-options. |
| N | /preferences | How the question is rendered on /app. `chordNames` (default) shows the chord label (e.g. "Am7"); `staff` shows the notes on a music staff (VexFlow renderer). Toggled with the N keyboard shortcut. When `staff`, see the staff* sub-options. |
| Space | /app | Reveal the answer; once revealed, advance to the next chord. |
| / or\ | /app | Keyboard split — grade only one hand |
| I | /app | Toggle the extended chord-info panel |
| 1 or2 or3 or4 or5 or6 or7 or8 or9 | /app | Pick the Nth answer button (naming activity) |
| R | /app | Toggle the chord-root highlight on the keyboard + staff. |
| Shift+R | /app | Start single-note (melody) recording on a connected MIDI keyboard. The captured exid lands on Songs subject with single-note mode on. |
| Enter | /app | Advance to the next chord. |
| Ctrl | /app | Cycle the hand option: any → right → left → both. |
| M | /app | Toggle the metronome. |
| Esc | /app | Reset the session (counters, hearts, chord index) without reloading. |
| J | /app | Switch between Jumper game and Piano practice. |
| + or= | /app | Increase the metronome tempo by 1 BPM. |
| - or_ | /app | Decrease the metronome tempo by 1 BPM. |
| ` or0 or1 or2 or3 | /app | Set the inversion(s) to drill. ` or 0 = root, 1 = first, 2 = second, 3 = third. Press several keys quickly (within ~250 ms) to enable multiple inversions at once. Inversions the current chord type can't support are skipped. |
| P | /app | Open the preferences page. |
| P | /preferences | Return to the practice page. |
| < orQ | /app | Previous key (chromatic). Songs subject: transpose spec down a half step (adaptive — keeps letter naming clean). |
| > orW | /app | Next key (chromatic). Songs subject: transpose spec up a half step (adaptive — keeps letter naming clean). |
| A orPageUp | /app | Previous key (circle of fifths). Songs subject: transpose spec down a perfect fifth. |
| S orPageDown | /app | Next key (circle of fifths). Songs subject: transpose spec up a perfect fifth. |
| ArrowUp orArrowDown orL | /app | Toggle between a major key and its relative natural minor. |
| Home orZ | /app | Previous scale type. |
| End orX | /app | Next scale type. |
| C | /app | Toggle major / natural minor on the same tonic. |
| ArrowLeft | /app | Previous inversion (single selection). |
| ArrowRight | /app | Next inversion (single selection). |
| < orQ | /preferences | Previous key (chromatic). |
| > orW | /preferences | Next key (chromatic). |
| A orPageUp | /preferences | Previous key (circle of fifths). |
| S orPageDown | /preferences | Next key (circle of fifths). |
| ArrowUp orArrowDown orL | /preferences | Toggle between a major key and its relative natural minor. |
| Home orZ | /preferences | Previous scale type. |
| End orX | /preferences | Next scale type. |
| C | /preferences | Toggle major / natural minor on the same tonic. |
| ArrowLeft | /preferences | Previous inversion (single selection). |
| ArrowRight | /preferences | Next inversion (single selection). |
Browser shortcuts
These are your browser's own controls, not PianoKitty's — they work in every major browser. On macOS press ⌘ Cmd instead of Ctrl.
| Keys | Description |
|---|---|
| Ctrl+ | Bigger interface |
| Ctrl- | Smaller interface elements |