xcode - 我的自定义音频单元在 AU Lab 中打开,但在 Garageband 或 Ableton 中打不开

标签 xcode plugins core-audio audiounit

我在 Xcode 中创建了一个过滤器 AU 作为我正在使用的信号类的项目,我可以从我的组件文件夹中在 AU Lab 中很好地打开它,但我似乎无法在 DAW 中打开它。谁能帮我弄清楚这件事的真相吗?它可能是 .plist 文件中的设置吗?代码中没有错误,因为 AU 在 AU 实验室中运行得很好。如果有人有想法,我们将不胜感激,我可以提供您可能需要的任何信息。

最佳答案

我进行了评论中提到的调查,因此我现在正在写一个真正的答案。

我证实了我的怀疑。如果您没有遇到 32/64 位构建模式的问题(就像其他人所说的那样),您很可能会遇到与我相同的问题。

GarageBand 和 Mainstage(大概是其他)不会读取 bundle plist 的 AudioComponents 键的键。他们只读取已弃用的蹩脚 Carbon 资源。

我有一个证明(至少在我的系统上:Lion、GarageBand 6.0.5):

  • 我下载的大多数 AU 仅提供 Carbon 资源,并且在其 plist 中没有 AudioComponents 键(因为这是 Lion 之前的方法,只有像我这样的菜鸟忽略了这一事实)
  • 一旦我将 Carbon 资源正确添加到我的设备中,它就开始出现在 GarageBand 和 MainStage 中(youhou!)

如果您从 TremoloUnit 的副本或 Apple 提供的其他一些项目开始您的项目,您必须修复它们,因为它们的项目已经搞砸了。显然,维护它们的那个可怜的灵魂和我一样对 AudioUnit 编程很菜鸟,他相信(就像我一样)那些来自黑暗时代的可怕的 Carbon 东西 现在必须完全被弃用,并且他没有检查他们来自构建阶段。由于生成的 AU 在 AU Lab 中加载良好,并使用 auval 验证罚款,他很高兴并致力于他的工作。

要修复该项目,您必须将资源源文件(以 .r 结尾的文件)添加到构建阶段(它已经在项目中)。如果您从文件检查器中单击它,XCode 会(根据文件扩展名)自行判断您想要构建可怕的 Carbon 资源。 之后,您肯定会遇到模糊的构建失败,因为 Rez 搜索路径 是错误的。您还必须仔细检查 .r 文件是否描述了与您的 AudioComponents 相同的内容,因为 Apple 的示例项目 AUPinkNoise 在该主题上已被破坏(子类型的 4 个字母代码) plist 和 .r 资源源之间不匹配)

恭喜 Apple 构建了一个验证工具,该工具忽略了大多数 Apple 产品当前加载 AudioUnit 的方式。

关于xcode - 我的自定义音频单元在 AU Lab 中打开,但在 Garageband 或 Ableton 中打不开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13650203/

相关文章:

ios - Swift 组合 : How to handle event and continue stream

ios - 禁用导航栏动画

java - 如何在 eclipse 上右键单击 new->MyNewMenu 添加弹出菜单?

plugins - 需要分步说明添加 VideoJs VAST 插件

iphone - 从 AVAsset 中查找 channel 数

swift - 代码。添加到测试目标的图像资源不会复制到测试包中

ios - 重新启动游戏游戏中心

css - ExtJS 4 的 Ext.ux.TDGi.iconMgr

audio - 连接节点上的 AVAudioEngine 崩溃

ios - iOS Audio Calling APP使用Circular Buffer的原因是什么?