Interval Ear Trainer
It plays two notes; you name the interval.
IntermediateWeb appEducation8–16hAI-buildable 5/5no setupworth shipping
Musical ear training with synthesised tones. Two notes play, you identify the interval, and difficulty adapts to what you keep missing. Generating the tones with the Web Audio API rather than shipping audio files keeps it tiny and makes every key available.
UI
Logic
Useful
Hosting · Free forever
Deploys free on GitHub Pages, Cloudflare Pages or Vercel Hobby.
Deploy it and share a link.
Core features · 7
- Two notes play, either together or in sequence
- Answer buttons for each interval in the selected range
- Immediate feedback with the option to replay the interval
- Tones are synthesised rather than loaded as files
- Intervals you miss appear more often
- Accuracy per interval type is tracked and shown
- Root note randomises so you can't learn absolute pitches
The interesting part
- Oscillator envelopes that don't click at note start and end
- Requiring a user gesture before audio can begin
- Weighting question selection toward weak intervals without becoming repetitive
Once it works
- Add chord quality identification
- Add a melodic dictation mode
- Let the user choose the instrument timbre
Suggested stack
reacttypescripttailwindlocalstorage