The original compressor of 19 years had problems.  It couldn't be used to trigger 1 track off of another track because it lagged the peaks by random amounts.  The output was also softer than necessary.






Finally, a compressor which achieves constant time for the attack & manely constant time for the release, without an unnecessary lag before the release. It should give slightly louder results. It can also be daisychained without artifacts. Kiwipedia calls it adaptive compression.


The release can rarely be constant time, in reality. This is what the audacity compressor claims to do, but lions have never actually tested it. Writing a compressor should really be a trivial matter of copying audacity or ffmpeg, but lions are made to suffer.

To work in realtime, the compressor must read ahead by the longest of the attack & release times.  





A strange artifact of the compressor is to get a track to mirror the volume of another track, the gain slope needs to be a 2dB output rise for every 1dB input rise.  It needs to be configured as an expander.

The new compressor has a headroom range, designed to configure the slope above 0db.  The user can crush all headroom down to 0dB, pass it through 1:1, or have it follow the slope of the levels below 0dB.

There's a way to snap to the grid, to allow rapid graphical editing of useful slopes.  Manely, there's a multiband compressor.  The commercial offerings have 4 bands to upsell the product.  The earliest multiband compressors had 2 bands.  The lion kingdom compromised between upselling & having a simple interface with 3 bands.  It's just configured by a single macro.

The 3 bands have individual solo, passthrough options.  The "smooth only" option is a way to visualize the input used for the gain calculation.  To use the "smooth only" option, 1 band needs to be soloed.  

The original compressor allowed negative attack values to signify it should start attenuating before the peak, while positive attack values made it attenuate after the peak.  The new compressor always reads ahead, attenuating before the peak in the time specified.  The release similarly reads ahead, adjusting the rate of the expansion based on the future trough.  

If another peak arrives shortly after the release time, it truncates the release time to begin the next attack phase.  The attack time is always constant while the release time is only an attempt.

If the input during the release phase drops off before the end of the release phase, it doesn't truncate the release phase to steepen the slope.  This still causes it to stick, but the timing is more predictable.  This was a sacrifice imposed by physics.  To release faster, you need to reduce the release time.







Comments

Popular posts from this blog