2012-03-01 27 views
6

tôi đã quản lý để thêm một đơn vị reverb để đồ thị của tôi, nhiều hơn hoặc ít hơn như vậy:Làm thế nào để thiết lập mức độ reverb và thời gian trên kAudioUnitSubType_Reverb2

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

AUGraphAddNode(
           processingGraph, 
           &auEffectUnitDescription, 
           &auEffectNode), 

Bây giờ làm thế nào tôi có thể thay đổi một số các thông số trên đơn vị reverb? Tôi muốn thay đổi tỷ lệ ướt/khô và giảm thời gian phân rã.

Trả lời

15

Trước tiên, bạn phải có được một tham chiếu đến reverb thực tế Audio Đơn vị:

AudioUnit reverbAU = NULL; 

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

Bây giờ bạn có các đơn vị âm thanh bạn có thể thiết lập các thông số trên đó, giống như

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

Bạn có thể tìm các tham số cho đơn vị reverb (và tất cả các đơn vị âm thanh do Apple cung cấp) trong AudioUnit/AudioUnitParameters.h (Reverb param enum nằm trên dòng 521)

+0

Tuyệt vời. Cảm ơn! – morgancodes

+4

Nếu đó là những gì bạn đang tìm kiếm, tôi có thể gặp rắc rối khi bạn chấp nhận câu trả lời không? Cảm ơn! –

Các vấn đề liên quan