Any zero-latency vst limiters?
-
- KVRist
- Topic Starter
- 132 posts since 31 Jan, 2021
Is there such a thing as a zero-latency limiter vst? I often go back and forth between preliminary mixing and tracking/recording as I am working on a song. I have zeroed down my effects plugins to just a few, all with zero latency. Ableton, the DAW I work in, adds plugin latency even if when such plugins are disabled, so I generally avoid plugins with any latency until the final mix stage. It would be ideal as I am listening to a song to have a zero-latency limiter on the mix bus so I don't have to remove it temporarily if I decide to redo or add another track.
-
- KVRian
- 756 posts since 7 Dec, 2018 from Saint-Petersburg
PSP Twin-L
-
- KVRian
- 624 posts since 12 Sep, 2007
There will always be latency with any VST.
Latency shouldn't be a concern when mixing, unless it's live mixing.
Have you considered another host for mixing/mastering?
Good luck,
Dirk
Latency shouldn't be a concern when mixing, unless it's live mixing.
Have you considered another host for mixing/mastering?
Good luck,
Dirk
- KVRAF
- 4433 posts since 15 Nov, 2006 from Hell
when people say "zero latency" they mean "zero additional latency". there are loads of VST plugins that don't add latency.
I don't know what to write here that won't be censored, as I can only speak in profanity.
-
- KVRAF
- 6464 posts since 17 Dec, 2009
-
- Banned
- 1966 posts since 2 Mar, 2004
I don't think that we have to take the zero too literally here. It is a latency that does not matter for the application described by the op. And, what is more, Ebus Lim sounds superb.
-
- KVRer
- 27 posts since 19 Feb, 2018
Not zero-latency, but DMG TrackLimit is a limiter with low-latency. It adds as much as the buffer size of your DAW, and can go as low as 15 samples (as long as your computer can handle it).
-
- KVRian
- 1030 posts since 26 Feb, 2018
Limiters typically need a bit of latency and oversampling to do their job right, particularly if you want them to act as a brickwall.
Having said that, I appreciate a zero latency low CPU limiter for tracking purposes. You can use any compressor at 20:1 ratio for this purpose. It won't be a brickwall but it'll do the job of protecting whatever comes next.
Fircomp can be used this way
https://jonvaudio.com/fircomp/
I have the paid version, but the free one should work the same. Set it to highest ratio and fastest attack (and zero latency), and you got a good limiter.
Your DAW may come with a limiter without latency. Check there.
Personally, I'm still tracking with the first version of Soundspot Velo. It could be bought for around $1 before v2. It did not have latency and oversampling so it wasn't a great limiter, but it is designed as a limiter and it does the safety job while tracking. I may replace it with Fircomp2 once I get more comfortable with it.
Having said that, I appreciate a zero latency low CPU limiter for tracking purposes. You can use any compressor at 20:1 ratio for this purpose. It won't be a brickwall but it'll do the job of protecting whatever comes next.
Fircomp can be used this way
https://jonvaudio.com/fircomp/
I have the paid version, but the free one should work the same. Set it to highest ratio and fastest attack (and zero latency), and you got a good limiter.
Your DAW may come with a limiter without latency. Check there.
Personally, I'm still tracking with the first version of Soundspot Velo. It could be bought for around $1 before v2. It did not have latency and oversampling so it wasn't a great limiter, but it is designed as a limiter and it does the safety job while tracking. I may replace it with Fircomp2 once I get more comfortable with it.
-
- KVRAF
- 6464 posts since 17 Dec, 2009
-
- KVRist
- 223 posts since 30 Sep, 2002
The JS plugin "MGA JS Limiter" which any vst host can use via the ReaJS plugin has no latency. I use it as a safety valve. It comes with Reaper.
Here's the code. It's not that large.
Here's the code. It's not that large.
Code: Select all
// MGA JS Limiter: Limits the maximum output volume of a audio signal
// Copyright (C) 2008 Michael Gruhn
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
desc:MGA JS Limiter
//tags: dynamics limiter
//author: LOSER
slider1:0<-30,0,0.1>Threshold (dB)
slider2:200<0,500,1>Release (ms)
slider3:-0.1<-6,0,0.1>Ceiling
in_pin:left input
in_pin:right input
out_pin:left output
out_pin:right output
@init
HOLDTIME = srate/128;
r1Timer = 0;
r2Timer = HOLDTIME/2;
gr_meter=1;
gr_meter_decay = exp(1/(1*srate));
@slider
thresh = 10^(slider1/20);
ceiling = 10^(slider3/20);
volume = ceiling/thresh;
release = slider2/1000;
r = exp(-3/(srate*max(release,0.05)));
@sample
maxSpls=max(abs(spl0),abs(spl1));
(r1Timer+=1) > HOLDTIME ? (r1Timer = 0; max1Block = 0; );
max1Block = max(max1Block,maxSpls);
(r2Timer+=1) > HOLDTIME ? (r2Timer = 0; max2Block = 0; );
max2Block = max(max2Block,maxSpls);
envT = max(max1Block,max2Block);
env = env < envT ? envT : envT + r*(env-envT);
(env > thresh) ? gain = (g_meter=(thresh / env))*volume : (g_meter=1; gain=volume;);
spl0*=gain;
spl1*=gain;
g_meter < gr_meter ? gr_meter=g_meter : ( gr_meter*=gr_meter_decay; gr_meter>1?gr_meter=1; );
@gfx 0 32 // request horizontal/vertical heights (0 means dont care)
gr_meter *= exp(1/30); gr_meter>1?gr_meter=1; // decay meter here so if the audio processing stops it doesnt "stick"
gfx_r=1; gfx_g=gfx_b=0; gfx_a=0.8;
meter_bot=20;
meter_h=min(gfx_h,32);
xscale=gfx_w*20/meter_bot;
gfx_y=0;
gfx_x=gfx_w + log10(gr_meter)*xscale;
gfx_rectto(gfx_w,meter_h);
gfx_r=gfx_g=gfx_b=1.0; gfx_a=0.6;
s2=sqrt(2)/2;
g = s2;
while(
gfx_x=gfx_w + log10(g)*xscale;
gfx_x >= 0 ?
(
gfx_y=0;
gfx_lineto(gfx_x,meter_h,0);
gfx_y=meter_h-gfx_texth;
gfx_x+=2;
gfx_drawnumber(log10(g)*20,0);
gfx_drawchar($'d');
gfx_drawchar($'B');
);
g*=s2;
gfx_x >=0;
);
gfx_a=1;
gfx_x=0; gfx_y=meter_h/2 - gfx_texth/2;
gfx_drawnumber(log10(gr_meter)*20,1);
gfx_drawchar($'d');
gfx_drawchar($'B');
Will mix for fun
-
- KVRAF
- 4711 posts since 26 Nov, 2015 from Way Downunder
Checkout Ebus Lim in Plugindoctor. It refuses to alias, without oversampling. No idea what clever tricks it does to achieve that.
-
Hermetech Mastering Hermetech Mastering https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=7418
- KVRAF
- 1619 posts since 30 May, 2003 from Milan, Italy