我正在尝试编写自己的 DAW,主要是为了了解如何处理信号以获得效果的数学知识,但也是为了好玩。 (一项相当大的任务,但我现在有时间)。我想让它像 Propellerhead's Record 这样工作尤其是在机架中。
我在 Mac 上运行,所以我正在考虑为不同的部分使用音频单元,然后为脚手架部分使用核心音频。所以,整个事情将用 C 或 Obj-C 编写。
但是,我以前没有使用过 Audio Units 或 Core-Audio,互联网对学习也没有任何帮助。
有人知道我在哪里可以了解这些吗? 还是 Java(我觉得使用起来舒服的唯一其他语言)会更好,还是我在尝试找到“简单”的方法时完全错过了什么?
谢谢, 乔恩
最佳答案
如果你想写一个DAW:
至少,先尝试一个现有项目。如果让我个人选择一个项目,我会为 Ardour 做出贡献。
DAW 中的信号处理相对简单。您必须使用混音器、文件和图形。如果您已经习惯于编写应用程序,那么您可能不会学到太多东西(除了基础知识)。当然,您可以找到一个现有的项目并使用与您想要学习的内容相关的功能对其进行扩展;你可以为它编写插件或可视化。
如果喜欢信号处理:
- AU 或 VST 插件将是一个很好的介绍 - 您可以引用许多现有项目。最终,您会厌倦等待主机加载来测试您的程序。
语言:
objc 不可用于实时音频渲染。
java 对于这个应用程序来说非常不寻常。实际上有 AU 和 CoreAudio 的包装器...但不能说出一个用于 OS X 的商业 Java AU。
大多数音频商店(据我所知)都在使用 C++,而不是 C。(硬件不同)。这似乎真的是您列表中的一个奇怪的遗漏 - 大多数 DAW 和插件使用 C++,这是您可以找到最多示例的语言。如果您已经熟悉 C 和 Java,我建议您接受使用 C++,因为这是面向桌面的行业标准语言。
关于java - 创建数字音频工作站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4870740/