是否可以制作 'aufc' (kAudioUnitType_FormatConverter) 类型的 AUv3 扩展?
Is it possible to make a AUv3 extension of type 'aufc' (kAudioUnitType_FormatConverter)?
我写了一个时间拉伸算法,听起来比 AvAudioUnitTimePitch.
好得多我正在使用 AVAudioEngine,
围绕它制作一个 iOS 应用程序认为我可以将我的算法插入 AUv3 扩展,并简单地替换 AvAudioUnitTimePitch.
然而,阅读文档似乎这种方法可能无法实现,因为时间拉伸不是实时效果,因此 AVAudioUnitTimePitch
属于 'aufc' (kAudioUnitType_FormatConverter).
类型创建自定义音频扩展的文档只提到四种类型,'aufc'不是其中之一,Xcode中的模板只支持这四种类型。
一线希望是,在尝试实例化空白扩展时,我可以设置 componentDescription.componentType = kAudioUnitType_FormatConverter
并且实例化显然是成功的,尽管这可能被证明是死胡同。
有人成功地对 'aufc' 进行了 v3 扩展吗?鉴于我已经围绕 AVAudioEngine,
编写了大量代码,如果 AUv3 扩展不是可行的方法,是否还有其他推荐的方法来做我想做的事情?
经过几天的实验,我发现完全可以自己制作时间伸缩的AUv3 Audio Unit。 AU 负责从上游源拉取帧,指定要拉取的帧数并提供时间戳。
最难弄清楚的是在调用 AUInternalRenderBlock
从上游拉帧时为 mSampleTime
设置正确的 AudioTimeStamp
值。正如文档所述,当时间拉伸时,您从下游收到的时间戳采样时间将毫无意义。
我不认为使用的扩展类型 - 'aufc' 与 'aufx' 会产生任何影响。
我写了一个时间拉伸算法,听起来比 AvAudioUnitTimePitch.
好得多我正在使用 AVAudioEngine,
围绕它制作一个 iOS 应用程序认为我可以将我的算法插入 AUv3 扩展,并简单地替换 AvAudioUnitTimePitch.
然而,阅读文档似乎这种方法可能无法实现,因为时间拉伸不是实时效果,因此 AVAudioUnitTimePitch
属于 'aufc' (kAudioUnitType_FormatConverter).
类型创建自定义音频扩展的文档只提到四种类型,'aufc'不是其中之一,Xcode中的模板只支持这四种类型。
一线希望是,在尝试实例化空白扩展时,我可以设置 componentDescription.componentType = kAudioUnitType_FormatConverter
并且实例化显然是成功的,尽管这可能被证明是死胡同。
有人成功地对 'aufc' 进行了 v3 扩展吗?鉴于我已经围绕 AVAudioEngine,
编写了大量代码,如果 AUv3 扩展不是可行的方法,是否还有其他推荐的方法来做我想做的事情?
经过几天的实验,我发现完全可以自己制作时间伸缩的AUv3 Audio Unit。 AU 负责从上游源拉取帧,指定要拉取的帧数并提供时间戳。
最难弄清楚的是在调用 AUInternalRenderBlock
从上游拉帧时为 mSampleTime
设置正确的 AudioTimeStamp
值。正如文档所述,当时间拉伸时,您从下游收到的时间戳采样时间将毫无意义。
我不认为使用的扩展类型 - 'aufc' 与 'aufx' 会产生任何影响。