【发布时间】:2011-01-11 21:52:40
【问题描述】:
如果有人可以发布或指导我了解系统提供的音频单元之一的简单实现,我会很高兴。我希望在 iOS 中使用 AUPitch(iPhone 甚至支持该单元吗?)并且似乎没有任何简单的关于如何使用它的描述。
提前致谢,
mIL3S
【问题讨论】:
标签: iphone objective-c core-audio audiounit
如果有人可以发布或指导我了解系统提供的音频单元之一的简单实现,我会很高兴。我希望在 iOS 中使用 AUPitch(iPhone 甚至支持该单元吗?)并且似乎没有任何简单的关于如何使用它的描述。
提前致谢,
mIL3S
【问题讨论】:
标签: iphone objective-c core-audio audiounit
很遗憾,AUPitch 在 iOS 上不可用。 yoknapatawpha 对Dirac library 的引用很好,但音频单元的实现比贾斯汀的帖子中所假设的要多得多。我推荐以下资源:
如果我要回去从头开始,在我彻底阅读前三个之前,我不会碰任何东西。 Apple 文档可能很难整理,但请阅读此处引用的文档从头到尾。我无法计算对我不起作用的事情的数量,当我意识到我错过了音频单元托管指南中的那个细节时,我只是决定,“哦,我就给这是一个镜头”......请使用这些资源,当您有更多问题时回来!
【讨论】:
我在 Apple 文档(检查 here)中找不到明确的声明,但我很确定 OSX 提供的大多数 AudioUnit 在 iOS 中不可用。 (这个话题也多次出现在 Core Audio 邮件列表中。)
对于 iOS 上的音频移调解决方案,我推荐 Dirac 3 或 Rubber Band 库。
【讨论】:
如果你没有找到样本,使用这个 au 所要做的就是创建一个 au 图形/渲染器,然后添加你想要的 au,设置它的参数,渲染等等......我假设有苹果提供的示例将引导您完成此操作。
从那里:
请参阅您所针对的 sdk 的 AudioUnitParameters.h,以获取系统 AU 的每个参数的文档。
要查找的内容摘录:
// Parameters for the AUBandpass unit
enum {
// Global, Hz, 20->(SampleRate/2), 5000
kBandpassParam_CenterFrequency = 0,
// Global, Cents, 100->12000, 600
kBandpassParam_Bandwidth = 1
};
// Some parameters for the AUGraphicEQ unit
enum {
// Global, Indexed, currently either 10 or 31
kGraphicEQParam_NumberOfBands = 10000
};
// Parameters for the AUHipass unit
enum {
// Global, Hz, 10->(SampleRate/2), 6900
kHipassParam_CutoffFrequency = 0,
// Global, dB, -20->40, 0
kHipassParam_Resonance = 1
};
祝你好运
【讨论】: