Old 01-15-2012, 04:15 PM   #1
jonpv
Mortal
 
Join Date: Jul 2011
Posts: 11
Default JS Plugin: Lookahead Limiter



Download

I have written an almost-clone of a well known lookahead limiter which shall remain nameless. It's not identical, but is very similar.

It uses a 1.4 millisecond lookahead (regardless of sample rate) to do smooth sample limiting, and so introduces 1.4ms of PDC latency. It does not detect inter-sample peaks so is probably not suitable for mastering. It does guarantee that no sample value will ever go over the ceiling. It does not do any clipping or wave shaping (but will introduce intermodulation distortion if the release time is too quick).

It has a gain reduction meter with a "hold" value showing the maximum amount of gain reduction that has taken place, which can be reset by clicking anywhere on the gain reduction meter or in the black graphics area.

The release has a feed-forward topology, ie the release phase will start when the input signal is below the threshold, not when the gain-reduced signal is below the threshold. The attack has a feedback topology, ie further gain reduction will only happen of the gain-reduced signal is over the threshold.

The release is set manually, but there are two release modes. In "Recover 20dB of gain" mode, the release time is the time it takes for the gain to increase by 20dB until the gain is 0dB, assuming no further peaks are encountered. This is the same as some other well known lookahead limiter. In "Return to unity gain" mode, the gain will smoothly return to 0dB within the release period specified.

The ceiling can be linked to the threshold, and when this is the case moving the threshold moves the ceiling and the ceiling cannot be moved.

The limiter works fine with stereo material - both channels have the same amount of gain reduction applied at all times and neither channel will have samples over the ceiling.

The plugin is similar to the really good (and free) W1 Limiter by George Yohng: W1 Limiter

The difference however, is that this isn't an identical clone, it's just very similar. It also has a gain reduction meter, threshold-ceiling linking and two different release modes, which are features the W1 doesn't have.

Uses

This plugin is quite powerful and can completely suck the life out of material if used incorrectly.

If you have a track where each note has a very harsh transient which is much louder than the body of the note (such as close-miced snare drum rim shots), then setting a release time between 1 and 2 ms in "Return to unity gain" mode will enable you to soften those transients and hear more of the body of the note.

In general, short release times sound the most transparent but soften transients and so can suck out any life in the material. Short release times work less well for evening out the volume of a track as (depending on the threshold) it may be the case that only transients are removed, leaving the body of the note, so louder notes will still sound louder.

For levelling out a track with uneven note volumes (ie, uneven snare drum hits which a conventional compressor is too slow to catch) it is best to use longer release times, which preserve transient information but introduce "pumping" effects. Longer release times may also be good for squashing uneven vocals or bass guitar. Also, the longer the release time, the more gain reduction you can get away with without noticeable distortion - with a release time in the tens of milliseconds in "return to unity gain" mode you can squash really heavily.

When using even longer release times still, quiet notes immediately after a loud note (during the release phase) may be too quiet.

Picking a release time is about compromise and judgement.

Feedback

I am a fairly experienced programmer but have not done much DSP stuff, so any feedback or changes to improve efficiency are welcome. Also please let me know of any bugs.

Last edited by jonpv; 01-16-2012 at 04:28 AM.
jonpv is offline   Reply With Quote
Old 01-15-2012, 04:53 PM   #2
dub3000
Mortal
 
dub3000's Avatar
 
Join Date: Mar 2008
Location: Sydney, Australia
Posts: 3,769
Default

awesome! Will check this out tonight, thanks!
dub3000 is offline   Reply With Quote
Old 01-16-2012, 04:31 AM   #3
jonpv
Mortal
 
Join Date: Jul 2011
Posts: 11
Default

I've updated it to have a better peak meter, original download link is still the same
jonpv is offline   Reply With Quote
Old 01-16-2012, 04:35 AM   #4
ramses
Mortal
 
Join Date: Jul 2009
Posts: 386
Default

Exactly what I need right now!

Thank you a million for this.

Oh, and by the way, any chance of selectable upsampling in coming releases?
ramses is offline   Reply With Quote
Old 01-16-2012, 04:47 AM   #5
jonpv
Mortal
 
Join Date: Jul 2011
Posts: 11
Default

Quote:
Originally Posted by ramses View Post
Exactly what I need right now!

Thank you a million for this.

Oh, and by the way, any chance of selectable upsampling in coming releases?
I've never implemented upsampling before, although I know how to do it in theory. Probably not any time soon unfortunately, although maybe one day! It wouldn't make much difference anyway - you shouldn't really need it unless you have really tiny release times with large amounts of gain reduction. (I record/mix at 44.1kHz so understand the importance of upsampling!)
jonpv is offline   Reply With Quote
Old 01-18-2012, 01:03 PM   #6
jonpv
Mortal
 
Join Date: Jul 2011
Posts: 11
Default

Quote:
Originally Posted by ramses View Post
Exactly what I need right now!

Thank you a million for this.

Oh, and by the way, any chance of selectable upsampling in coming releases?
Actually I've realised that you might have been referring to upsampling with FIR sinc functions to catch intersample peaks - I might add an optional up-sampled detector to control the gain of the non-upsampled signal some time over the next couple of weeks if I am not too busy.
jonpv is offline   Reply With Quote
Old 01-18-2012, 03:35 PM   #7
RunBeerRun
Mortal
 
Join Date: Jan 2007
Posts: 507
Default

Sounds great, breaks up a bit at more intense settings, but plenty of room for any actual normal use.
__________________
Download many vst plugins that my Grandmother made: runbeerrun dot blogspot dot com
RunBeerRun is offline   Reply With Quote
Old 01-18-2012, 04:37 PM   #8
sinkmusic
Mortal
 
sinkmusic's Avatar
 
Join Date: Feb 2006
Location: decepticon mothership in a hidden place inside a mountain
Posts: 2,799
Default

Thank you !
sinkmusic is offline   Reply With Quote
Old 01-19-2012, 01:55 AM   #9
geoslake
Mortal
 
Join Date: Apr 2007
Posts: 230
Default

nice one, thanks
geoslake is offline   Reply With Quote
Old 01-19-2012, 02:39 AM   #10
ramses
Mortal
 
Join Date: Jul 2009
Posts: 386
Default

Quote:
Originally Posted by jonpv View Post
Actually I've realised that you might have been referring to upsampling with FIR sinc functions to catch intersample peaks - I might add an optional up-sampled detector to control the gain of the non-upsampled signal some time over the next couple of weeks if I am not too busy.
Kool. I love it as it is, but this might provide a bit of an edge. Thanks again!
ramses is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -7. The time now is 10:42 AM.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.