https://github.com/pianosnake/ear-training-buddy
Ear training with real piano sounds
https://github.com/pianosnake/ear-training-buddy
chords ear-training intervals music-theory web-audio-api
Last synced: 11 months ago
JSON representation
Ear training with real piano sounds
- Host: GitHub
- URL: https://github.com/pianosnake/ear-training-buddy
- Owner: pianosnake
- Created: 2018-01-27T22:25:13.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2018-11-29T03:11:18.000Z (over 7 years ago)
- Last Synced: 2025-04-23T14:02:19.125Z (about 1 year ago)
- Topics: chords, ear-training, intervals, music-theory, web-audio-api
- Language: JavaScript
- Homepage: https://pianosnake.github.io/ear-training-buddy/index.html
- Size: 5.63 MB
- Stars: 4
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Ear Training Buddy
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](https://pianosnake.github.io/ear-training-buddy/index.html).
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](http://theremin.music.uiowa.edu/MIS.html) available in the Public Domain.
## Developing
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`.