Project
Roulette

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

Track it