Filter parameters that app users can understand?

I apologize if this is obvious, but can someone please explain how to translate the available AudioUnit effects parameter options so that they will make sense to me, and the average app user/musician? The delay options are pretty obvious, but within reverb, what exactly is DecayTimeAtNyquist? Which parameters affect the damping and room size? In distortion, aside from the FinalMix (wet/dry) parameter, what's the difference between Decimation, Rounding, SoftClipGain, PolynomialMix, and all of the term shapes? Do I just decide which parameters will ultimately make up the "Gain" and "Tone" parameters?

I guess, I can make UISliders for every effects parameter and simply experiment by trial and error, but I'd like to present parameters options with descriptive names that we're used to seeing.

For example, here are the parameter options for distortion and reverb units, taken from AudioUnitParameters.h:

// Parameters for the Distortion unit 
enum {
        // Global, Milliseconds, 0.1 -> 500, 0.1
    kDistortionParam_Delay = 0,
        // Global, Rate, 0.1 -> 50, 1.0
    kDistortionParam_Decay = 1,
        // Global, Percent, 0 -> 100, 50
    kDistortionParam_DelayMix = 2,
        // Global, Percent, 0 -> 100
    kDistortionParam_Decimation = 3,
        // Global, Percent, 0 -> 100, 0
    kDistortionParam_Rounding = 4,
        // Global, Percent, 0 -> 100, 50
    kDistortionParam_DecimationMix = 5,
        // Global, Linear Gain, 0 -> 1, 1
    kDistortionParam_LinearTerm = 6,  
        // Global, Linear Gain, 0 -> 20, 0
    kDistortionParam_SquaredTerm = 7,   
        // Global, Linear Gain, 0 -> 20, 0
    kDistortionParam_CubicTerm = 8,  
        // Global, Percent, 0 -> 100, 50
    kDistortionParam_PolynomialMix = 9,
        // Global, Hertz, 0.5 -> 8000, 100
    kDistortionParam_RingModFreq1 = 10,
        // Global, Hertz, 0.5 -> 8000, 100
    kDistortionParam_RingModFreq2 = 11,
        // Global, Percent, 0 -> 100, 50
    kDistortionParam_RingModBalance = 12,
        // Global, Percent, 0 -> 100, 0
    kDistortionParam_RingModMix = 13,
        // Global, dB, -80 -> 20, -6
    kDistortionParam_SoftClipGain = 14,
        // Global, Percent, 0 -> 100, 50
    kDistortionParam_FinalMix = 15

// Parameters for the iOS reverb unit
enum {
        // Global, CrossFade, 0->100, 100
    kReverb2Param_DryWetMix                         = 0,
        // Global, Decibels, -20->20, 0
    kReverb2Param_Gain                              = 1,
        // Global, Secs, 0.0001->1.0, 0.008
    kReverb2Param_MinDelayTime                      = 2,
        // Global, Secs, 0.0001->1.0, 0.050
    kReverb2Param_MaxDelayTime                      = 3,
        // Global, Secs, 0.001->20.0, 1.0
    kReverb2Param_DecayTimeAt0Hz                    = 4,
        // Global, Secs, 0.001->20.0, 0.5
    kReverb2Param_DecayTimeAtNyquist                = 5,
        // Global, Integer, 1->1000
    kReverb2Param_RandomizeReflections              = 6,

Thanks in advance for your help and time!


  • edited August 2015

    Good timing - I believe Alejandro Santander is planning on addressing this soon with some wrapper AEAudioUnitFilter classes, one for each of Apple's effect audio units.

  • edited August 2015

    ...And until then, check out Which, now I think of it, should probably be in the main repo, and save Alejandro the work, cos these are great =)

  • @Michael, I'm already aware of these excellent DETAAEFilters that I mentioned here:

    My question wasn't about implementation, but what each of the effects parameters actually do or mean, with a clear description.

    For example, if my app were to have a reverb UISlider with a label that says, "Decay Time At Nyquist," will most users know how that affects the reverb sound? It's not as clear as "Room size," "Reflection," or "Damping."

    Thanks in advance. I hope that this makes sense.

  • @Michael, perhaps, I misunderstood your response. Are you saying that Alejandro Santander will address the descriptions for the filter effects, and what their parameters mean?

    I guess my confusion also has to do with not knowing who Alejandro Santander is. Is he a contributor to TAAE?

  • edited August 2015

    Correct on both counts - but you can grab DETAAEFilters right now, which should help. Admittedly, it doesn't really explain what all the parameters are, but it gives much easier access to them. Apple's documentation is pretty light on detail, but you can take a look at their headers for some of the details.

  • edited August 2015

    Thanks for the clarification, @Michael. I'm looking forward to understanding what all of the parameters mean. As a guitarist, I grew up wiith the basic distortion settings that usually included gain, master volume, tone, bass, mid, treble, and presence. With apps such as Bias, Caramel, AltiSpace, and AUFX:Space, do those developers have access to other effects parameters, or are they just creative with combining the same confusing AEAudioUnitFilter effects parameters that Apple provides?

    For instance, there isn't a parameter for ping pong delay, chorus, or flange rate/depth. I'm sure that writing deep effects apps isn't easy, but are there additional parameters in Apple's AEAudioUnitFilters that aren't as obvious as kDistortionParam... Or kReverb2Param, etc?

    Thanks again for all of your help and expertise.

  • Those apps don't actually make heavy use of Apple's audio units, but do their own filtering, either directly or through libraries like libpd. Some you can accomplish with the units Apple provides, but it's a pretty limited set.

  • Thanks for the info, Michael. That makes sense. I was going to say, that the Apple AudioUnitFilters seemed a bit limiting!

Sign In or Register to comment.