How to calculate the parameters for "RMS compressor"?

Question asked by liangbread on Jun 4, 2014
Latest reply on Jun 27, 2014 by JJoseph

Hi John,

I am using MCU as the host controller to control the ADSP21489 with sigma studio codes and parameters embedded.Now I am trying to figured out the method to control the "RMS compressor" module and got some problems with it,for I cannot find the formulas to calculate the parameters such as "decay time","hold time","attack time",besides,the 160 bytes of compressor table supposed to be the most confusing.

Referring to the sigma studio help document,I figure out the formula for "decay time" and the "hold time"

decay=dbperseconds/fs;

hold=milliseconds*fs/1000;    (here,fs=sample rate)

After comparing to the parameter generated by sigma studio,I think the formulas right.But I got no idea to the formula for "attack time" as the "Timeconstant".

1)And what is that formula for the "attack time"?

As for the 160 bytes of compressor table,I have referred to the Re: Developing Sigma DSP Cluster

From that discussion,I know the x values are always in 3 dB spacings,which is not matching the 160bytes data of 39 points that I can see from the capture window:

As we can see from the second screenshots,the last 4 bytes of the compressor table parameters are all 0,so I assume there are only 39 points available.

2)Is there only 39 sets parameter available,but 40 sets parameter to be sent?

Additionally,I got another two question about the compressor table:

3)What is the spacing for full range(-90~+24dB) compressor table?Whether the spacing is fixed so that every single x value is not alterable?

4)I am so confused for the 160 bytes parameters of compressor table.What's the method and formula to calculate every single float point parameter value?

Best Regards,

Liang