[PD] Building a compressor in PD?

Andy Farnell padawan12 at obiwannabe.co.uk
Wed Nov 28 16:34:49 CET 2007

On Wed, 28 Nov 2007 02:10:42 +0100
Roman Haefeli <reduzierer at yahoo.de> wrote:

> hm.. don't quite know, how to answer this, i'd say yes and no. basically
> 'waveshaping' means adding non-linear distortions to a signal, a
> process, which enriches the frequency spectrum of the signal (->
> spectrum is altered). the goal of all dynamic processing fx as gates,
> compressors, limters, expanders is to only affect the dynamics of the
> signal, but not the spectrum. but yeah, they are somehow related: if you
> use very insane settings for a compressor, let's say 0ms for attack and
> decay, then you have actually a waveshaper. 

You can hear this when applying a traditional compressor to low frequency
sounds like electric bass and 808 kick drum where the wavelength of the
signal is comparable with the compressor changes. Each cycle gets treated
as if it were a separate event. Where compressor and waveshaper diverge is
at Gabor period, 20ms (50Hz), it's no coincidence that where perception
of frequency vanishes at the lower bound perception of amplitude picks up.

> let's say you use very small
> values but not 0, then it is actually not exactly a waveshaper anymore,
> althouth the spectrum might still be altered. a waveshaper uses table
> look-up, so each input value has its corresponding output value, but a
> compressor with very short attack and decay is more kind of an 'adaptive
> waveshaper' (i am not that much an expert, so this term might not make
> any sense). 
> however, what happens is more complex, because the current
> output value is not only dependent on the actual input value, but also
> on previous input values (and also if we are actually in 'attack' state
> or 'release' state).

I suppose, technically, you could say it has become a filter since the
current instantaneous output depends on the average of previous input values.

There are really two kinds of compressor. Feed forward compression places
the averaging function parallel with the signal path and modifies the output
gain. Look-ahead compression delays the signal path and calculates the gain
reduction in anticipation. Each has its merits. The "attack" control on a
traditional compressor actually does the opposite of what some people expect,
it holds off the gain reduction to allow the initial transient through. That's
desirable in mixing where you want to change the perception of loudness
without needing a limiter since the apparent loudenss is a function of both
amplitude and time - so you reduce the "body" of the sound while allowing
the subtleties of the attack to come through and leave it clearly defined
in the mix -  good examples of use are for guitar, bass and drums. 
A feed forward method is superior here because we don't mess with the
timing, which is what we want for percussive sounds. The other kind of use
is averaging the overall level, as in vocal passages, in which case a look
ahead compressor is better. Legato sounds like vocals and strings are less
sensitive to being shifted a few milliseconds back but the levelling process
benefits greatly from having a small amount of the signal to anticipate.


Use the source

More information about the Pd-list mailing list