Ear Trainer
Welcome. This is a small app for training your musical ear: hearing the distance between two notes, the quality of a chord, and (eventually) producing those sounds with your own voice. It runs in your web browser, no install needed, and the audio you'll hear is real piano samples.
This guide will walk you through your first session and explain a little music theory along the way. You don't need to read it cover to cover. Skim what you need, skip what you don't.
Quick start (60 seconds)
- Open the app in your web browser. Wait a few seconds for the message "Loading piano samples…" to disappear.
- Make sure your computer's volume is up and your speakers or headphones are working.
- Open the Reference panel first. On Level 1 (the default), you'll see a green ↓ caption that says "New here? Open the Reference section first…" — click that section open. Try clicking a few interval names (Major 3rd, Perfect 5th, Octave) to hear what each one sounds like. This gets your ear oriented before you start being quizzed.
- Now click the green ▶ Play button under the "Guess The Interval" heading. You'll hear two piano notes played one after the other.
- Underneath, you'll see buttons for each interval (Minor 2nd, Major 2nd, Minor 3rd, etc.). Click whichever one you think you heard.
- The app tells you if you were right or wrong. If right, the next question plays automatically. If wrong, listen again with the ↻ Repeat Last button.
That's the basic loop. The rest of this guide explains everything else.
If you see a "Tap any button to start audio" banner
On iPhones, iPads, and some Mac browsers, the audio system stays asleep until you interact with the page. If you press Play before the app has been "woken up," nothing seems to happen — no sound, no feedback. To prevent that confusion, the app shows a prominent banner if it detects that the audio isn't ready: "Tap any button to start audio."
If you see it: just tap or click anywhere on the page (a level tab, the Play button, the Reference panel — anything counts). The banner disappears and audio works normally from then on. This only happens once per session, not before every question.
This is not a bug. It's how Apple's audio rules work — browsers must wait for explicit user interaction before allowing audio playback, to prevent autoplaying ads and other annoyances. The banner is there to tell you what to do rather than leaving you wondering why Play didn't work.
The four levels at a glance
The app is organized into four levels, shown as tabs across the top:
- Level 1 · Intervals — recognizing two-note distances by ear
- Level 2 · Triads — recognizing three-note chords (and their inversions) by ear
- Level 3 · Sing-First — practicing by producing notes with your voice, then verifying with the app
- Level 4 · 7th Chords — recognizing four-note chords (and their inversions) by ear, the harmonic vocabulary of jazz, R&B, and most modern pop
You can move between levels freely. They each have their own score, so working in Level 2 doesn't affect your Level 1 progress, and vice versa. There's no "unlocking" — visit any level whenever you want.
The intended progression is roughly Level 1 → Level 2 → Level 3 → Level 4, but many musicians benefit from doing all of them in any session. Use what serves you.
A little music theory you'll want to know about intervals
If you're new to formal music theory, two concepts will get you through Level 1. If you already know these, skip ahead to Level 1.
Pitch and notes
Music is built from notes — specific pitches like C, D, E, F, G, A, B. After B, the cycle repeats: the next C is called the same name but is one octave higher. A piano keyboard makes this visible — each white key has a name (CDEFGAB), and the pattern repeats up and down the keyboard.
Between most adjacent white keys, there's a black key. Each adjacent pair of keys (white-to-black, or in two places, white-to-white) is called a half step or semitone. The whole keyboard is divided into these equal half steps — twelve of them per octave.
Intervals
An interval is the distance between two notes, measured in half steps. Some have evocative names; some are just numbered:
- Minor 2nd — 1 half step. Jaws theme. Tense, neighboring.
- Major 2nd — 2 half steps. The first two notes of "Happy Birthday."
- Minor 3rd — 3 half steps. The first two notes of "Greensleeves."
- Major 3rd — 4 half steps. The first two notes of "When the Saints Go Marching In." Bright, open.
- Perfect 4th — 5 half steps. "Here Comes the Bride." Stable.
- Tritone — 6 half steps. "Maria" from West Side Story. Tense.
- Perfect 5th — 7 half steps. The Star Wars theme opening. Strong, consonant.
- Minor 6th — 8 half steps. "The Entertainer."
- Major 6th — 9 half steps. "My Bonnie Lies Over the Ocean."
- Minor 7th — 10 half steps. "There's a Place for Us" from West Side Story.
- Major 7th — 11 half steps. The opening of "Take On Me" by A-ha (the falsetto leap).
- Octave — 12 half steps. "Somewhere Over the Rainbow." Same note, higher.
Hearing which interval is which is what Level 1 trains.
Some other ways you might see these notated
The names above are the conventions this app uses. In real-world sheet music, lead sheets, and theory textbooks, you'll occasionally see the same intervals labeled differently. The Tritone in particular has a long history of being called many things:
- Tritone is also called the Augmented 4th (when you reach it by sharpening a Perfect 4th) or the Diminished 5th (when you reach it by flattening a Perfect 5th). They sound identical — same six half steps — but composers and theorists pick the spelling that fits the key they're in. Jazz musicians often shorten these to "♭5" (flat five) or "♯4" (sharp four).
- You may also hear the Tritone called the Devil's Interval or diabolus in musica. The nickname comes from medieval music theory, where its restless, unresolved sound was considered so unsettling that it was avoided in sacred composition. It's safe to use now.
- Some textbooks use the term "second" generally to mean any 2-note distance (and similarly for thirds, fourths, etc.) and rely on "major / minor / perfect / augmented / diminished" qualifiers to specify which one. The names this app uses ("Minor 2nd," "Perfect 4th," etc.) are this same convention, written out fully.
Level 1 · Intervals
What it teaches
Recognizing intervals by ear — the foundational ear training skill. Most other skills (melody dictation, chord recognition, transcription, improvisation) build on this.
Layout
From top to bottom, Level 1 is laid out like this:
- A MODE row — Melodic vs. Harmonic.
- An INTERVAL DIRECTION row — Ascending / Descending / Mixed (only used in melodic mode).
- An italic green ↓ caption pointing at the next section, especially helpful on your first visit.
- The Reference panel — closed by default, click to open. Lets you hear any interval on demand without being quizzed. Use it for learning sounds before you test yourself on them.
- The quiz itself, under the heading Guess The Interval: the green Play button, the answer buttons, the score.
- An Interval Quiz Choices panel at the bottom — opens to let you toggle which intervals appear in the quiz.
The loop
- Press ▶ Play. Two notes play.
- Click one of the answer buttons (Minor 2nd, Major 2nd, etc.).
- Right? It auto-advances to a new question after about a second. Wrong? It tells you what it actually was, and waits for you to continue.
- ↻ Repeat Last plays the most recent interval again. Especially useful after a wrong answer, when you now know what to listen for.
- Skip → generates a new question without grading the current one.
- Reveal Answer plays the correct interval and flashes its name green. Use this when you've genuinely tried and just can't get it — better to learn what it was than be stuck. It counts as a wrong answer in the score (since you didn't really get it right by revealing). New in v0.10.0.
The two playback modes
Selected from the MODE row at the top:
- Melodic — the two notes play one after the other (like a melody). Easier to identify because you hear the distance directly.
- Harmonic — the two notes play at the same time. Harder, because your ear hears the combined sound, not the distance.
Start with melodic. Move to harmonic once you're scoring well.
Direction (melodic only)
From the INTERVAL DIRECTION row, when in melodic mode:
- Ascending — second note is higher than the first
- Descending — second note is lower than the first
- Mixed — randomized for each question
Descending is harder than ascending for most people. Worth practicing both. Mixed is the realistic test once you're confident in each separately.
Settings: Interval Quiz Choices
At the bottom of Level 1, there's a panel called "Interval Quiz Choices." Open it to see a row of small buttons (called "chips" in the app) — one for each interval. Toggle them on or off to control which intervals appear in the quiz.
Recommended starting pool: just Perfect 5th, Major 3rd, Minor 3rd, and Octave. These four are the most distinct and the easiest to learn. Once you can distinguish them reliably (say, 8 out of 10 right), add the next set: Perfect 4th and Major 6th. Build up gradually. Trying to learn all 12 at once is a recipe for frustration.
The Reference panel
This panel sits above the quiz, with a green ↓ caption drawing attention to it on first visit. Open it and click any interval to hear it. The Reference is for learning the sound of an interval, separate from the quiz — no scoring, no time pressure.
The Reference panel has two main controls:
- Root: Fixed or Random. Fixed (the default) gives you a chooser to pick the starting note (C, C♯, D, etc.) — C4 is selected to start. Random plays each interval from a different starting note. Try Fixed = C, then click Major 3rd, then Perfect 4th, then Tritone — you'll hear how each interval relates to the same starting point. Switch to Random when you want variety.
- Spacing slider. Controls the time between the two notes in melodic playback. Default is 1.5 seconds. Slower (try 3+ seconds) gives you time to internalize the first note before the second arrives.
Keyboard shortcuts on Level 1
Space (Play), R (Repeat Last), S (Skip), A (Reveal Answer), 1–9 (pick the Nth answer). See the consolidated Keyboard shortcuts section below for all levels in one place.
A little music theory you'll want to know about triads
Before Level 2 quizzes you on triads, here's what they actually are — and how the four qualities differ in sound.
What's a triad?
A triad is a three-note chord built by stacking two intervals above a root note. Almost all "chords" in popular music start life as triads — even when extra notes get layered on later, the triad is the foundation.
The four triad qualities the app quizzes you on:
- Major triad — bright, "happy" sound. Root + 4 half steps + 3 half steps. (Think: the chord at the end of every Disney movie.)
- Minor triad — darker, "sad" sound. Root + 3 half steps + 4 half steps. (Think: most film scores when something serious is happening.)
- Diminished triad — tense, unresolved. Root + 3 half steps + 3 half steps. Wants to move somewhere.
- Augmented triad — dreamlike, suspended, slightly unstable. Root + 4 half steps + 4 half steps. (Think: the middle of "Oh! Darling" by the Beatles.)
Inversions
The same three notes of a triad can be arranged with any of them on the bottom. Take a C major triad — C, E, G. The three arrangements:
- Root position — C is on the bottom: C-E-G.
- 1st inversion — E (the third) is on the bottom: E-G-C.
- 2nd inversion — G (the fifth) is on the bottom: G-C-E.
It's still the "same chord" — but each inversion has a different sound character. Inversions are how composers create smooth voice leading between chords, and how bassists make a progression feel like it's moving rather than jumping. Hearing which inversion is being played is part of what Level 2 trains.
Some other ways you might see these notated
- Diminished triad is sometimes written with a small circle: C° or Cdim.
- Augmented triad is sometimes written with a plus sign: C+ or Caug.
- Inversions are sometimes written as slash chords — "C/E" means a C major chord with E in the bass (first inversion). "C/G" means C major with G in the bass (second inversion). This is the convention you'll see most often in pop and jazz lead sheets.
Level 2 · Triads
What it teaches
Recognizing the quality of a triad (major / minor / diminished / augmented) and which inversion it's in. This is the foundation for hearing chord progressions in real music.
Layout
Same general shape as Level 1, with chord-specific labels:
- MODE row — Blocked vs. Arpeggiated.
- ARPEGGIO DIRECTION row — Ascending / Descending / Mixed (only used in arpeggiated mode).
- The green ↓ "New here?" caption.
- The Reference panel — opens to let you hear any triad on demand.
- The quiz, under the heading Guess The Triad: Play button, Chord Quality row, Chord Inversion row, Submit button, score.
- Triad Quiz Choices panel at the bottom.
The loop
- Press ▶ Play. Three notes play (either at once or in sequence).
- Pick a chord quality from the Chord Quality row.
- Pick an inversion from the Chord Inversion row.
- Click Submit Answer (or press Enter).
- The app tells you if you got it right. If you got part of it right (quality but not inversion, or vice versa), it'll tell you which.
You can change your picks before submitting. Clear Picks resets both selections. Reveal Answer (new in v0.10.0) plays the correct triad and highlights both axes — counts as a wrong answer in your score, but lets you learn from a question that's stumping you.
The two playback modes
- Blocked — all three notes at the same time, like a held chord. This is how you usually encounter chords in real music.
- Arpeggiated — the notes play one at a time, bottom to top (or top to bottom, depending on direction setting). This makes inversions easier to hear because you can clearly identify the bottom note.
Most people find arpeggiated easier for inversions and blocked easier for quality. Switch between them depending on what you're working on.
Direction (arpeggiated only)
Same options as Level 1 — Ascending, Descending, Mixed. In blocked mode, direction is meaningless and the controls are dimmed.
The Triad Quiz Choices panel
At the bottom of Level 2, this panel (formerly called "Triad Focus") has two sets of toggleable chips:
- Chord quality: Major, Minor, Diminished, Augmented. Diminished and Augmented are off by default — they're harder, so you can opt in when ready.
- Chord inversion: Root position, 1st inversion, 2nd inversion.
This is your practice focus tool. Want to drill just major vs minor in root position? Turn off everything else. Want to focus on identifying inversions of a specific quality? Same idea — narrow the pool.
The Reference panel
Same idea as Level 1's Reference, sitting above the quiz, but with one button per combination of quality and inversion (so 6 buttons with just major/minor, 12 if all four qualities are on). Click any to hear that specific voicing. The same Fixed/Random root control is here, with Fixed at C4 by default.
Keyboard shortcuts on Level 2
Space (Play), R (Repeat Last), S (Skip), A (Reveal Answer), Enter (Submit Answer). See the consolidated Keyboard shortcuts section below for all levels in one place.
Level 3 · Sing-First
What it teaches
Producing intervals and chord tones with your voice. This is a fundamentally different skill than recognition — and it's how working musicians (singers especially, but also instrumentalists) develop deep internalization of musical sounds. If you can sing it, you really know it.
Layout
Level 3 has a different shape from Levels 1 and 2 because the workflow is different — there's no recognition quiz, just structured singing practice. From top to bottom:
- A MODE row — Intervals vs. Triads. (No direction control on Level 3 — singing direction doesn't really apply.)
- The practice area, under the heading Practice: target display, countdown, Play Root and rating buttons.
- A Target picker (open by default) — pick what interval or triad you're working on.
- A Practice settings panel — voice range, wait timer, continuous-practice toggle.
There's no Reference panel on Level 3 — the Target picker plays a similar role, but it's required (you can't practice without picking something) rather than exploratory.
The loop
- Pick a target — for example, "Perfect 5th" — from the practice settings panel below.
- Press ▶ Play Root. You'll hear one piano note. That's your reference root.
- A countdown begins (default 5 seconds). During the countdown, sing up the interval from the root note. For a Perfect 5th from a root of C, you'd sing up to G.
- When the countdown hits zero, the app plays the actual root + the target note so you can verify whether you sang the right pitch.
- Click ✓ Got It if you sang it accurately, ✕ Missed It if not. Be honest with yourself; nobody's grading you but you.
- Press ↻ New Root, Same Target to try the same interval from a different starting note.
Why this matters
The recognition skill (Levels 1 and 2) trains your ear to receive. Sing-first trains your ear to generate. Most professional musicians will tell you that being able to produce an interval on demand is the deeper skill. It's how you internalize that "Perfect 5th" isn't just a label but a felt sound you can summon.
The two content modes
At the top of Level 3, choose:
- Intervals — sing one note up from the root.
- Triads — sing the three chord tones up from the root, in sequence (root, third, fifth). The app verifies by playing the arpeggiated triad.
Practice settings
- Voice range — pick from Bass, Tenor, Alto, Soprano. This sets the range of root notes the app will pick, so the notes stay in your comfortable singing range. If you're not sure, start with Tenor (mid-range) and adjust if notes feel too high or too low.
- Wait timer — how long the countdown is, from 1 to 15 seconds. Default is 5. Most singers want between 3 and 8. Beginners often benefit from longer (8+ seconds) to give themselves time to find the pitch carefully. Advanced singers can drill faster (2–3 seconds).
- Continuous practice — when on, after you self-rate, a new root plays automatically. Great for getting into a flow state and drilling the same interval across many keys quickly. Turn off when you want to think between attempts.
Tips for sing-first practice
- Pick one target and stay with it for a while. Sing 10 or 20 Perfect 5ths in a row across different roots before switching. Repetition is what builds the internalization.
- Don't worry about being "in tune" with the piano exactly. Get in the right pitch range. Approximate is fine; you'll refine over time.
- If you can't hear yourself well, use headphones with one ear off, or sing louder. Some people benefit from cupping a hand to one ear.
- Honest self-rating matters more than getting "Got It" a lot. Marking yourself "Missed It" when you actually missed is part of the training — it tells you which intervals need more work.
Keyboard shortcuts on Level 3
Space (Play Root), T (Play Target Now), G (Got It), M (Missed It). See the consolidated Keyboard shortcuts section below for all levels in one place.
A little music theory you'll want to know about sevenths
A seventh chord is a four-note chord — a triad plus one more note stacked on top, a 7th above the root. That fourth note transforms the chord's character, adding color and tension to the simpler triad underneath. Seventh chords are the harmonic vocabulary of jazz, R&B, gospel, modern pop, and almost any music that wants to sound more sophisticated than three chords and a campfire.
The five seventh-chord qualities Level 4 quizzes you on, each with its own emotional flavor:
Major 7th (maj7) 🌅
Formula: Major Triad + Major 7th
- Sound: Dreamy, nostalgic, or peaceful.
- 🔍 Why: It contains a happy major triad, but the top note creates a sharp, sweet bite against the root note.
Minor 7th (min7) 🌙
Formula: Minor Triad + Minor 7th
- Sound: Mellow, moody, or cozy.
- 🔍 Why: It is made entirely of soft, relaxed intervals. There are no harsh edges, making it sound smooth and stable.
Dominant 7th (7) ⚡
Formula: Major Triad + Minor 7th
- Sound: Bluesy, tense, or full of energy.
- 🔍 Why: It mixes a happy major triad with an edgy minor 7th. This combination creates a unique friction that makes the ear want a resolution.
Half-Diminished 7th (m7♭5 or ø7) 🎭
Formula: Diminished Triad + Minor 7th
- Sound: Mysterious, tragic, or suspenseful.
- 🔍 Why: It starts with a tense, shrunk-down diminished triad, but the wider interval on top stretches the sound out, making it feel like it's searching for a home.
Fully Diminished 7th (dim7 or °7) 👻
Formula: Diminished Triad + Diminished 7th
- Sound: Spooky, dramatic, or shocked. Think of a classic cartoon villain or a haunted house.
- 🔍 Why: Every single note inside this chord is stacked exactly the same distance apart (minor 3rds). Because it is perfectly symmetrical, it has no clear anchor point, which makes it sound completely unsettled.
Some other ways you might see these notated
The notations above are the conventions this app uses. In real sheet music, lead sheets, and theory books, you'll see other shorthand:
- Major 7th: also written Cmaj7, CM7, or with a triangle Δ — like CΔ7 or just CΔ.
- Minor 7th: also written Cm7, Cmi7, or C-7 (with a small dash before the 7).
- Dominant 7th: just "C7" with no qualifier — by convention, an unadorned "7" always means dominant.
- Half-Diminished 7th: also written Cm7♭5 (the most common in pop and jazz lead sheets) or Cø7 (with a circle and slash, the classical music convention).
- Fully Diminished 7th: Cdim7 or C°7 (with a small circle, no slash).
You'll get used to the alternate notations the more sheet music you read. The chord itself is the same regardless of how it's spelled.
Inversions of 7th chords
Like triads, seventh chords can be played in inversions — with any of the four notes on the bottom instead of the root. A four-note chord has four positions:
- Root position — the root is on the bottom.
- 1st inversion — the 3rd is on the bottom.
- 2nd inversion — the 5th is on the bottom.
- 3rd inversion — the 7th is on the bottom.
The third inversion (7th on the bottom) gives a particularly unstable, restless sound — the chord is basically standing on its head. Hearing which inversion is being played is part of what Level 4 trains.
Level 4 · 7th Chords
What it teaches
Recognizing the quality of a seventh chord (major 7, minor 7, dominant 7, half-diminished, fully diminished) and which inversion it's in. Seventh chords are the harmonic foundation of jazz, R&B, most modern pop, and a huge amount of classical music. If you can hear sevenths, you can hear almost everything that's happening harmonically in real music.
Layout
Same general shape as Level 2, with seventh-specific labels:
- MODE row — Blocked vs. Arpeggiated.
- ARPEGGIO DIRECTION row — Ascending / Descending / Mixed (only used in arpeggiated mode).
- The green ↓ "New here?" caption.
- The Reference panel — opens to let you hear any seventh chord on demand.
- The quiz, under the heading Guess The 7th Chord: Play button, Chord Quality row, Chord Inversion row, Submit button, score.
- 7th Chord Quiz Choices panel at the bottom — where you choose which qualities, inversions, and voicings appear in the quiz.
The loop
- Press ▶ Play. Four notes play (either at once or in sequence).
- Pick a chord quality from the Chord Quality row.
- Pick an inversion from the Chord Inversion row.
- Click Submit Answer (or press Enter).
- The app tells you if you got it right. If you got part of it right (quality but not inversion, or vice versa), it'll tell you which.
You can change your picks before submitting. Clear Picks resets both selections. Reveal Answer plays the correct seventh chord and highlights both axes — counts as a wrong answer in your score, but lets you learn from a question that's stumping you.
The two playback modes
- Blocked — all four notes at the same time, like a held chord. This is how you usually encounter seventh chords in a piano comping context or a horn section sustain.
- Arpeggiated — the notes play one at a time, in order. Makes inversions easier to identify because you can clearly hear the bottom note. Slower to listen to than triads, since there's one more note to wait for.
Most people find arpeggiated easier for inversions and blocked easier for quality. Use whichever serves what you're practicing.
Direction (arpeggiated only)
Same options as Levels 1 and 2 — Ascending, Descending, Mixed. In blocked mode, the direction controls are dimmed.
The 7th Chord Quiz Choices panel
At the bottom of Level 4, this panel has three sets of toggleable controls:
- Chord quality: Major 7, Minor 7, Dominant 7, Half-Diminished, Fully Diminished. The default starting pool is Major 7 vs. Dominant 7 — the two most common in pop and jazz. Add the others as your ear builds.
- Chord inversion: Root, 1st, 2nd, 3rd. The default pool is Root and 1st only — broaden when ready.
- Voicing: Tight (closed) or Open (a drop-2 voicing where the second-from-top note drops down an octave). Open voicings sound noticeably wider and are how seventh chords are typically voiced in jazz piano comping. Tight is closer to how a horn section might play them.
The Reference panel
Same idea as Levels 1 and 2's Reference, sitting above the quiz. One button per combination of quality and inversion, in the currently-selected voicing. Click any to hear that specific chord. Fixed/Random root works the same way, with Fixed at C4 by default.
Keyboard shortcuts on Level 4
Space (Play), R (Repeat Last), S (Skip), A (Reveal Answer), Enter (Submit Answer). See the consolidated Keyboard shortcuts section below for all levels in one place.
Keyboard shortcuts
Inside the app, there's a Keyboard shortcuts disclosure between the title and the level tabs at the top of the page. Click it to expand. Its contents update automatically when you switch levels — so you only ever see the shortcuts that apply right now. (In earlier versions, each level had its own keyboard-shortcuts panel; v0.9.0 consolidates them into one.)
For reference, here are the shortcut sets for all four levels:
Level 1 · Intervals
- SpacePlay / next question
- RRepeat Last
- SSkip
- AReveal Answer (new in v0.10.0)
- 1, 2, 3…Pick the Nth visible answer button
Level 2 · Triads
- SpacePlay / next question
- RRepeat Last
- SSkip
- AReveal Answer (new in v0.10.0)
- EnterSubmit Answer
Level 3 · Sing-First
- SpacePlay Root
- TPlay Target Now (skip the wait)
- GGot It
- MMissed It
Level 4 · 7th Chords
- SpacePlay / next question
- RRepeat Last
- SSkip
- AReveal Answer (new in v0.10.0)
- EnterSubmit Answer
Screen reader users — see the Accessibility features section below for important notes about putting your screen reader into focus mode before using these shortcuts.
Tips for effective practice
- Short sessions, often. Five to ten minutes daily is far more effective than an hour once a week. Ear training builds slowly and consistently.
- Start narrow. Master a small set of intervals/qualities before expanding. Trying to do everything at once leads to confusion and discouragement.
- Sing what you hear. Even in Level 1, try to sing the second note before clicking your answer. This bridges recognition and production.
- Use the Reference panel deliberately. Before quizzing yourself on a new interval, hear it in the Reference panel a few times. Lock the sound into memory first, then test.
- Mix it up. Don't only practice ascending. Don't only practice blocked chords. Variety builds generalization.
- Track patterns in what you miss. If you keep confusing Major 3rd and Perfect 4th, slow down and isolate just those two for a session.
Accessibility features
The app is built with accessibility as a priority:
- Full keyboard navigation. Every interactive element can be reached with Tab. A visible brass outline shows what's focused.
- Keyboard shortcuts for the most common actions on each level (see the Keyboard shortcuts section above).
- Screen reader support. All controls have descriptive labels. Feedback announcements (correct, wrong, the chord that was played) are announced via ARIA live regions automatically.
- Reduced motion support. If your operating system has "reduce motion" enabled, the app's transitions become near-instant.
- Color is never the only signal. Right and wrong answers have ✓ and ✕ symbols alongside the green/red coloring, so users with color vision differences (or in challenging lighting) still get unambiguous feedback.
- Skip-to-main-content link at the top of the page (visible when Tab-focused) lets keyboard and screen-reader users bypass the header and tabs.
Using a screen reader?
This app uses single-letter shortcuts (R, S, T, G, M, Space) for quick actions. Most screen readers also use these letters to navigate by region, heading, or button. To use the app's shortcuts, switch your screen reader into focus mode (sometimes called forms mode or pass-through mode):
- NVDA
- press
NVDA key + Spaceto toggle focus mode - JAWS
- press
Insert + Zto toggle the virtual cursor off - VoiceOver (Mac)
- press
Control + Option + Shift + Down Arrowto interact with the page - Narrator (Windows)
- press
Caps Lock + Spacebarto toggle scan mode off
When you're done practicing, switch back to your normal browse mode to navigate the rest of the web.
A reminder of this is also available inside the app — there's a "Keyboard shortcuts" disclosure at the top of the page (between the title and the level tabs) that lists the shortcuts for whichever level you're currently on, and includes a brief screen-reader note.
If you find an accessibility issue, please report it — these features have been designed thoughtfully but real-world testing always finds gaps.
Credits and licensing
This app builds on two pieces of free, openly-licensed work by other people. v0.10.0 brings their attribution out of the source code and into the open as it should be.
Salamander Grand Piano V3 · Alexander Holm
The piano sounds you hear are samples from the Salamander Grand Piano V3 by Alexander Holm — recordings of a Yamaha C5 grand piano made with two AKG C414 microphones positioned about 12cm above the strings. The library was originally sampled at every minor third from the lowest A, in 16 velocity layers, and then made freely available under Creative Commons Attribution 3.0 (CC BY 3.0).
The version this app uses is hosted by the Tone.js project in MP3 form for fast browser loading. From v0.10.0, the app loads 30 source samples (every minor third from A0 to C8), matching the recording grid. Earlier versions loaded only 11 samples, which produced subtle pitch-shift artifacts on notes far from a sampled root — feedback from a concert pianist prompted the upgrade.
Tone.js · Yotam Mann
Tone.js is a Web Audio framework created by Yotam Mann that handles loading the piano samples, scheduling notes, managing the audio context across browsers, and a great deal of audio plumbing this app would otherwise have to write from scratch. It's released under the MIT License, which doesn't strictly require visible attribution but it's good manners to give credit where it's due.
About this app
The app itself is by Rick at PostHaste Media — a small, handmade ear training tool for the curious. The code is open and lives at github.com/filmnoises/Ear-Training. Issues and suggestions welcome there.
A final note
Ear training is a slow build. Don't expect to be hearing complex chord qualities perfectly after a week — most musicians take months or years to internalize this stuff deeply. The goal isn't to get a high score; it's to gradually grow a more accurate, more flexible musical ear. Some sessions you'll feel sharp. Others you won't. Both are part of the process.
Have fun with it.