I would like to configure the blocks "Dynamic Bass Boost" and "Bass Enhancement" through I2C writes but can not seem to find information on how to calculate the parameters needed. Where can I find this information?
It would seem impossible to fathom out all 40 parameters associated with the Dynamic Bass block. Yet under closer inspection, it turns out that this block consists of some old friends -- primarily a compressor and a 2nd order lowpass filter. Their known structures allowed me to figure the thing out. I worked with the Sigma100 (ADAU1701, etc.) version -- generally, parameters apply across the line of SigmaDSPs.
The Dynamic Bass Block's parameter map looks like this:
Address Parameter Comments
0x00 freq_varq This appears to be the frequency parameter for a State-Variable Filter
0x01-05 liir_coeff Biquad coefficients for a 2nd order Butterworth LP filter
0x06-26 compressor LUT 3 dB spaced compressor lookup table
0x27 tconst RMS time constant for compressor
The trick, of course, is to determine how these parameters derive from the values you enter into the block's GUI. This I discerned by extensive experimenting with the Capture Window:
The attached spreadsheet calculates my best approximation of the parameters based upon the block's GUI values. It's in Open Office (.ods) format. You can examine the formulas in this spreadsheet to write your microcontroller code -- thus allowing your final product's end users to adjust the Dynamic Bass as they desire.
Likely the same method could generate similar results for the Bass Enhancement block -- however I've spent way too much time reverse engineering the Dynamic Bass block already.
Perfect, thank you! I will give it a try.
Retrieving data ...