I'm interested in programming a music visualizer in Python.
The first problem is how to get the information from the music? Like volume, frequency, rpm, etc. And from where? From the soundcard or the actual music file?
My guess is from the soundcard, but how do I access the soundcard and the wanted information? Preferably in a platform-independed way(Linux is a must). I already read a bit about fourier transformation, but I'm not sure if that's the best way to go.
I thought about using OpenGL for the visualization, but I'm still open for suggestions.
I've already looked at those wikipages, but didn't find an answer yet:
http://wiki.python.org/moin/Audio/
http://wiki.python.org/moin/PythonInMusic
If you are looking for a cross-platform audio library I strongly suggest to use FMOD which just rocks. There is also a wrapper to use it in python available (though I've never used it).
It will provide features like getting the spectrum out-of-the-box.
If you want to analyze audio file, my algorithme de choix is the beat spectrum. It computes a similarity matrix by comparing each short sample of the music with every others. Once the similarity matrix is computed it is possible to get average similarity between every samples pairs {S(T);S(T+1)} for each time interval T: this is the beat spectrum.
It allows to get the BPM of your audio sequence, but can do much more like identifying different parts of the music, locate transitions between similar samples. I do not know what you mean exactly by "visualizing audio", but I think this algorithm should provide you with enough information to start synchronizing image to the audio (if that's what you want to do).