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

Level of Dynamic Bass Boost by an external POT

SigmaDSP & SigmaStudio revenac Nov 18, 2025 00:00 6 replies Original on forum ↗
Thread Summary

Thread Summary

The user wants to control the level of Dynamic Bass Boost on the ADAU1701 using an external potentiometer. The final answer suggests using a PIC processor to read the pot and write to the parameter externally. An accompanying answer provides an alternative method using SigmaStudio with a DC Blocking filter, two Linear Interpolators, and Slew Volume Controls to adjust the input and output levels of the Dynamic Bass Boost block, maintaining a constant overall gain.
AI Generated Content
Subscribe
revenac Question
Nov 18, 2025 00:00

Hello, I would like to control the level only of the Dynamic Bass Boost by an external POT.

The control of all parameters is impossible and this is clear, but I would like to control ONLY the level of the Bass Boost.

A Single Slew Ext Vol block just BEFORE the Bass Boost Block should do the job?

I don't think so because the formula for the Bass Boost for sure depends also on the Level of the Boost.

Thanks for any suggestion.

Mario

Audio Signal Processors

software

sigmaStudio 4.7

SigmaDSP Audio Processors

adau1701

DaveThib Reply
Nov 18, 2025 00:00

Hello Mario,

The ADAU1701 is one of our older SigmaDSPs but it still is a great and useful part! One of our more popular parts for sure! However, it does lack in some features that we did fix in the newer ADAU!452 and ADAU1467 family of parts. These newer parts are capable of writing to their own registers but the ADAU1701 does not have that capability. My suggestion is that you use a small PIC processor, or similar low cost MCU, to read the level of a pot and write to the parameter from outside of the part.

You can see in the capture window which parameter SigmaStudio is writing to when you change the bass boost.

I certainly wish I had a better answer but it is a shortcoming we fixed in the newer parts.

Dave T

pastedimage1763475560975v1.png
pastedimage1763475560975v1.png
KJBob Reply
Nov 18, 2025 00:00

Hello Mario & Dave,

Perhaps you're working with a pre-made board, in this case your idea of adjusting the Dynamic Bass block's input level may suit your application. With SigmaStudio, often there's more than one way to do things -- each with its own set of pluses and minuses. Anyhow, if you would like to try it, here's one implementation. It adjusts the input gain to the Dynamic Bass from -20 to +20 dB, then cancels this out with a reciprocal gain at its output.

Since the D-Bass block measures its input level, it can be sensitive to any DC present on its input -- and input audio from ADCs, etc. often have some. Thus, put a DC Blocking filter at the input. Don't worry, it's flat down to 3 Hz. The two Linear Interpolators produce the following inverse curves as you adjust the pot, and the Slew Volume Controls do the rest:

This method has some limitations -- reduced dynamic range when set for maximum bass (pot all the way up), and possibly clipping the D-Bass block with the pot fully down. I couldn't hear trouble from either when I tried it on my ADAU1701MINIZ board; however I only had an iPod earphone jack and a pair of cans to try it with. With the Dynamic Bass's default settings, turning the pot makes an audible difference -- I'm presently listening with the effect fully up because I love bass as much as I do dinosaurs. You may need to adjust which Aux ADC you're using as well as its corresponding MP pin setting in HW Configuration, as well as which DACS are in use, according to your actual hardware should you try the project attached.

Not to disparage Dave's idea, because having a micro adjust the parameters places awesome power at your command! Not only this block, but any adjustable block works with those numbers which SigmaStudio loads into your -1701's parameter memory. With a well-programmed PIC on a board you have designed, you can change any of them. Make a 10-band equalizer, where you'll learn how digital filters really work. Soon you'll outgrow the -1701 and build a unique guitar pedal, or something no one has even thought of. None of this is easy -- I've always said that learning how to calculate and load parameters is a rite of passage for SigmaDSP designers. I happen to work along with a self-taught engineer who did the hardware and most of the C code the for the mixer we manufacture where I work, while I did the SigmaDSP and a little of the C code for the PIC (the filter response math, although my C skill is mostly chasing lost semicolons). The Sixth Code of Dinotopia is your path forward -- Observe, Listen, and Learn.

Breathe deep, fly high!

Bob

Adj-Dynamic-Bass.zip

AdjustDynamicBass_sch.png
AdjustDynamicBass_sch.png
AdjustDynamicBass_int-graphs.png
AdjustDynamicBass_int-graphs.png
Skybax-race.jpg
Skybax-race.jpg
revenac Reply
Nov 19, 2025 00:00

Fo my understanding it is a quadratic pot with in the middle the Bass Boost block. Isn't it?

Not so clear for me why you used two interpolators, and not only one, followed by a T connection and from there 2 lines.

More, why interpolators and not a DC Input Entry?

mario

revenac Reply
Nov 19, 2025 00:00

Hi Dave.

OK. I know ADAU1452 and things are easier.

But :( the board I am working with is for a customer of mine and he wants to stay with the 1401. No way to let him accept to move to 1452.

Mario

KJBob Reply
Nov 19, 2025 00:00

Hello Mario,

Sorry for my tone, I didn't mean to talk down to you. In effect I tested your idea: Vary the Dynamic Bass Block's behavior by adjusting its input level. And your method works! The rest is merely choice of implementation.

I'm not sure about the DC source since it's not externally adjustable unless your board includes a micro to load its parameter. If that's the case, skip this method entirely and change the Dynamic Bass Block's internal parameters as Dave suggested, with no need to read the remaining bullet points.

By "quadratic pot" I assume you mean an "audio taper" pot. The second interpolator is such, except it operates over a +/- 20 dB range rather than the usual minus - infinity to zero dB range. The first interpolator is a quadratic pot in reverse (clockwise rotation reduces gain).

It's possible to eliminate one interpolator, yet it takes more than a T connector. You'll need a Divide block to achieve the reciprocal function needed to provide a constant overall gain when turning the pot.

The linear interpolator is especially handy with the -1401, It uses 17 instructions no matter what complex math hides inside. By contrast, the -1401's Divide block takes 53.

The Dynamic Bass Block is perhaps the worst-documented algorithm in all SigmaDSP -- its Wiki entry says in effect, "Play with its GUI controls until you like the results." You can find a few reverse-engineering attempts on this forum.

Best regards,

Bob

revenac Reply
Nov 19, 2025 00:00

thank you for your help. Finally I will follow your suggestion.

Ciao.

Mario