SigmaDSP Standard RMS Compressor Algorithm Reference
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
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.
Regards,
Harish
Please log in to reply.



