please help!- scaling half-cycle transients above a given thresh to a given limit

DSP, Plugin and Host development discussion.
Post Reply New Topic
RELATED
PRODUCTS

Post

I was wondering if anyone knows of a vst plugin that functions the same as this:
http://tap-plugins.sourceforge.net/ladspa/limiter.html

Note, that this plugin is not really a limiter (its more of just a title). I am not after any type of normal compressor or limiter.

This plugin looks ahead to analyze half-cycles (from zero-cross to zero-cross)and are individually scaled down to the limit level (only those that have peaks above the limit, of course).

Please read the info from the link above, and any info on a vst plugin like this would be great.

or if anyone has the ability to take the source code (it is open source), and make a vst version of this ladspa plug, that would be most excellent. 8)
Thanks

Post

Something like that would create a good amount of subsonic rumble, if not flat DC. But I suppose if it is highpass filtered afterwards it would be fine. It would most likely also generate large spikes in the high frequency area. IOW it must sound really brash.

I think you can make something like this using SynthEdit, the modular VST creator. Check it out.

Post

I don't know of any VST, but there is a JS effect (LOSER/ZeroCrossingMaximizer) included with REAPER that I think does just that.

Post

camsr wrote:Something like that would create a good amount of subsonic rumble, if not flat DC. But I suppose if it is highpass filtered afterwards it would be fine. It would most likely also generate large spikes in the high frequency area. IOW it must sound really brash.

I think you can make something like this using SynthEdit, the modular VST creator. Check it out.
Thanks for the reply camsr. Why would it create flat DC/subsonic rumble?
did you happen to look at the "before" and "after" waveforms here?

This plugin claims to be able to do 7db reduction transparently, but thats not what my intention is. I was thinking of actually using this as the first step in my signal chain on possibly a fingerpicking acoustic guitar or a snare, and using it very mildly (maybe 2db reduction at most)... this way since it only scales the most intensive half-cycle transients, by a little bit. It keeps the peaks away from the "bulk of the audio" (rms), and also keeps the peaks of the waveform perfectly intact (just scaled to a lower amplitude), after this would be eq and compression etc. I feel if used mildly, a scaling limiter like this would actually be very transparent and would allow one to compress a little less later, thus leading to the most unobtrusive way of maintaining overall dynamics while increasing volume.

As to never using anything like this, I could easily be wrong, so let me know!
Cheers.

Post

Tale wrote:I don't know of any VST, but there is a JS effect (LOSER/ZeroCrossingMaximizer) included with REAPER that I think does just that.
Thanks for the reponse, have you tried this js effect? what are your opinions if so?

Post

camsr wrote:Something like that would create a good amount of subsonic rumble, if not flat DC. But I suppose if it is highpass filtered afterwards it would be fine. It would most likely also generate large spikes in the high frequency area. IOW it must sound really brash.

I think you can make something like this using SynthEdit, the modular VST creator. Check it out.
sorry here's the link to the before and after waveforms. Thanks for the help.
http://tap-plugins.sourceforge.net/ladspa/limiter.html

Post

It creates subsonic rumble because the area underneath the waveform is no longer symmetric. Also, given some material that peaks highly in one polarity but has no DC offset, will be given DC offset by this algorithm. This is separate of the peak value, because it's the integral of the waveform that matters here. The value of the integral of the waveform will be symmetric when there is no DC offset present.

Your idea for gently limiting the guitar should work okay. But without a windowing function, it would result in discontinuities at the zero crossings, adding harmonics, and aliasing might result. So, recording at a high sample rate and processing at the same rate is advised. Then you should downsample to your mix rate. I hope this helps. :)

http://en.wikipedia.org/wiki/Integral

Post

camsr wrote:It creates subsonic rumble because the area underneath the waveform is no longer symmetric. Also, given some material that peaks highly in one polarity but has no DC offset, will be given DC offset by this algorithm. This is separate of the peak value, because it's the integral of the waveform that matters here. The value of the integral of the waveform will be symmetric when there is no DC offset present.

Your idea for gently limiting the guitar should work okay. But without a windowing function, it would result in discontinuities at the zero crossings, adding harmonics, and aliasing might result. So, recording at a high sample rate and processing at the same rate is advised. Then you should downsample to your mix rate. I hope this helps. :)

http://en.wikipedia.org/wiki/Integral
Ah gotchya, makes perfect sense. I know calculus, but am just beginning teaching myself dsp. All help is much appreciated, this is my first experimental plugin...I think I may have figured a way to reduce subsonic rumble. What if instead of scaling half-cycles that pass a certain threshold to one specific amplitude, they were scaled down to a range of 2 or 3 db (centered around the limit level the user specifies)? The area under the waveform would still not be entirely symmetric, but i would think scaling down to a range like this would be very organic to the ears?

I hope to figure a way of dealing with half-cycle transients that is transparent as possible.

Post

fir wrote:Thanks for the reponse, have you tried this js effect? what are your opinions if so?
Yes, I have used the effect on the master track to make the output a little hotter, which worked pretty well.

Post

If this idea were just applied to transients in the signal, the result would be cleaner obviously, but would still add an artifact in the low frequency region, if only briefly. It would kind of be the same as when you run a DC signal through a high pass filter, where there is a creation of an impulse with respect to the filter frequency. As the filter's frequency was raised, the impulse got shorter. Likewise, in this algorithm, it's like the filter's frequency changed with the length of the half cycle. This needs to be taken into consideration.

Post

Tale wrote:I don't know of any VST, but there is a JS effect (LOSER/ZeroCrossingMaximizer) included with REAPER that I think does just that.
A VST (Windows 32bit, Linux 32bit, Source Code (for platforms without provided binary distribution)) is available at http://loser.asseca.com/

[Sorry for thread resurrection.]

Post Reply

Return to “DSP and Plugin Development”