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

Hi Liang,

Please find the answers to your queries:

1) Should these two value be linear value or dB value?They should be dB values.

2) If they are linear value,yet,from the source code in the "Adjust for threshold" part,I do know these two value is processed with dB value of the maximum sample directly.Why the linear value here mixed up with dB value to finish the calculation?This is a bug and we will fix this. The Gain and Threshold parameters should be in dB.

3) I have tested a few times.After the post "gain" value changed,however,the output dB value is not to be changed as it should be.Because I have consider the gain should be the make-up gain adding to the output directly.Is there any problem of my point of view?Your understanding is correct. The reason for no change in the output gain is that the gain parameter is wrong. It is in linear scale instead of dB.

4)Where can I know the converting operation to linear value of the two value in sigma studio?I just always consider all the converting should be listed as formula in the "Default Parameter" tab.Is this just realized by the "slider"?The liner conversion is done by the slider. You can convert them back to dB using the formula in the 'Default Parameter' tab. Formulas are given below.

Formula for Threshold = 20*log(ThresholdVar)

Formula for Gain = 20*log(GainVar)

Best Regards,

John