首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从哪里开始在iPhone上进行音频合成

从哪里开始在iPhone上进行音频合成
EN

Stack Overflow用户
提问于 2010-01-15 04:16:10
回答 7查看 11.9K关注 0票数 17

我想为iPhone做一个合成器。我知道可以在iPhone上使用定制的音频单元。乍一看,这听起来很有希望,因为有很多音频单元编程资源可用。然而,在iPhone上使用自定义音频单元似乎有点棘手(参见:http://lists.apple.com/archives/Coreaudio-api/2008/Nov/msg00262.html)

这似乎是很多人必须要做的事情,但在谷歌上简单地搜索"iphone音频合成“并不能找到任何类似于简单的教程或推荐工具包的东西。

那么,这里有人有在iPhone上合成声音的经验吗?自定义音频单元是可行的吗,还是有其他更简单的方法值得我考虑?

EN

回答 7

Stack Overflow用户

发布于 2011-02-25 00:58:42

自从近一年前我最初的帖子以来,我已经走了很长一段路。经过相当详尽的搜索,我找到了非常少的适合于iOS开发的高级综合工具。有很多是GPL许可的,但是GPL许可的限制太多了,让我觉得使用起来很不舒服。LibPD工作得很好,也是rjdj使用的,但我发现自己对图形化编程范例真的很失望。JSyn的基于c语言的引擎csyn是一种选择,但它需要许可,而且我真的习惯于使用开源工具进行编程。不过,它看起来确实值得一看。

最后,我使用STK作为我的基本框架。STK是一个非常低级的工具,需要大量的缓冲级编程才能正常工作。这与PD或SuperCollider等更高级别的功能形成了鲜明对比,后者允许您简单地将单元生成器连接在一起,而无需担心处理原始音频数据。

以这种方式使用STK肯定比使用高级工具慢一点,但我逐渐习惯了它。尤其是现在,我对C/C++编程越来越熟悉了。

有一个新的项目正在进行中,它将为Open Frameworks创建一个补丁风格的插件。我想它叫Cleo,来自温哥华大学。它还没有发布,但它看起来很好地混合了C++中单元生成器的补丁风格的连接,而不需要使用另一种语言。它与开放框架紧密集成,这取决于它是否吸引人。

因此,要回答我最初的问题,首先需要学习如何写入输出缓冲区。下面是一些很好的示例代码:

http://atastypixel.com/blog/using-remoteio-audio-unit/

然后,您需要进行一些合成来生成音频数据。如果你喜欢打补丁,我会毫不犹豫地推荐libpd。它似乎工作得很好,你可以按照你习惯的方式工作。如果你讨厌图形化的补丁(像我一样),你现在最好的起点可能是STK。如果STK和低级音频编程似乎有点超出了您的理解(就像我一样),那就卷起袖子,搭起帐篷,开始一段漫长的学习曲线吧。最终,你会成为一个更好的程序员。

另一个我希望一年前就能给自己的建议是:加入苹果的核心音频邮件列表。

============== 2014编辑===========

我现在正在使用(并积极贡献) Tonic音频合成库。这太棒了,如果我自己不这么说的话。

票数 16
EN

Stack Overflow用户

发布于 2011-02-23 13:32:13

尽管我还没有看完所有的文档或浏览完一些类/示例代码,但看起来斯坦福的CCRMA的好朋友们可能已经为了我们的音频黑客乐趣而把一些很好的工具包放在一起了。不能保证它们会做你想要的,但根据我对原始STK的了解,它们应该能做到这一点。我即将开始自己开发一个音频合成应用程序,我可以重用的代码越多越好。

来自他们网站的链接/描述...

MoMu:MoMu是一个轻量级的软件工具包,用于在移动设备上创建乐器和体验,目前支持iPhone平台(iPhone,iPad,iPod Touches)。MoMu为实时全双工音频、加速计、位置、多点触控、联网(通过OpenSoundControl)、图形和实用程序提供应用编程接口。(呀)

·和·

MoMu STK:合成工具包的MoMu版本是STK4.4.2的轻微修改版本,目前支持iPhone平台(iPhone、iPad、iPod Touches)。

票数 3
EN

Stack Overflow用户

发布于 2011-02-27 06:12:48

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2067267

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档