For several months, I only implemented a basic attack-release filter in Audio Toolkit (here). But of course, there are filters that have a more custom behavior. The usual additional parameter that can be seen in these filters is called hysteresis.
Let’s get back to the definition of hysteresis first. Actually a simple AR filter already has hysteresis in the conventional sense. The definition of hysteresis shows that there is already an hysteresis there, with the attack and release factors defining its width.
So what is called hysteresis in audio has nothing to do with hysteresis, it’s a way of defining an additional behavior on top of the hysteresis to have an even more non linear behavior.
So now in Audio Toolkit, there is a new AttackReleaseHysteresisFilter in the 0.7.2 release (underway). There are two hysteresis parameters. The release one is the usual that can be found in expanders with hysteresis. It makes the filter stall its output while the new signal is not low enough. As the limit of the signal is 0, there will always be a time where the new signal is lower than the old signal times the hysteresis factor.
I’ve also added a hysteresis factor for attack. I don’t know if there is a plugin using this kind of behavior, but it’s a nice addition. So the attack hysteresis has to be always greater than the release one. If it is greater than 1, then the filter’s output will not approach the input values, but the input values divided by the hysteresis factor. Indeed, the output value can only change if the input signal is greater than the output signal times the attack hysteresis. If the hysteresis is lower than 1, then the output signal will follow the input signal when it starts going down as well. Here is a graph for this:

In this graph, the attack hysteresis can be seen at the top of the sinusoid, and then the release hysteresis kicks in with the plateau. Then the usual release is activated up to the lower part of the green/red curve when the release hysteresis curve is activated again, and then the attack release hysteresis creates the small bump to make the output signal follow the input signal again.
Now it’s time to play with it 😉