This is an old hobby of mine from university. I'm trying to identify at least one note from a guitar solo over time from a recording. Using FFTs and spectral analysis I assume something is rougly possible. By using some knoweldge about "expected" frequencies and some statistics.
It's also a good way to learn pylab some more (matplotlib/numpy) and get used to using it for numerical work in combination with Sage. The idea/work that I did to remind myself of the interest in this is: http://goo.gl/RtWhn
Use audiolab to read in ogg files to a numpy array. Then plot specgram.
http://matplotlib.sourceforge.net/api/mlab_api.html#matplotlib.mlab.specgram http://www.ar.media.kyoto-u.ac.jp/members/david/softwares/audiolab/sphinx/index.html
The specgram plot will return a tuple consiting of "periodograms", the frequency bins and the time axis data for the plot. Within the lab session the individual PSDs can be plotted for example:
Sample matches tab at section starting line 699.