Support

If you have a problem or need to report a bug please email : support@dsprobotics.com

There are 3 sections to this support area:

DOWNLOADS: access to product manuals, support files and drivers

HELP & INFORMATION: tutorials and example files for learning or finding pre-made modules for your projects

USER FORUMS: meet with other users and exchange ideas, you can also get help and assistance here

NEW REGISTRATIONS - please contact us if you wish to register on the forum

K1 - RMS compressor

Post any examples or modules that you want to share here

Re: K1 - Pro Grade compressor (?)

Postby Spogg » Mon Nov 28, 2016 1:08 pm

Actually I never used the Delay Compensation prim but since the prim's Integer input is in samples couldn’t that be set in relation to the current look-ahead delay time, automatically?
I don't know if it can be changed in a VST in real time but you could try it...

Cheers

Spogg
User avatar
Spogg
 
Posts: 3318
Joined: Thu Nov 20, 2014 4:24 pm
Location: Birmingham, England

Re: K1 - Pro Grade compressor (?)

Postby Rocko » Tue Dec 13, 2016 7:55 pm

Hey...

Going back to the 'limiter' topic.
As a reminder, the general recommendation is to add a limiter at the end of the process chain, to avoid glitches and over-peak transients caused by the algorithm.

After doing that, I auditioned again the K1 compressor, and once it over-peaks - it starts clipping the sound (obvious).

Since this is an attempt to mimic and learn about 'pro grade' compressors, I couldn;t have not noticed that those compressors do not limit (Ableton live built in comp, Waves C1, Fabfilter ProC, etc.). They let the signal pass even if over peaked and rely on the fact that at the end of the DAW's process chain there is a peak limiter.

So, I've decided to leave the limiter out of this design.

Any comments about that? Your inputs are valuable.

Rocko
Rocko
 
Posts: 186
Joined: Tue May 15, 2012 12:42 pm

Re: K1 - RMS compressor

Postby Rocko » Mon Mar 12, 2018 10:27 am

HI all,

At the time I had started two posts regarding 'RMS compressor' (the current post) and 'PEAK compressor':
http://www.dsprobotics.com/support/viewtopic.php?f=3&t=6274

They had received many views and comments. Some very interesting comments came from Martin Vicanek side (thanks) especially regarding the 'signal flow' of the 'side chain' (gain calculation) as well as the 'smoothing/filter' mechanism.

Side Chain Flow:

Attached is another version of an RMS compressor. In this version the 'side chain' signal flow is more common (like Martin had suggested).

Ths signal (within the side chain) flow:
--> Energy Detector (RMS calculation) --> Time based smoothing (Attack and release) --> Lin2Db --> Transfer function -- Db2Lin
(see attached image).

Smoothing Filter Mechanism:

The 'smoothing' mechanism is a simple first order LPF which (as discussed in this post http://www.dsprobotics.com/support/viewtopic.php?f=3&t=6274 ) far from ideal.
I still have doubts about this issue.
For instance, in Abelton Live's compressor (and other many examples), there are three 'latency settings': 0ms, 1ms, 10ms.
For the 0ms - one can only think of an IIR smoothing mechanism running inside (1st or higher order)?
Is this correct?

I agree that if latency (look ahead) is allowed the FIR (moving average) followes and therfore 'sounds' much better.
But what is the case of ZERO latency ?
Attachments
K_RMS.fsm
(22.24 KiB) Downloaded 1021 times
K_RMS.jpg
K_RMS.jpg (79.65 KiB) Viewed 12825 times
Rocko
 
Posts: 186
Joined: Tue May 15, 2012 12:42 pm

Re: K1 - RMS compressor

Postby Rocko » Mon Mar 12, 2018 10:59 am

One more topic:

I thought I would need a de-normalizer with the 1st order smoothing filter, so I'm adding and subtractin 1e-09 :

Code: Select all
//if (in > out) then 'attack' else 'release'
c = release + (in > out) & (attack - release);
out = c * in + (1-c) * out + 1e-09 - 1e-09;


Does this make any sense ?
Rocko
 
Posts: 186
Joined: Tue May 15, 2012 12:42 pm

Previous

Return to User Examples

Who is online

Users browsing this forum: No registered users and 33 guests

cron