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

Best way to switch between two dynamic processor profiles

SigmaDSP & SigmaStudio KKSL Oct 29, 2020 00:00 4 replies Original on forum ↗
Subscribe
KKSL Question
Oct 29, 2020 00:00

Hello,

I want to switch between two profiles created using a dynamic processor, as if to do an A/B test.

I can use a uC and do an I2C WRITE but I was wondering if the uC can be avoided.

Ideally I would like to use a GPIO line as input and change the profile by changing the logic of the input pin.

Thanks in advance for your inputs!

KJBob Reply
Oct 29, 2020 00:00

Hello,

You can provide some limited adjustments by modifying the control input of an external-input compressor -- the general idea is shown below.

The algorithm inside the triangle determines the effect. A straight gain moves your entire curve up or down. For more complex adjustments, first have a peak envelope block produce a level signal for your nonlinear algorithm to work on. With Sigma 300 chips, a power function --- y = x ^ z (where z is a number likely between 0.5 and 2.0) can adjust the slope of the curve. A Linear Interpolator provides a somewhat arbitrary function. A Clipper inserts a 1:1 region into the curve. To be honest, directly writing the table with a uC is the most general solution.

Perhaps another member could offer a better solution.

SigmaStudio's A-B feature allows you to quickly switch between two projects with different curves -- so if your need is strictly a A-B listening test, this may suffice.

Best regards,

Bob

block.png
block.png
KJBob Reply
Oct 30, 2020 00:00

Come to think of it, why not just feed your audio into two compressors with your different curves, then have a GPIO controlled MUX choose between them? This is the easiest and most flexible solution as long as you can afford the instructions usage.

DaveThib Reply
Oct 31, 2020 00:00

Hello KKSL,

You did not say which processor you are using. If you are using a Sigma200, the ADAU1761, 1442, 1787, then there are index selectable RMS and Peak compressors in the library.

If you are using the 1701 or the 1452/1467 families then you will have to follow Bob's suggestions.

Dave T

pastedimage1604139098054v1.png
pastedimage1604139098054v1.png
KKSL Reply
Nov 2, 2020 00:00

Thank you both Bob and Dave.

I needed it for ADAU1701 but it was good to know that the more capable ones have index selectable dynamic processors. Actually I was hoping we could achieve the same effect with ADAU1701.

As Bob suggested, I'll stick with using a uC for now.

Thanks you so much!!