Programm-dependent Attack and Release Time Compressor


I’m new in the Juce forum, so nice to meet you all!

I’m also new in the plugin development world. I work with Juce and Xcode about a month now and after a lot of trials, errors, new knowledge, etc. I was able to build some plugins.

Now I’m at the point that I want to try some new things but I’m a little bit confused. The first was to design a side-chain filter for my compressor which is now completed.

The second is to make the attack and release times program - dependent. By this, I mean that I want my attack and release time values to be controlled by the gain reduction.

Is there any idea or guide about this? I found some very general things that didn’t help. That’s why I’m writing here.

Thank you and nice to meet you again!

There are basically two approaches for this :

  • Modelling the behaviour of auto release / attack in hardware compressors. Basically, instead of having a single lowpass filter to do the envelope detection, I find very often something which looks like two filters in cascade, so that the envelope follows the signal with two different time constants, so the VCA is triggered both by signals with slow variations and fast transients

  • Or the time constants of your attack/release are changed in real time depending on some measurement such as the crest factor (peak - rms) and spectral flux (variation of the signal power)

Have a look there for more information :

Hi IvanC,

Thank you very much for the response and your points on the basic approaches! I was thinking something that is close to the second approach but I wasn’t sure!

The pdf file seems to be helpful from a quick view. I’m going to give it a read and I’ll return if I have more questions.