0

Now this may be due to me running Mojave 10.14.6 on an early 2015 MacBook pro, but for what it's worth, here is what I observed when setting kAudioUnitSubType_MatrixReverb values using AudioUnitSetParameter( _mixerUnit, parameter, kAudioUnitScope_Global, 0, value, 0 ) where 'parameter' is one of:

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 acts as though it was really MinDelayTime. RandomizeReflections acts as though it was really DecayTime, and it accepts floats, not ints. Perhaps the parameter values were changed internally without updating the enum?

Pierre Dufresne
  • 166
  • 1
  • 6

1 Answers1

0

kReverb2Param_ is used for AudioUnitSubType Reverb2, not the MatrixReverb.

You can try setting the following parameters:

// 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,
};
Suen
  • 1,110
  • 1
  • 7
  • 13