我知道这是一个非常广泛的话题,但我一直在为演示和我自己的测试而苦苦挣扎,不确定我是否正确地解决了这个问题。因此,任何关于我应该从哪里开始的线索都将不胜感激。
目标是让应用程序根据用户的设置生成一些合成声音。(这不是唯一的应用程序函数,我不打算在这里重新创建Korg,但是synth是其中的一部分。)用户将设置典型的合成器设置,如波形、混响等,然后选择何时播放音符,可能会使用音调和速度修饰符。
我用过一些音频单元和RemoteIO,但我几乎不知道我在做什么。在我走得太远之前,我想知道我是否在正确的范围内。我知道音频合成将是低级别的,但我希望也许有一些更高级别的库,我可以使用。
如果你有任何关于从哪里开始,以及我应该阅读更多关于哪种iOS技术的建议,请告诉我。
谢谢!
编辑:让我更好地总结问题。
有没有已经为iOS构建的synth库?(商业或开源--我在无数次搜索中都没有找到,但也许我错过了。)
是否有更高级别的API可以帮助更容易地生成缓冲区?
假设我已经可以生成缓冲区,有没有比RemoteIO音频单元更好/更简单的方法将这些缓冲区提交到iOS音频设备?
发布于 2012-10-29 07:27:53
这是一个非常好的问题。有时我会问自己同样的问题,最终我总是使用斯坦福大学的人提供的MoMu Toolkit。这个库提供了一个很好的回调函数,可以连接到AudioUnits/AudioToolbox (不确定),所以你所关心的就是设置采样率、缓冲区大小和音频样本的位深度,你可以很容易地在回调函数中合成/处理任何你喜欢的东西。
我也推荐同样由Ge Wang在斯坦福大学发布的Synthesis ToolKit (STK) for iOS。真的很酷的东西来合成/处理音频。
每次苹果发布新的iOS版本时,我都会查看新的文档,以便找到一种更好(或更简单)的音频合成方法,但总是运气不佳。
编辑:我想添加一个到AudioGraph源代码的链接:https://github.com/tkzic/audiograph这是一个非常有趣的应用程序,可以展示AudioUnits的潜力,由Tom Zicarelli开发。代码非常容易理解,也是了解这一点的一个很好的方法--有人会说--在iOS中处理低级音频的复杂过程。
发布于 2015-07-09 05:35:31
发布于 2011-02-02 02:17:40
获取声卡缓冲区的最低级别方法是通过audiounit api,特别是通过remoteIO audiounit。这是一堆胡言乱语,但有一些例子散布在网络上。http://atastypixel.com/blog/using-remoteio-audio-unit/就是其中之一。
我认为还有其他填充缓冲区的方法,可以使用AVFoundation框架,但我从来没有这样做过。
另一种方法是将openframeworks用于所有音频内容,但这也假设您想要在openGL中进行绘图。不过,如果你想用另一种方式进行绘图,删除audiounit实现应该不是太大的问题。这个特殊的实现很好,因为它将所有内容都转换为-1..1浮点数,供您填充。
最后,如果您想要快速启动一组振荡器/滤波器/延迟线,您可以将其连接到openframeworks音频系统(或任何使用-1..1浮点数组的系统),您可能需要查看http://www.maximilian.strangeloop.co.uk。
https://stackoverflow.com/questions/4555332
复制相似问题