Envelope Following

Tyler Nitsch's icon

Since i've seen this topic a million times discussed on this forum and I've been overcome with the urge to discuss it... here it is.

There are so many different ways to create envelope followers in MSP. Slide, rampsmooth, vectral, deltaclip, low pass filters etc. Now I want to here what people have to comment on the affectiveness of using each for a particular application. One thing I've been working on some time is envelope following percusive signals. This requires a signal network that is quick to react to rising signals and slow to decay... the problems I have is trying to get a smooth evelope signal with few discontinuities since a short attack time equates to sudden increases in the envelope when it is decaying. Trying to use a low pass filter to get rid of these bumps ends up affecting the response time... etc. Anywho comments suggestions... would greatly be appreciated.

TodorTodoroff's icon

Hi,
For detection of percussive sounds, you might put the RMS values into a
bucket object and make a test with multiple conditions in the if object on
several past values.
One thing I did successfully was to detect that there is a maximum by
checking that the last value was lower than the previous one, itself higher
than the previous one, itself higher than the previous one, etc. It is your
choice and tweaking to define how many previous values you take into
account, depending on the nature of the percussive signal and on the vector
size.
There is an added latency for waiting one vector after the maximum to make
sure it was a maximum, but if vector size is small, it is not a problem.
And, at least, you are measuring the real maximum level of the impact.
Additional test conditions on absolute and relative thresholds condition
prevent false triggering.

Best,
Todor
>
> Since i've seen this topic a million times discussed on this forum and I've
> been overcome with the urge to discuss it... here it is.
>
> There are so many different ways to create envelope followers in MSP. Slide,
> rampsmooth, vectral, deltaclip, low pass filters etc. Now I want to here what
> people have to comment on the affectiveness of using each for a particular
> application. One thing I've been working on some time is envelope following
> percusive signals. This requires a signal network that is quick to react to
> rising signals and slow to decay... the problems I have is trying to get a
> smooth evelope signal with few discontinuities since a short attack time
> equates to sudden increases in the envelope when it is decaying. Trying to
> use a low pass filter to get rid of these bumps ends up affecting the response
> time... etc. Anywho comments suggestions... would greatly be appreciated.
>
>
>

justin's icon

Quote: Tyler Nitsch wrote on Mon, 05 February 2007 22:26
----------------------------------------------------
> There are so many different ways to create envelope followers in MSP. Slide, rampsmooth, vectral, deltaclip, low pass filters etc. ----------------------------------------------------

i like slide, and rampsmooth especially if you want to smooth out the decay more than the attack - they have independent smooth values, which (IMO) is very useful for percussive sounds.

j

Roman Thilenius's icon
Mattijs's icon

This compressor should be easy to adapt to act like an envelope follower. It uses rampsmooth.

Max Patch
Copy patch and select New From Clipboard in Max.

Cheers,
Mattijs