I was pondering this for a personal project. I chose Python as the language, and there are a variety of libraries I could use.
The goal is to have the app read in a music file (probably in WAV format) and do a continual Fast Fourier Transform on it to extract the individual notes as they change. If it's western style music, and I gave it a meter, it could print out the chord changes.
Thoughts, anyone?