Found this in my wanderings today… PianoHero and it’s Sourceforge project page. Looks like it’s a step in the right direction towards the Sheet Music Hero program I described earlier. Where PianoHero appears to fall down compared to my requirements are:
- Is for Piano, not Guitar (duh)
- Uses Midi input for grading (I don’t have a midi guitar)
- Uses “Piano Roll” rather than actual sheet music (I need to learn the notes)
It is interesting to see someone else’s take on the problem. It looks like my revised feature set is the following (keep in mind, this is still all theoretical on my end):
- Play Midi files
This appears to be the quickest way to get up and running with a decent base of music. There’s lots of Midi libraries around and the python ones I’ve seen look pretty decent.
- Record audio input
By doing a record of the session, it’s pretty easy to do stuff like mix a Midi playback with the user-recording and let the user pick out where they made mistakes. This also opens up the door to offline scoring, etc. and gives you a fairly neat archive of whatever you played to stick on blog or whatever.
- Playback against Midi
As above. In my case it’s to check how I’m doing with the help of a computer. Unfortunately, realtime scoring a-la Guitar Hero would be exceptionally difficult in an uncontrolled environment (beyond my audio processing abilities for sure), but letting my ears do the job that’s tough for a computer is an easy first compromise to make.
I’ve poked at a bit of python code on my end, tried to learn a bit of wxWidgets, but it boils down to free time… either I can spend it practicing guitar or I can spend it writing a program that I might eventually be able to use to practice the guitar.