Dynamic Processing Gate
Hi,
I'm looking to make a 'Noise gate' but with a few extra things. It's the type of thing you'd use on live drums in mixing - or whatever - where you, for example with the floor tom, would want to get rid of all everything else in between especially since it's only played rarely, however want to keep a natural sound when played.
So basically a Gate with dB Threshold, and with Attack, Hold and Release times in ms!! (To shape the sound)
So.. where do I start??
P.S. I also want to do it without 3rd party add ons etc.
I've take a look at some patches, some of them use rampsmooth~, some of then line~ etc...
But how could I add a "hold" time in-between the "attack" and "release" time?
Although (depending on your level) maybe a bit too technical, this is a nice reference: https://www.mathworks.com/help/audio/ref/noisegate.html
You could program this in gen~ with codebox . Or use objects such as [average~]/[abs~]/[slide~]/[atodb~]/[dbtoa~]/[<~]. Especially the gain-computer can be done quickly in codebox considering all the if-statements.
average followed by rampsmooth is also my usual "gate" control signal. substract it from 1 and you have the control signal for a noisegate.
hold time is a bit difficult. but one method could be to split up the whole process into decreasing and increasing signals and then scale the decreasing part so that 0.7 equals 1, for example with clip~.
But how could I add a "hold" time in-between the "attack" and "release" time?
if it's an attack (1), passthrough.
if it's a release (0) before the hold time, send a release at hold time.
if it's a release (0) after the hold time, passthrough.
Thanks everyone for your feedbacks. This gave me ideas I need to explore; will let you know if one of these work.
@Timo, that link looks like an awesome ressource but I have no coding knowledge apart from max/masp.