I need to create an audio graphic equalizer with the commonly used presets, for an application in Windows. I need to apply the equalization effects globally across all applications in Windows (ex DFX audio enhancer v11.1 applies effects at system level).
Currently I can get to the frames of the system audio using sAPO samples provided by Microsoft. But I need to apply graphic equalization to this.
Does Microsoft provides any API or Sample code for creating graphic equalizer in Windows?
Kindly inform me if there are any other Libraries or Open Source project that I can use for this purpose.
You didn't say whether your sticky point is creating the audio filters or injecting your audio in to the system's audio stream. I can only offer some insight about the filtering part.
In an abstract sense, a graphic equalizer is a set of notch filters, each one tuned to a specific frequency. Center your EQ on 1KHz (1000 Hz) and go up and down in factors of 2. For example: 31, 62, 125, 250, 500, 1000, 2000, 4000, 8000, 16000
The best eq system is a set parametric eq's. A parametric EQ lets you set the specific frequency of each filter, and a good parametric EQ plugin will let you set as many or as few filters as you need.
So what you need to build is a programmable notch filter, then stack them to get as many bands as you need.
I would start by seeing what the open source programs do: Audacity is one: you can explore the equalization and audio filter plugins to see if they meet your requirements.
Some Google searching also turned up this resource: http://music.columbia.edu/cmc/music-dsp/
I hope that helps get you started (at least on the filtering part.) If you figure out how to write a real-time filter that can directly inject itself in to the Windows sound architecture, let us know.