7 votes

Comment définir le niveau et la durée de la réverbération sur kAudioUnitSubType_Reverb2

J'ai réussi à ajouter une unité de réverbération à mon graphique, plus ou moins comme ça :

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

AUGraphAddNode(
                              processingGraph,
                              &auEffectUnitDescription,
                              &auEffectNode), 

Maintenant, comment puis-je changer certains des paramètres de l'unité de réverbération ? J'aimerais changer le ratio wet/dry, et réduire le temps de déclin.

15voto

Art Gillespie Points 6139

Tout d'abord, vous devez obtenir une référence à l'unité audio de réverbération réelle :

AudioUnit reverbAU = NULL;

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

Maintenant que vous avez l'unité audio, vous pouvez définir des paramètres, comme par exemple

// 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);

Vous pouvez trouver les paramètres de l'unité de réverbération (et de toutes les unités audio fournies par Apple) dans AudioUnit/AudioUnitParameters.h (L'enum param Reverb est à la ligne 521)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X