Create an Audio Graphic Equalizer for Windows

雨燕双飞 提交于 2019-12-11 07:38:14

问题


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.


回答1:


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.



来源:https://stackoverflow.com/questions/12635346/create-an-audio-graphic-equalizer-for-windows

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!