Create compressor from basic dsp blocks
How can I create 1 channel compressor from basic dsp blocks? I'm using ADAU1466, Sigma Studio. There must be possibility to set over SPI only these parameters (not whole compressor curve):
Threeshold 0 .. -90 dB
Compressor ratio
Attack time
Hold time
Release Time
I cannot find block for 1 channel, only with setting of above parameters. One possibility is to create own compressor from basic blocks. What is the best solution?
dsp compressor
Audio Signal Processors
sigma studio
SigmaDSP Audio Processors
adau1466
Hello Andrej,
For others reading this post, this is a continuation of this post: https://ez.analog.com/dsp/sigmadsp/f/q-a/106453/compressor-selection
There are many different compressor blocks. If you like one of the stereo ones you do not have to use both channels. But here is where you can find one that can be mono:
As you can see, It has an external sidechain input so you can use a volume control for a threshold control instead of changing all the spline curve values.
In my other post the document I wrote details where to find the rest of the parameters for the time constant (Attack) the Hold and the Decay time parameters. Those are simple writes to one memory location. All of our compressors will be similar to these so you can find they parameters in the memory map in the params window. You can also perform an Export System Files to get this information. Keep in mind that the compressor spline curve is not always stored next to the rest of the compressor parameters. So if you do not see them then continue to scroll down.
You should also become familiar with our Wiki help page. It is not complete but it can be a help at times. You can get to it by highlighting (selecting) a cell and then pressing F1.
Here is the link to the compressor page:
https://wiki.analog.com/resources/tools-software/sigmastudio/toolbox/dynamicsprocessors/rmsnogain
Then you can always do a search of the forum. There is a lot of information here to help you get to speed. Almost all of your questions have been answered at one time or another.
Thanks,
Dave T
This has been useful for me, I had created scheme above, I did some measure of signals. With volume control in scheme above I can move "point of break", but is there any possibility, how to set ratio of compressor above point of break? I need only linear characteristic from breaking point to up right. Soft knee will not be used. I cannot change all spline points over SPI from master controller. All of predefined compressors blocks in sigma studio is unnecessary complicated for setting over SPI. Now I test and preparing everything in evaluation ADAU1466 board.
Hello Andrej,
You do not have to change all of the spline points. All the ones below the knee are all 1's and do not change. So all you have to change are the points above the knee. Here are some screenshots to detail my suggestion.
As you see, all the points below the spline are a number "1" in 8.24 format. (The curve is backwards in memory.)
You can see the curve in the window has a gentle ratio.
So then I grabbed the spline ball on the far right and slip it down for a higher ratio. You can see that only the non-"1" numbers changed.
So what you do is use SigmaStudio to set up your ratio for the compression to the value you need for each setting. Then you highlight only the changed numbers. Right click on then and save it off to a text file. Then you can load this into your uC code and only dump this small number of points into the DSP when you need to change the ratio.
Dave T
I understand this, thank you for your help. I'm using this. But in my new project I can set only two points - threeshold point, which will be olways linear to -135/-135 and ratio point, which will be linear to threeshold point too. I can decrease of curve points but minimum is 32 points, Why it cannot be only three points? From master controller I must calculate and send lot of numbers othervise send only needed numbers.
When it is not possible decrease curve points to minimum (three), is there any way, how to calculate these (64) points and send from master controller only three points?
Thank you very much for any ansver.
Please log in to reply.