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

Adau1452 compressor calculations

SigmaDSP & SigmaStudio borsty1989 Sep 15, 2017 00:00 2 replies Original on forum ↗
Subscribe
borsty1989 Question
Sep 15, 2017 00:00

Hello,

I need some explanation how the compressor table in sigma studio gets calculated for ADAU1452.

For example the Peak Compressor transfers 244 Bytes of data to the ram.

The range of the threshold slider goes from -139.9dB to +40dB. This is a range of 179.9dB.

244 Bytes of data equals 61 32Bit values. Each of these values contains a 3db step, right?

If these thoughts are correct I'm wondering about the fact that there are two values neccessary to set the threshold to 37.1dB. This is just 2.9dB and should fit into one data value, or?

Maybe you can help me out with this.

Thanks!

Regards

Bernhard

Audio Signal Processors

adau1452

SigmaDSP Audio Processors

d9f416e3a8b351a1f22f52faf685b152.png
d9f416e3a8b351a1f22f52faf685b152.png
d9f416e3a8b351a1f22f52faf685b152.png-620x329.png
d9f416e3a8b351a1f22f52faf685b152.png-620x329.png
KJBob Reply
Sep 16, 2017 00:00

Hello Bernhard,

All the dynamic blocks operate similarly inside the DSP -- the running algorithm measures the input level, finds the appropriate multiplier (linear gain) from the parameters which SigmaStudio has pre-calculated, then performs this multiplication to produce its output. SigmaStudio offers several peak compressor versions -- the one you're using (below, bottom) which builds the compression curve based upon your inputs of threshold and ratios, and another (top) where you define the compressor's curve directly by dragging its points:

Here I've set them both for a threshold of zero dB with nearly flat limiting above threshold. Comparing the high-level portions of the two resulting compression tables shows that both compressor versions operate similarly inside the DSP-- the main difference is the the form of user input. Both compressors use 3 dB table spacing:

Some time ago I figured out how the compressor with the direct graph input calculates its table-- please see:

https://ez.analog.com/message/265593?commentID=265593#comment-265593

So if you desire, for example, to safeload the compressor's parameters from a microcontroller, the above reference should help.

When changing the threshold from 140 to 137.1, we might expect only the gain parameter for the very highest input level (the last one in the table) to change; however there could be a rounding error or perhaps some softness in the knee (even with the lowest setting) which allows the previous parameter in line to be affected. In any event, the 0.91 linear gain in this parameter (-0.8 dB) won't matter much.

Best regards,

Bob

5488.657766db83e2585a6e7f4fb32492d5d2.png
5488.657766db83e2585a6e7f4fb32492d5d2.png
5488.657766db83e2585a6e7f4fb32492d5d2.png-620x428.png
5488.657766db83e2585a6e7f4fb32492d5d2.png-620x428.png
6266.28cd9d49b7519bfe3977f5b4b575b976.png
6266.28cd9d49b7519bfe3977f5b4b575b976.png
6266.28cd9d49b7519bfe3977f5b4b575b976.png-419x340.png
6266.28cd9d49b7519bfe3977f5b4b575b976.png-419x340.png
borsty1989 Reply
Sep 21, 2017 00:00

Hi Bob,

thanks a lot for this fast and perfect answer.

You were right, I wanted to manipulate and write these values during runtime via microcontroller.

Thanks to your help! It was easy to implement and it's working perfectly.

Regards

Bernhard