It’s time to level up my envelope follower, compressor, ballistics etc game.
Seems most digital envelope followers have a “flicker” around the threshold which is dependent on the current attack and release settings. ex: you send a -6dB constant gain into an envelope follower, and you get a “flicker” in the output as the sine cycles up and down and enters / exists the release stage. The shorter the release time is, the larger this flicker is.
Is anyone aware of any papers, research, concepts which address this problem? Do I need to change the follower to work on some sort of constant time? Is there some awesome hold logic which i’m missing? Perhaps there’s some magical paper out there which has researched all of these?
That’s just kinda what a compressor does. I think anything you do to remove that property will ultimately come across in other areas, which may not sound pleasant. However, you can apply a hold, sure, or you could stack multiple followers in series, which creates an s curve which is a quasi-hold. You could also play around with looking at something like crest factor so you can selectively do this on more steady state signals and let transients hit the full speed followers.
I recommend starting with all the papers Massberg has touched, that should leave you with the basic ideas at play.
Most envelope followers are ultimately lowpasses, so once the release settles, you’re left with a lowpass response. To get no flicker, this response should have zero amplitude at any component of the input above DC, which is not practically possible. A longer release lowers the filter’s cutoff, which helps as you see. It also helps to raise the filter’s order. With a decoupled structure as described by Massberg et al, you can use a (non resonant, q=1/2) 2nd order lowpass for attack, which will give you a 3rd order release.