Keystrike: Piano Sight Reading
Music Theory Drills & Practice
Free · In‑App Purchases
Keystrike teaches you to actually read music: a graded piano course that takes you from your first note to real repertoire, with sight-reading drills, ear training and theory exams at every level.
Connect any MIDI keyboard and the score follows your playing in real time — every note you play is read, marked and graded.
Pay once, own it forever. No subscription, no account, no cloud: everything stays on your device.
• A real graded curriculum — structured levels from first key to repertoire; pass exams to move up; honest grading, no participation trophies.
• Sight reading that counts — octave-strict note reading; drills that adapt to what you miss.
• Ear training & theory — intervals, chords, rhythm and theory drills built into the course, not bolted on.
• Your keyboard, not a screen keyboard — works with any MIDI keyboard; the score follows your actual playing.
• Practice Studio — loop practice with Steady and Tempo Climb modes for the hard bars.
• Built for iPad and Mac — full-size scores, real engraved notation.
• Private by design — no account, no cloud, no tracking; progress lives on your device.
• Try everything free for 7 days — then one purchase unlocks it all. Ode to Joy stays free forever.
more What's new in 1.2.5
• The falling notes lost their scenery: as you advanced through the grades, the piece player quietly stripped away the vertical lane guides and the note-name letters. That fade is a lesson feature — less hand-holding as you improve — but it wandered into the concert hall, leaving anonymous blue blocks raining onto a bare stage. The lane guides are back for every piece, at every grade.
• The letters are now yours to choose: a new setting, "Note names on falling notes" (on by default), shows or hides the C-D-E letters when you play pieces. Lessons still fade them on their own as you level up — that part was always intentional.
• The scrolling staff measured its bars with the wrong tempo whenever you slowed a piece down — an operator-precedence bug the compiler was too polite to mention. Bar lines and note shapes now follow the tempo you're actually playing at.
iPad and Mac, in sync.
1.2.5 Jul 11
Fixed a scrolling staff timing bug that could ignore the tempo selected for sight-reading and fallback score views. Bar lines and notehead durations now follow the intended BPM, with safer fallbacks for unusual or imported charts.
1.2.4 Jul 9
What's new in 1.2.3
• Small print, big fix: the whole app has spoken eight languages for months — English, French, German, Spanish, Japanese, Chinese, Hindi and British English — but the App Store only ever admitted to English. Turns out we localized everything except the one line that tells Apple we localized everything. The listing now confesses to all eight.
• Dark mode had a secret invisible-ink feature: save a recording after dark and the save sheet rendered white text on a white card. A bold minimalist choice, a terrible practical one. The ink is visible again.
• Deleting a recording or an imported piece used to be instant and final, like a magic trick where the thing that vanishes is your practice history. Both now stop and ask first.
• The info screens ignored your text-size setting and served everyone the same fixed fonts. They now respect Dynamic Type, so "bigger, please" finally means bigger.
• VoiceOver could see the play button but not press it — the play/pause control was a shape pretending to be a button. It's a real, labelled button now, so VoiceOver can start the recording like everyone else.
iPad and Mac, in sync.
1.2.3 Jul 7
What's new in 1.2.2
• Practice Studio grew up. There are now proper arpeggio drills all the way through Grade 8, and Tempo Climb finally cares whether your rhythm is even — not just whether you hit the notes. You can speed up, but you can't rush.
• Ear training moved into the practice loop, so you can drill your ears in the same place you drill your fingers, instead of hunting for it in a separate corner.
• Made a mess in a piece? Tap the mistake on your results screen and Keystrike builds a drill for exactly that — the missed bar, the wrong note, the rushed run — instead of making you replay the whole thing.
• You can now scrub back through a performance to see precisely where it went sideways, like a replay for your own hands.
• New latency wizard: if your MIDI keyboard or speakers were a hair behind the score, you can now measure and correct the delay in about a minute.
• Recitals end properly. Finish a multi-piece recital and you get a real summary — every piece, its accuracy, and an honest overall grade — instead of the single-piece results screen pretending the other pieces never happened.
• Tapping something locked used to sometimes fling open Settings and leave you to find the right button. Now it opens a focused unlock sheet that actually names what you tapped.
• Sight-reading now draws the key signature at the clef, where it belongs, instead of quietly leaving sharps and flats to your imagination.
• Your MIDI keyboard no longer "vanishes" for a blink when it reconnects — a brief hiccup was enough to make the app think you'd unplugged it.
• The on-screen keyboard and the falling notes now agree on exactly how many keys there are, so notes line up with the key they actually belong to.
• Octave-strict grading now applies to chord inversions too — right notes, right octave, no sneaking a chord an octave off.
• Plus a one-time safety backup before big upgrades, and a long list of small fixes from a thorough shakedown of the whole app.
iPad and Mac, in sync.
1.2.2 Jul 2
What's new in 1.2.1
• The grand piano started sounding like it was playing through a sock. A new acoustic-calibration tool was quietly leaving the audio in microphone mode long after you'd left it, so every note — and the metronome click — came out thin and muffled. The piano is a piano again.
• One-handed practice had a ghost. Practising hands separately produced a faint echo, because two parts of the app were politely playing the same notes at each other. Now only one of them does.
• "Find a C below middle C" accepted exactly one C and rejected all the others. It now accepts any C below middle C, like the words always implied.
• From Grade 3, sight-reading hides the note's letter — you read the staff, not the cheat sheet. It had been peeking in a couple of places it shouldn't.
• The "play with both hands" exercise could be finished with one hand. It no longer takes the shortcut.
• Bach's Minuet in G turned up in Grade 2 — a bit like handing a learner driver a Ferrari. It's moved to Grade 3 where it belongs, and Grade 6 players stop being sent back to beginner pieces.
• The "Up to Speed" badge unlocked in complete silence. It now actually celebrates.
• Find-the-note tests stopped lighting up the answer for you first. Bold, we know.
• A MIDI keyboard chattering in the background ("active sensing") was conjuring phantom notes and breaking exams — those ghosts are filtered out now.
• Plus the chord exercise is finally centred, clearer labels, and a stack of small fixes from a merciless testing session.
iPad and Mac, in sync.
1.2.1 Jun 24
What's new in 1.2.0
• NEW — Practice Studio. Pick one thing — scales, arpeggios, or sight-reading — and drill it on a loop until it's actually yours. There's a Tempo Climb mode that nudges the speed up every time you play it clean and politely holds it when you don't, so you can't outrun your own mistakes. It's the "play the hard bar twenty times" tool the app was missing.
• NEW — Arpeggios. Scales finally have their twin: broken chords in root position and inversions, scored just like scales.
• Plug in and play. Connect a MIDI keyboard and Keystrike now recognises the model and sets the right number of keys for you — no more phantom keys floating off the top of a 61-key board. You can still calibrate by hand, including acoustic pianos, by ear, through the microphone.
• The MIDI connection stopped sulking. It used to go quiet after the keyboard slept or got unplugged and stay quiet until you force-quit. It now reconnects on its own.
• Sight-reading learned what a sharp looks like — black-key notes finally show a sharp sign instead of impersonating a white note on the wrong line.
• Reading now cares about octaves (Grade 1 and up): playing the right note three octaves off used to score 100%. The app was very supportive and completely wrong. Fixed — and it tells you which way to move.
• The iPhone stopped cosplaying as a small iPad in landscape (the whole screen is used now), Free Piano came back from a brief and embarrassing disappearance, and a pile of fixes from a genuinely merciless testing session.
iPad and Mac, in sync.
1.2.0 Jun 22
What's new in 1.1.5
• The sight-reading cursor used to keep sprinting after you'd clearly stopped playing, like an eager metronome with no off switch. It now waits for you. Revolutionary concept, we know.
• Quiet-practice feedback would appear and then just… stay there forever, slowly haunting the corner of your screen. It now actually fades away like a polite ghost.
• Virtuoso-level pieces on older iPads were dropping frames at exactly the dramatic moments. We stopped the screen from rebuilding itself sixty times a second for no reason. Smoother now.
• Note feedback used to rely on red-vs-green alone, which is unhelpful if red and green look the same to you. There's now a shape-and-symbol cue too, so everyone can tell a right note from a wrong one.
• Cranked up the text scaling so larger Dynamic Type sizes no longer clip labels off the edge of the world.
Thanks for practising with us.
1.1.5 Jun 13
Small tune-ups under the hood — smoother playback and a little less fuss while you practice. Thanks for playing.
1.1.4 Jun 11
What's new in 1.1.3
• Your piano no longer falls silent forever after a phone call. Decline the call, keep playing — the keys wake back up now.
• Chords now count every finger, not just the fastest one. Three notes played, three notes scored. We apologise to your left hand.
• Imported pieces in 3/4 are no longer barred like 4/4. Waltzes are waltzes again.
• The metronome drifted ever-so-slightly slow on long pieces. It had one job. Fixed.
• Today's practice minutes now survive a restart — and playing pieces keeps your streak alive, not just finishing lessons.
1.1.3 Jun 10
Behind-the-scenes polish and a tidy-up.
1.1.2 Jun 9
What's new in 1.1.1
• Importing certain MIDI files could send the app into an infinite loop while preparing the score — an exotic time signature made a "measure" zero beats long, and the app diligently tried to lay out an endless number of them. Imports now always finish.
• Looped section practice for lead-sheet pieces stopped counting your correct chords after the first time through the loop. You were playing beautifully and being scored as if you'd wandered off. Loops now credit every pass.
1.1.1 Jun 8
Keystrike now speaks your language — and teaches a little smarter.
• Seven languages: English, German, Spanish, French, Japanese, Simplified Chinese and Hindi — with a System Default option that follows your device.
• A smarter teaching curve: the on-screen note guidance now fades as you climb the grades, and from Grade 6 it steps aside completely so you read from the score like a real musician. Miss a note and we'll still flash the correct key — but we won't hand you the answer before you've tried.
• Lots of small fixes and polish across lessons, reports and the keyboard.
Thank you for practising with Keystrike. Keep those fingers moving.
1.1.0 Jun 7
What's new in 1.0.9
• The Grade 5 chord exam had a hair-trigger. The instant your first finger touched a key it shouted "WRONG" — before your other two fingers had even left the ground. As it happens, a C major chord is quite hard to play one note at a time. It now waits for the whole chord, like a reasonable adult.
• On that same chord screen the keyboard had quietly slid off-centre, as if edging away from the judgement above it. It's back in the middle.
• The chord-progression exam treated holding the previous chord a fraction too long — i.e. playing musically — as a punishable offence. Legato is legal again.
• Opening your results after a lead-sheet jam could crash the app outright. The scorer kept asking for "note number minus one", which, famously, does not exist. We've talked to it.
1.0.9 Jun 3
What's new in 1.0.8
• First lesson now ends with a sound. The orientation curriculum still teaches you to sit and hold a hand shape first — but instead of finishing on a reflection card, you press any key and we tell you what it was. Six minutes of posture text before your first note was the wrong order; this is the right one.
• On Home, a small "Learning what's tricky for you" badge surfaces from session one — so the personalisation signal lands during the trial week instead of waiting until after Grade 0 exam. The richer weak-spot drill card still appears later when there's enough data to make it useful.
• For brand-new students who haven't started a lesson yet, the Home screen now points at "Ode to Joy is in your Pieces tab — no setup, no scoring pressure." A discovery prompt, not a path change. Existing students never see it.
1.0.8 May 12
What's new in 1.0.6
• The Glossary's fingering diagram used to draw a fixed C2–C4 piano regardless of the keyboard you set in Settings. The 25-key crowd kept seeing keys they don't have. The diagram now matches your actual keyboard.
• iPhone Pro Max landscape was being treated like an iPad — sidebar, wide layout, 5-octave keyboard, the works. Turns out Pro Max in landscape lies and says it's "regular width", which fooled the layout into thinking it was on a tablet. We now ask both the width AND the height before unleashing iPad mode. Free piano, lessons, sections, and the keyboard finally fit on iPhone.
1.0.6 May 11
Tuned a few keys. The metronome has agreed to stop arguing with itself.
Sight-reading drills smoother. New songs hummed approvingly during testing.
1.0.3 May 8
What's new in 1.0.2
• Acoustic mode used to award you 0 hits no matter how brilliantly
you played. It was reading the model output's first row correctly
and then helpfully reading 171 rows of padding bytes. Fixed.
• Acoustic mode now shows the engraved score and the practice
controls (tempo, hands, metronome) — turns out reading the music
while playing it is a popular request.
• Imported MIDI scores rendered the noteheads but quietly forgot
the staff lines in light mode. The notes were just floating there
like very confident planets. They have stems and lines again.
• Long imported pieces no longer turn into a slideshow when the
playhead scrolls. Cached a couple of layout reads, capped the
bridge calls at 60 Hz. ProMotion iPads forgive us.
1.0.2 May 6
We taught MIDI imports to keep their rhythm. Dotted notes now arrive actually dotted. Time signatures show up on time.
And if your file is a full jazz quartet, we'll politely ask which channel is the piano instead of guessing.
There's a new "Melody only" switch for the days your right hand wants the spotlight and your left hand needs a break.
Grade exams now run in strict mode — no hints, no second chances, no sympathetic glances from the metronome. You get
the score at the end, like a real exam. Pretend it's the boss fight of music theory.
Beat-clapping had a long talk with the timing engine. Your "almost-on-the-beat" is now officially on-the-beat (±250ms,
up from ±100ms). Generous, but fair.
Imported pieces also look right in dark mode (we asked them nicely), zoom to match the bundled scores, and have a
fallback engraver for when one of the rendering libraries is having a moment.
Happy practising.
1.0.1 May 4
What's new in 1.2.5
• The falling notes lost their scenery: as you advanced through the grades, the piece player quietly stripped away the vertical lane guides and the note-name letters. That fade is a lesson feature — less hand-holding as you improve — but it wandered into the concert hall, leaving anonymous blue blocks raining onto a bare stage. The lane guides are back for every piece, at every grade.
• The letters are now yours to choose: a new setting, "Note names on falling notes" (on by default), shows or hides the C-D-E letters when you play pieces. Lessons still fade them on their own as you level up — that part was always intentional.
• The scrolling staff measured its bars with the wrong tempo whenever you slowed a piece down — an operator-precedence bug the compiler was too polite to mention. Bar lines and note shapes now follow the tempo you're actually playing at.
iPad and Mac, in sync.
more Version 1.2.5 Jul 11
Data Not Collected The developer does not collect any data from this app.