创建数字音频工作站

Jon*_*and 9 c java audio

我正在尝试编写自己的DAW,主要是为了了解如何处理信号以获得效果的数学,同时也是为了好玩.(这是一项相当大的工作,但我现在有时间).我希望它能像Propellerhead的Record一样工作,特别是在机架上.

我在Mac上运行,所以我正在考虑将音频单元用于不同的部件,然后使用Core Audio作为脚手架部件.所以,整个事情都是用C或Obj-C编写的.

但是,之前我没有使用音频单元或Core-Audio,互联网也没有任何学习帮助.

有谁知道我在哪里可以了解这些?或者Java(我唯一能够使用的其他语言)会更好,或者在尝试找到"简单"的方法时,我是否完全错过了什么?

谢谢,乔恩

jus*_*tin 10

如果你想写一个DAW:

  • 至少,在现有项目中弄湿你的脚.如果我亲自选择一个项目,我会为Ardor做出贡献.

  • DAW中的信号处理相对简单.你将不得不使用混音器,文件和图形.如果你已经习惯于编写应用程序,那么你可能不会学到太多东西(除了基础知识).当然,您可以找到一个现有项目并使用与您想要学习的内容相关的功能进行扩展; 你可以为它编写插件或可视化.

如果喜欢使用信号处理:

  • AU或VST插件将是一个很好的介绍 - 您可以参考许多现有项目.最终,你会厌倦等待主机加载来测试你的程序.

语言:

  • objc不能用于实时音频渲染.

  • java对于这个应用程序非常不寻常.实际上有AU和CoreAudio的包装器......但是不能为OS X命名一个商业Java AU.

  • 大多数音频商店(我所知道)都在使用C++ - 而不是C.(硬件不同).这似乎是你的清单中的一个奇怪的遗漏 - 大多数DAW和插件使用C++,这是你发现最多的例子.如果你已经习惯了C和Java,我建议你来看看使用C++,因为这是针对桌面时业界的标准语言.


小智 5

看看跨平台的C++库JUCE,它是开源的,可以选择许可代码(价格还不错).很多专业的DAW和VST开发人员都使用它,我就是其中之一.

https://www.juce.com/

警告,这个图书馆很有趣.它重新唤起了我对C++的兴趣,这不是一件小事.