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

标签 ios audio audiounit

我已经成功地在我的图表中添加了一个混响单元,或多或少像这样:

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

AUGraphAddNode(
                              processingGraph,
                              &auEffectUnitDescription,
                              &auEffectNode), 

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

最佳答案

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

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 提供的音频单元)的参数(混响参数枚举位于第 521 行)

关于ios - 如何在 kAudioUnitSubType_Reverb2 上设置混响级别和时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9520337/

相关文章:

ios - Swift - 导入 Objective-C 给出 "Unknown type name"

ios - 如何获取两个 SKSpriteNode 对象之间的距离以用于势场算法?

ios - 不遵守自动布局底部间距约束

ios - 将 AVAudioEngine 的输出重定向到 AUv3 中的渲染 block

iphone - iPhone 实时音频循环切换

iphone - 在 iPhone 模拟器上调用 AudioUnit 渲染回调,但在手机上不调用

ios - 如果设备旋转,EasyPeasy (NSLayoutConstraint) 不会更改自定义 View 框架

wpf - WPF MediaKit音频问题

jquery - html5 音频播放器 - jquery 切换点击播放/暂停?

ios - iOS Web应用程序上的HTML5音频