Most interval training tools play two notes in isolation and ask you to identify the gap between them. But music educators point out that in real music, you never hear an interval without key context — there's always a tonal center anchoring your ear. The research on effective ear training emphasizes learning scale degrees within a key, often with a drone note to establish that tonal reference point. This project was built to fill that gap: a focused, free, browser-based tool that teaches intervals the way you'll actually hear them.
What is it?
Interval Drill generates random melodic intervals within a chosen key and scale, plays them with an optional root drone, and challenges you to identify the interval. It provides reference songs for each interval, tracks your score and streak, and lets you practice in ascending, descending, or mixed directions across any of the 12 keys with major or natural minor scales.
How does it work?
Interval Generation: Two random scale degrees are chosen from your selected key and scale. The semitone distance determines the interval quality (e.g., M3, P5, m7).
Audio Synthesis: Uses the Web Audio API with triangle oscillators for clear, clean tones. The drone is a sine wave one octave below the root, played at lower volume.
Piano Visualization: A scrollable keyboard shows the two active notes in real time, helping connect the sound to a visual reference.
Scoring: Tracks correct answers, streaks, and overall accuracy. Data persists in your browser via localStorage.
How to use it
Choose your key and scale in the settings panel.
Toggle the drone on or off — starting with the drone helps establish the tonal center.
Set direction (ascending, descending, or both) based on your comfort level.
Press the big ▶ button (or hit Space) to play the interval.
Click the interval name you think it is. The correct answer is highlighted green, wrong answers red.
Press Next (or Enter) to try another interval.
Use number keys 1 through 9 to quickly select answers.
Check the reference song shown after each answer to build associations.