Hi! Has anyone gotten to play around with the AEDynamicsProcessorModule or the underlying audio unit? The documentation is a little confusing, and I'd love some help clarifying its behavior. For example, increasing the expansionRatio seems to behave as if increasing the compression ratio, though I see no way to actually set the compression ratio. Perhaps
expansionRatio is what they're calling compression ratio? But if that's the case it doesn't quite make sense to have a threshold and an expansion threshold?
Additionally, what's the right way to read the compressionAmount consistently? Like if I wanted to draw a gain reduction meter in my app or at least print out the values to the console. Definitely don't want to be doing this in the render block, but where then is the right place to consistently read?
Hey @ncthom91 - excellent questions! TAAE just exposes Apple's own audio units, so the place to look is in Apple's documentation.
Here's a video about the same audio unit, but with a user interface in GarageBand:
Googling will show you more. e.g. http://testtone.com/developers/apple/au-dynamics-processor
Very helpful, thank you @Michael. I haven't seen a compressor's compression ratio specified via headroom in that way before, so it was rather confusing without the explanation.
Perhaps unrelated, but a quick follow up question: What do you suppose the best way to apply automation curves to these parameters? My best guess so far is to create a custom AEModule that wraps the compressor, with a processFunction implementation which essentially calls AEModuleProcess with the compressor but only after updating the parameters of the compressor to fit the automation.
That! What you said - that sounds right
One detail: you'll need to use the AudioUnitSetParameter/etc calls directly, so it's realtime safe.