views:

252

answers:

2

Is it possible to capture all the sound from a computer and have it pass through a equalizer before reaching the speakers?

How can you program a band pass filter on it?

EDIT: I'm trying to get this on Windows (with Python? heh) but if there is a generic, cross-platform approach that would be great.

+1  A: 

On the GNU/Linux platform with a real time pre-emption enabled Kernel, you have the JACK Audio Connection Kit. Put simply, JACK allows you to connect JACK-aware audio programs such that you could capture all the sound from your computer.

You would then pass this captured sound into another JACK audio program which hosts your equalizer plugin. The equalizer plugin, in Linux at least, will be either a LADSPA plugin, or, LADSPA's successor plugin standard LV2.

You can program a band pass filter if you have a very very very good grasp of very high level mathematics (IMHO) and excellent knowledge of Digital Signal Processing in general. If you don't have these skills I would strongly discourage you against coding a band pass filter, and to just use one of the many freely available implementations.

http://jackaudio.org

http://ladspa.org

http://lv2plug.in

see also:

http://musicdsp.org

James Morris
+1  A: 

You can implement an equalizer either using discrete bandpass filters or you can do it in the frequency domain (FFT -> equalize -> IFFT). For bandpass filters you can either combine a lowpass and a highpass filter or you can use one of various common designs, such as a damped resonator.

How you actually implement the above will depend on what OS, programming language, etc, you are using.

Paul R