Thursday 6 December 2012

Compression-102: Loudness Wars And Extreme Compression

Compression 102, how do we  boost loudness via dynamic range compression to catch people's attention. 

This is not about making audio sound better; it is about making it sound more striking. It is about capturing people's attention and hooking them into a radio program, or the background in a music store. It is about making sales of music, or in advert breaks. This is a fascinating area, though it is important to realise that we are not attempting to make stuff sound better in a classic sense, just louder.

Here is the video - I have put the compression patch used at the bottom of this post:

http://youtu.be/l_75rzdaxkg


Remember! This code is AGPL 3.0



"temp/step-1.wav" ReadFile ^left ^right
{
    (
        (?signal Reverse,1,50)Follow Reverse,
        (?signal        ,1,50)Follow,
    )Mix !shape    
    (?shape,(2,?shape MaxValue)/)NumericVolume   !shape
    (0.04,>shape)DirectMix Clip                  !shape
    (>signal,?shape)Multiply Normalise           !signal
    
    (
        (?signal Normalise,25,25)Follow,
        (?signal Normalise Reverse,25,25)Follow Reverse,
    )Mix !shape
    (?shape,(1,?shape MaxValue)/)NumericVolume !shape
    (0.3,>shape dbs+24)DirectMix               !shape
    (
        >signal,
        >shape 
    )Divide Normalise !signal 
}!envelope-compress

(?left ,2000,6)BesselHighPass         !signal-h 
(?left ,2000,6)BesselLowPass          !signal 
(>signal,150,1,3)RBJPeaking           !signal
?envelope-compress Invoke
(
    (30 Silence,(>signal dbs+6 WaveLimit,2000,6)BesselLowPass)Concatenate,
    >signal-h dbs+6 WaveLimit 
)Mix Normalise dbs+3 WaveLimit !left-new


(?right,2000,6)BesselHighPass         !signal-h 
(?right,2000,6)BesselLowPass          !signal 
(>signal,150,1,3)RBJPeaking           !signal
?envelope-compress Invoke
(
    (30 Silence,(>signal dbs+6 WaveLimit,2000,6)BesselLowPass)Concatenate,
    >signal-h dbs+6 WaveLimit
)Mix Normalise  dbs+3 WaveLimit !right-new

((>left-new,>right-new)StereoMonitor,"temp/tone.wav")WriteFile32

No comments:

Post a Comment