Keys
Learn music by playing it.
A music theory app where you never pick the answer off a list. You play it, on a MIDI keyboard, on your computer keys, or on the piano on screen. Twelve levels of lessons, ten games and drills, and a falling-note player for real songs. It runs in a browser, keeps everything on your own machine, and needs no account.
Interactive Keys prototype
Welcome!
Let's make some music today. Keep up the rhythm!
Your Lessons
See All βΊ
The Map of the KeyboardTheory & Fundamentals0% Complete
The Seven LettersTheory & Fundamentals0% Complete
The Black KeysTheory & Fundamentals0% CompleteGames
Click through the rail on the left. Games β Note Rush is the real thing, playable.
Lesson plans
Twelve levels, starting at Foundations and running through Scales, Keys and the Circle, Intervals, Chords, Harmony, Rhythm, and reading on the staff. Every lesson is a short run of explore, play it, check, so you are at the keyboard within a screen or two of any new idea. Levels unlock in order, and a placement test skips you past what you already know.
Games + practice
Ten of them, in two shapes. Four drills are one task each: Scale Run, Key Hunt, Staff Dash, Echo Key. Six longer challenges go further: Note Rush, Scale Sprint, Rhythm Repeater, Chord Recall, Chord Builder Pro, Pitch Recall. Every one runs as Practice with the helper on, or as Score attack with a clock, three lives, and a personal best. A spaced repetition engine decides what comes back and when.
Song playback and practice
Drop in a MIDI file and the piece becomes a falling-note highway over a labeled keyboard. Learn mode waits for you at every note, Practice grades you in time, and Listen plays the piece back. You can loop a bar, slow the tempo down, and take one hand at a time.
Daily Pop
Three questions a day, drawn from theory, ear, and play. The difficulty moves with your accuracy: three days at the easy tier moves you up to hard, staying accurate there moves you up again, and two failed days step you back down. Miss a day entirely and your tier holds where it was.