我正在为Windows音频构建一些压缩接口,我想知道是否有人可能知道一些提示/技巧?我想建立自己的软件均衡器,它将与整个Windows音频系统一起工作,而不仅仅是一个特定的程序。我知道这可以做到 - 我的声卡有一个内置,但没有足够的渠道来满足我的口味。
我对音频编程完全陌生,但我真的很想闯入它并弄脏我的手。如果你能想到任何教程/参考文章/文章/建议,我很乐意听到它们!
我正在使用Visual Studio C ++ 2008。
答案 0 :(得分:8)
如果您想要掌握DSP的东西,我建议从VST编程开始。编写插件是一种很好的方式来处理实时音频操作,而不必担心连接到系统硬件,驱动程序等。基本上,顺控程序会为您处理所有这些,并且您的插件只接收带有浮点数据的缓冲区,您可以直接操作它。
总的来说,这比尝试编写插件来处理通过系统音频流的数据要容易得多。此外,Windows音频API自Vista以来发生了重大变化,根据您使用的Windows版本,您必须遵循不同的惯例才能使您的工作正常运行。答案 1 :(得分:6)
以下是一些对我非常有用的链接:
演示组Farbrausch articles的Tammo Hinrichs“kb”关于音频节目。 还有一个Tammo举办的研讨会视频here。
Jari Kleimola硕士论文"Design and Implementation of a Software Sound Synthesizer"。 超过100页有关音频节目的内容。
The Synthesis ToolKit in C++。 在大学开发的高级音频工具包。 该工具包的主要作者是Perry Cook,他还撰写了一本书:“用于交互式应用程序的真实声音合成”。
答案 2 :(得分:4)
尝试使用musicdsp存档获取音频效果的一些优秀示例代码。 KvR developer forum也是一个很好的地方,可以帮助你写一般的VST和效果。
对于Windows音频API,有很多。支持最广泛的被称为WinMM。最新最好的是Vista引入的新WASAPI界面。
最后,要实现系统范围的均衡器效果,您可能需要查看较低级别的接口,例如sAPO
答案 3 :(得分:2)
温和的VST编程介绍是SynthEdit ... www.synthedit.com,它提供了拖放编程环境,可以编写自己的C ++插件。您可以使用拖放操作执行'枯燥'位(GUI设计),使用C ++中的'有趣'算法位。
答案 4 :(得分:1)
您可能需要查看DirectSound,但请记住,它很快将被XAudio2取代 - 可能在Windows 7中。我认为DirectSound将继续受到支持一段时间以来它已经存在了很长时间。