我在 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/