如何在kAudioUnitSubType_Reverb2上设置混响级别和时间

时间:2012-03-01 16:45:02

标签: ios audio audiounit

我设法在我的图表中添加了一个混响单元,或多或少是这样的:

AudioComponentDescription auEffectUnitDescription;
    auEffectUnitDescription.componentType = kAudioUnitType_Effect;
    auEffectUnitDescription.componentSubType = kAudioUnitSubType_Reverb2;
    auEffectUnitDescription.componentManufacturer = kAudioUnitManufacturer_Apple;

AUGraphAddNode(
                              processingGraph,
                              &auEffectUnitDescription,
                              &auEffectNode), 

现在我如何更改混响单元上的一些参数?我想改变湿/干比率,减少衰减时间。

1 个答案:

答案 0 :(得分:15)

首先,您必须获得对实际混响音频单元的引用:

AudioUnit reverbAU = NULL;

AUGraphNodeInfo(processingGraph, auEffectNode, NULL, &reverbAU);

现在您已拥有音频单元,您可以在其上设置参数,例如

// set the decay time at 0 Hz to 5 seconds
AudioUnitSetParameter(reverbAU, kAudioUnitScope_Global, 0, kReverb2Param_DecayTimeAt0Hz, 5.f, 0);
// set the decay time at Nyquist to 2.5 seconds
AudioUnitSetParameter(reverbAU, kAudioUnitScope_Global, 0, kReverb2Param_DecayTimeAtNyquist, 5.f, 0);

您可以在AudioUnit/AudioUnitParameters.h中找到混响单元(以及所有Apple提供的音频单元)的参数(Reverb param enum位于第521行)