ΣSigmaStudio Ask AI Русский Log in

SigmaDSP Standard RMS Compressor Algorithm Reference

SigmaDSP & SigmaStudio hogan Jul 30, 2025 00:00 1 replies Original on forum ↗
Subscribe
hogan Question
Jul 30, 2025 00:00

Currently using the standard independent RMS module to implement Dynamic Range Compressor/Limiter

Now, I will describe the specific situation in detail

The transfer function of the current compressor parameters, including threshold, ratio, and knee (knee=1), has been verified to match the calculation results of the sigmastudio software, as shown in the figure

compressor transfer function: register value = pow(10, (Input <= Threshold ? 0 : ((1/Ratio - 1)*(Input-Threshold))/20))

attack time transfer function: float coeff = (1.000f - expf(-1.000f / (time_ms * (sample_rate / 1000.000f)))) * 2.000f;

release time transfer function:float coeff = 0.0905f / (sample_rate * (time_ms/1000.0f));

Currently, we still need to implement soft knee (knee > 1), and we haven't derived the formula for this yet. Could you please provide relevant information or a formula? I think the soft knee curve looks more like a double tangent curve, and the larger the knee, the farther it is from the inflection point.

Thanks & BR

Thread Notes
Harishgowtham - Moved from Processors and DSP to SigmaDSP Processors & SigmaStudio Dev. Tool. Post date updated from Wednesday, July 30, 2025 7:07 AM UTC to Thursday, July 31, 2025 5:31 AM UTC to reflect the move.

Harishgowtham - Moved from Processors and DSP to SigmaDSP Processors & SigmaStudio Dev. Tool. Post date updated from Thursday, July 31, 2025 5:31 AM UTC to Thursday, July 31, 2025 5:31 AM UTC to reflect the move.

Audio Signal Processors

adau1452

software

SigmaDSP Standard RMS Compressor Algorithm Reference

SigmaDSP Audio Processors

SigmaStudio 4.5

Show More

6215.pastedimage1753857636393v1.png
6215.pastedimage1753857636393v1.png
5282.pastedimage1753858192473v2.png
5282.pastedimage1753858192473v2.png
2821.pastedimage1753858211113v3.png
2821.pastedimage1753858211113v3.png
Harishgowtham Reply
Jul 31, 2025 00:00

Hello hogan,

Sorry, I don't have a great answer for you.

The soft knee formula has never been shared in this forum before, so it can be a proprietary information which can't be shared.

However, if you are calculating gain points in your way then you can just set the soft knee to whatever number you wish to set (you can set it from 1 to 100 in the GUI) and extract the reflected gain points from capture window/exported files and send it from your MCU.

Please have a look at the below document for some info on compressors and its other parameters.

PDF

Regards,

Harish