19

我正在寻找为 Windows 音频构建一些压缩接口,我想知道是否有人可能知道一些提示/技巧?我想构建我自己的软件均衡器,它将与整个 Windows 音频系统一起工作,而不仅仅是一个特定的程序。我知道这是可以做到的——我的声卡内置了一个,但没有足够的频道满足我的口味。

我对音频编程完全陌生,但我真的很想闯入它并弄脏我的手。如果您能想到任何教程/参考/文章/建议,我很想听听!

我正在使用 Visual Studio C++ 2008。

4

5 回答 5

8

如果你想接触 DSP 的东西,我建议你从 VST 编程开始。编写插件是一种很好的方式来处理实时音频操作,而不必担心连接到系统硬件、驱动程序等。基本上,定序器会为您处理所有这些,并且您的插件只接收一个带有浮点数据的缓冲区,您可以直接对其进行操作。

总的来说,这比尝试编写一个插件来操作通过系统音频流的数据要容易得多。此外,Windows 音频 API 自 Vista 以来发生了显着变化,并且根据您使用的 Windows 版本,您必须遵循不同的约定才能使您的东西正常工作。

但再次——从简单开始。获取VST SDK,查看一些教程,然后从小步骤开始。:)

于 2009-02-16T15:30:20.010 回答
6

以下是一些对我非常有用的链接:

  1. Tammo Hinrichs "kb" 的演示组 Farbrausch关于音频编程的文章。还有一段 Tammo 在这里举办的研讨会的视频。

  2. Jari Kleimola 硕士论文“软件声音合成器的设计与实现”。超过 100 页有关音频编程的内容。

  3. C++ 中的综合工具包。大学开发的高级音频工具包。该工具包的主要作者是 Perry Cook,他还写了一本书:“Real Sound Synthesis for Interactive Applications”。

  4. Petter 博士的“基本声音理论与合成”文章。

于 2009-02-17T10:31:37.567 回答
4

尝试使用musicdsp存档以获得一些好的音频效果示例代码。KvR开发者论坛也是获得有关编写 VST 和一般效果的帮助的好地方。

至于 Windows 音频 API,有很多。最广泛支持的称为WinMM。最新和最伟大的是随 Vista 引入的新WASAPI接口。

最后,要实现系统范围的均衡器效果,您可能需要查看较低级别的接口,例如sAPO

于 2009-02-17T10:10:21.843 回答
2

对 VST 编程的一个温和介绍是 SynthEdit... www.synthedit.com,它提供了一个拖放编程环境,可以编写您自己的 C++ 插件。您可以通过拖放来完成“无聊”位(GUI 设计),以及 C++ 中的“有趣”算法位。

于 2009-03-12T08:55:28.760 回答
1

您可能需要看一下DirectSound,但请记住,它很快就会被 XAudio2 取代 - 可能在 Windows 7 中。我认为 DirectSound 将继续支持一段时间,因为它已经存在了很长时间.

于 2009-02-16T15:38:02.533 回答