Standard audio compression (LA-2A, not MP3) algorithm

Started by Pat Farrell October 14, 2005
This may be a FAQ, but I don't see one, and you guys seem pretty smart.

Is there a standard algorithm for doing audio compression in a DSP context?
I mean the type of compression that recording studios and radio stations
used to use a Universal LA2A or Universal Audio 1176LN. While these
are typically thought of as compression (making the loud ampliture software)
they usually work by making the loud sounds software, and then using
make-up gain to restore the overall level. This means they really
make soft sounds louder and loud sounds stay the same.

Perferably simple and in the time domain. Seems like a natural for
a look ahead algorithm.

It also seems that the naive algorithm, roughtly:
look at the signal over some small look ahead window, if the absolute
value of the signal exceeds some threshold, multiply all values from the
current zero crossing to the max by .9 (or 0.8 or whatever).
would do bad things to signals other than the one you are trying to
compress (say a soft higher frequency signal over a loud low Hz signal)


all single band compressors apply the same gain change to all signal

so called multi-band compressors can apply individual gain changes to
individual frequency bands.. i.e. there may be one compressor for the
bass, one for the mid and one for the treble and they work together...

the classic LA2A is a single band compressor

The art in the design of a compressor involves the tuning of the time
constants for the speed of the gain reduction and the speed of the gain
increases.... and the transfer function of the gain changes vs input