He logrado agregar una unidad de reverberación a mi gráfico, más o less así:
AudioComponentDescription auEffectUnitDescription; auEffectUnitDescription.componentType = kAudioUnitType_Effect; auEffectUnitDescription.componentSubType = kAudioUnitSubType_Reverb2; auEffectUnitDescription.componentManufacturer = kAudioUnitManufacturer_Apple; AUGraphAddNode( processingGraph, &auEffectUnitDescription, &auEffectNode),
Ahora, ¿cómo puedo cambiar algunos de los parameters en la unidad de reverberación? Me gustaría cambiar la relación mojado / seco y networkingucir el time de caída.
Primero, debe get una reference a la unidad de audio de reverberación real:
AudioUnit reverbAU = NULL; AUGraphNodeInfo(processingGraph, auEffectNode, NULL, &reverbAU);
Ahora que tiene la unidad de audio, puede establecer parameters en ella, como
// 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);
Puede encontrar los parameters para la unidad de reverberación (y todas las unidades de audio suministradas por Apple) en AudioUnit/AudioUnitParameters.h
(Reverb param enum está en la línea 521)