This is the patient ear training buddy you've always wanted. It's a web app that can play notes, intervals and chords randomly or diatonically. Available live here.
Choose how many notes you'd like to hear played at once by clicking 1, 2, 3 or 4.
- With 1 note you can test your relative pitch by comparing the played note to the reference note.
- With 2 notes you can test your interval recognition. For more of a challenge play the reference note and try to identify the interval pitches. In diatonic mode, Buddy will play both random notes from the major key of the reference note.
- With 3 notes you can try recognizing major, minor, diminished or augmented triads. For more of a challenge name the root of the chord or try to hear the relationship of the reference note within the played chord, ie, A would be a 6th in F Major.
- With 4 notes you can try recognizing chords like major 7, minor 7th, dominant, major 6th, minor major and half-diminished.
Some extra options exist for making the exercise harder or easier:
- In Diatonic mode the random notes or chords will be taken from the major key of the reference note.
- Make reference note part of chord option will 'pivot' the 3 or 4 note chord around the reference note. If A is the reference note, Buddy might play an F Major chord because A is the 3rd of that chord. Buddy won't play an E flat Major because that chord does not contain A.
- With Open voicings checked, Buddy will play the 3 and 4 note chords with an open piano voicing, spreading the notes over the keyboard for a more realistic playing style.
The following keyboard shortcuts are provided to speed up the exercise:
- A Play reference note
- R Play a random note, interval or chord
- H Play the interval or chord melodically. Plays slower each time it's pressed.
- SPACE Show the answer
The sounds are real piano samples from the University of Iowa Musical Instrument Samples available in the Public Domain.
In non-production mode the site runs from index.js
using JS modules provided by import
and export
statements. Run locally by starting a webserver in the home directory.
In production mode the site uses bundle.js
. Run npm run build
to build the bundle file with webpack.
Tests are written in Jasmine and run in the browser at /tests
.