AudioUnitSetParameter диапазон фактических значений параметров реверберации - PullRequest
0 голосов
/ 18 июня 2020

Это может быть связано с тем, что я запустил Mojave 10.14.6 на MacBook Pro в начале 2015 года, но что бы это ни стоило, вот что я наблюдал при установке значений kAudioUnitSubType_MatrixReverb с использованием AudioUnitSetParameter (_mixerUnit , параметр, kAudioUnitScope_Global, 0, значение, 0) где 'параметр' - одно из:

parameter            supposed       actual
kReverb2Param_    range of values   range
   +
DryWetMix             0..100       0..100    works as expected
Gain                -20..20        step function: muted if <= 0, otherwise full volume.
MinDelayTime          0..1         0..0.119  crashes if maximum exceeded
MaxDelayTime          0..1         0..0.228  crashes if maximum exceeded
DecayTimeAt0Hz        0..20        0..0.5    no effect if > 0.5
DecayTimeAtNyquist    0..20        no discernible effect
RandomizeReflections  1..1000(int) 0..2(float) 

DecayTimeAt0Hz действует так, как если бы это было действительно MinDelayTime. RandomizeReflections действует так, как будто это действительно DecayTime, и принимает числа с плавающей запятой, а не целые числа. Возможно, значения параметров были изменены внутри без обновления перечисления?

1 Ответ

0 голосов
/ 06 августа 2020

kReverb2Param_ используется для AudioUnitSubType Reverb2, а не для MatrixReverb.

Вы можете попробовать установить следующие параметры:

// Parameters for the AUMatrixReverb unit
CF_ENUM(AudioUnitParameterID) {
        // Global, EqPow CrossFade, 0->100, 100
    kReverbParam_DryWetMix                          = 0,
        
        // Global, EqPow CrossFade, 0->100, 50
    kReverbParam_SmallLargeMix                      = 1,
        
        // Global, Secs, 0.005->0.020, 0.06
    kReverbParam_SmallSize                          = 2,
        
        // Global, Secs, 0.4->10.0, 3.07
    kReverbParam_LargeSize                          = 3,
        
        // Global, Secs, 0.001->0.03, 0.025
    kReverbParam_PreDelay                           = 4,
        
        // Global, Secs, 0.001->0.1, 0.035
    kReverbParam_LargeDelay                         = 5,
        
        // Global, Genr, 0->1, 0.28
    kReverbParam_SmallDensity                       = 6,
        
        // Global, Genr, 0->1, 0.82
    kReverbParam_LargeDensity                       = 7,
        
        // Global, Genr, 0->1, 0.3
    kReverbParam_LargeDelayRange                    = 8,
        
        // Global, Genr, 0.1->1, 0.96
    kReverbParam_SmallBrightness                    = 9,
        
        // Global, Genr, 0.1->1, 0.49
    kReverbParam_LargeBrightness                    = 10,

        // Global, Genr, 0->1 0.5
    kReverbParam_SmallDelayRange                    = 11,

        // Global, Hz, 0.001->2.0, 1.0
    kReverbParam_ModulationRate                     = 12,

        // Global, Genr, 0.0 -> 1.0, 0.2
    kReverbParam_ModulationDepth                    = 13,
};
...