I've written a little app for practicing reading for the guitar - and for a few other stringed instruments. Its here:
The basic idea is it generates random notes on the staff, and you click on the fretboard to match those notes. As you match each note, it disappears and you get more random notes.
Its primarily made to be used on a phone, and its easiest to use with a touchscreen device. Good for those times you're on the bus or waiting in line someplace - you can get in a little reading practice on some part of the fretboard that needs work.
The interface is fairly simple, but if you dig in to the settings there are a number of features you might like.
- fret range
- there's a long fretboard where you can select a range of frets to work on. Click on the short fretboard to match the notes on the staff.
- pitch detection
, so that you can read using your instrument rather than clicking on the screen. The audio input only works in chrome, and I've only had it work well on computers as opposed to phones.
. You can load musicxml files and read notes from them instead of random notes. Only single notes though - the works best with violin parts, or single note etudes, that kind of thing.
. There is a min and max step size. If min=max=1, then you're always going up or down one step in the scale. If min = 0 and max = 12, then you can have up to 12 note skips in the scale - over an octave if you're using a major scale. Bigger skips are harder. It might be interesting to set it to only 3rds, or 3rd and 4ths.
- key signatures
. All the circle of 5ths ones - up to 6 sharps or flats.
Those are the highlights. There are some limitations!
- Only one note at a time for pitch detection. Pitch detection for more than one note is, as far as I know, still an area of research. Algorithms for this aren't publicly available.
- Only one note at a time is used in musicxml. So while the score may contain chords, only the top note will be shown in the app.
- No sense of time. All notes are whole notes. Right now the app is only for learning where the pitches are, not learning rhythms.
Lastly, all the settings are encoded in the URL of the app. So if you configure it a certain way and want to return to that later, bookmark the url.