2012-10-18 38 views
5

我正在使用CoreAudio构建MIDI合成器。目前,我有以下的音频图:CoreAudio Audio Graph中的自定义音频效果 - 渲染回调

Sampler -> Reverb -> IO 

我需要添加一个合唱效果,以及图和混响。问题是iPhone上没有合唱效果。为了解决这个问题,我打算实现我自己的合唱效果。为此,我需要访问音频流。

问题是:什么是在音频图形中间访问音频流的最佳方式。

Sampler -> Reverb -> [Custom processing] -> IOUnit 

有没有一种方法可以改变音频流使用像AudioUnitAddRenderNotify回调?或我必须打破这样的音频图:

Sampler -> Reverb -> [AudioUnitAddRenderNotify callback] -> buffer -> [RenderCallback] -> IOUnit 

任何意见,将不胜感激。

回答

2

最简单的方法是将渲染通知回调(AudioUnitAddRenderNotify)添加到您的Reverb节点的AU中,并处理kAudioUnitRenderAction_PostRender调用中的音频。我做了一个实验,只要在AUGraph打开后添加回调,并且在预渲染调用中没有处理完成,就可以开始工作。

+0

这确实奏效。事实证明,您可以使用渲染通知即时修改音频信息。 –