Bandpass filtering and volume monitoring

Feb 10 2009 10:25 PM
I'm trying to write an application that creates 6 bandpass filters at different frequencies and then monitors each of those frequencies for a volume change of a certain amount of decibels (or whatever it would be) and potentially has event handlers for when that happens for each channel.

I'm pretty familiar with c#, but not familiar at all with audio editing. I have been looking at this problem for a while and can't seem to find a decent solution to implement.

This is just for a hobby project, so I don't really mind using something that already exists, I have no need to rewrite something that has already been tested and proven to work. I would however like to understand how whatever I implement works.

I would either like to implement this as an Itunes plugin/visualizer or as a stand alone app that monitors the output of the sound card. The soundcard seems like it would be the best idea since I could use the application with more than just music, but from what I understand it would work by recording really short samples into a buffer and then working with those, which would provide a lag compared to the sound.

If I use Itunes I would be able to be live (visualizers are live, there must be a way for me to do it) but it would only work with itunes sounds.

I'd really like some help coming up with a class that would do some of the audio manipulation for me. Ideally the implementation would be having a class running in my app that monitors the song playing in iTunes or the sound card (if it is live) and I can set the frequencies I want to monitor, and the amount of volume change I want that would trigger the events, then I would just have to write some event handlers that handle each frequency.

I have written a basic Itunes app in c#, so I'm familiar with adding in the libraries and connecting to the information with it, but I haven't done that much in depth with it.