Follow along
The score runs at its own tempo while you play; every note is graded as it passes.
Practice mode
The score can wait for you. Keyflow grades every note, remembers every run, draws fourteen days of progress and overlays your best take as a ghost — so practice is measured, not guessed.

Modes
The score runs at its own tempo while you play; every note is graded as it passes.
The score stops and waits: it only moves on once you play the right note.
Practise one hand while the other keeps playing, read straight from the MusicXML staves.
The mirrored mode — the same split point feeds the per-hand colours too.
Set A and B at the playhead, clear with ×; every loop is re-scored from the start.
Off by default. Miss too many in a row and the song slows by 5% per step down to a 50% floor; four correct notes speed it back up by 2%, never past 100%.
Hands

Sheet music layer
Switch Sheet music on in the LAYERS card and a double staff runs above the keyboard, following the playhead. It is a reading layer built from the song's own notes and beat grid — not an imported engraving — and everything it needs is worked out once and cached.

Scoring & history
| Where | What you get |
|---|---|
| Under the stage | ACCURACY, SCORE and STREAK update live, with hit/miss feedback at the moment the note passes. |
| History page | Every run of the open song — when, accuracy, hits and misses, longest streak — plus the best take of that song, EXPORT HTML for a report and CLEAR HISTORY. |
| Practice chart | One column per day for the last fourteen days, height set by that day's accuracy, days without practice still on the axis, and the run count and window average printed below. |
| Ghost of this song | Each dot is a graded note — across by its place in the song, up by its pitch, cyan for a hit and red for a miss. The best take and the latest take share one axis, so they can be compared; a song never played prints the reason instead of an empty frame. |
| On disk | One JSON line per run in history/practice.jsonl inside the settings folder, newest first with a cap, and up to 256 graded notes per run for the ghost; a corrupt line is skipped, not fatal. |
A session
Seeking, changing the mode or a track, and setting an A-B loop never count the skipped notes as misses.
Honest about the staff layer
It is a reading layer, not a full engraving: each new staff carries one voice, several voices on one staff are not drawn yet, and slurs or articulations are not read from the score itself. Notes are placed by pitch, the hand split decides the staff, and a note never moves down when its pitch goes up.
Every practice feature is in the same free download as the concert visuals.