This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TLV320AIC3256: Access to parametric EQ at run-time...

Part Number: TLV320AIC3256

Hello Everyone,

I have configured the MiniDSP (output DSP) for 7 bands of parametric EQ. I would like to adjust Fc, Q, and gain at run-time. However, the only control exported by the assembler is gain? How to I get access to the rest of the run-time parameters?

Thanks for the help,


  • When you load and run the code, on the right side of the screen you should see runtime properties and anything under that can be modified on runtime.

  • You are correct, the items on the right are called Runtime Properties. And I suspect when I use the AIC3256-EVM-U board I can adjust them by changing the sliders in the GDE parametric control (I haven't tried this yet). That is not the issue. The issue is that when I run Build->Generate Code and look at the resulting symbols in aic_main.lst, the only symbols that are exported for the parametric equalizer are the symbols for the gain variables in the coefficient RAM. Here's what I get:

    miniDSP_D Exported Coefficients
    Name                                     Address I2C
    ---------------------------------------- ------- ------------------
    analog_mix_MixGain1                      0x002D [0x2D][0x44]
    analog_mix_MixGain2                      0x002E [0x2D][0x48]
    analog_mix_MixGain3                      0x002F [0x2D][0x4C]
    analog_out_HPF_d1                        0x0004 [0x2C][0x18]
    analog_out_HPF_n0                        0x0002 [0x2C][0x10]
    analog_out_HPF_n1                        0x0003 [0x2C][0x14]
    plug_comp_DRC_1_DRC1AA                   0x000F [0x2C][0x44]
    plug_comp_DRC_1_DRC1AD                   0x0011 [0x2C][0x4C]
    plug_comp_DRC_1_DRC1AE                   0x0006 [0x2C][0x20]
    plug_comp_DRC_1_DRCAA                    0x000E [0x2C][0x40]
    plug_comp_DRC_1_DRCAD                    0x0010 [0x2C][0x48]
    plug_comp_DRC_1_DRCAE                    0x0005 [0x2C][0x1C]
    plug_comp_DRC_1_DRCK0                    0x0007 [0x2C][0x24]
    plug_comp_DRC_1_DRCK1                    0x0008 [0x2C][0x28]
    plug_comp_DRC_1_DRCK2                    0x0009 [0x2C][0x2C]
    plug_comp_DRC_1_DRCMT1                   0x000A [0x2C][0x30]
    plug_comp_DRC_1_DRCMT2                   0x000B [0x2C][0x34]
    plug_comp_DRC_1_DRCOFF1                  0x000C [0x2C][0x38]
    plug_comp_DRC_1_DRCOFF2                  0x000D [0x2C][0x3C]
    plug_eq_Inst1_Gain                       0x0017 [0x2C][0x64]
    plug_eq_Inst2_Gain                       0x0018 [0x2C][0x68]
    plug_eq_Inst3_Gain                       0x0019 [0x2C][0x6C]
    plug_eq_Inst4_Gain                       0x001A [0x2C][0x70]
    plug_eq_Inst5_Gain                       0x001B [0x2C][0x74]
    plug_eq_Inst6_Gain                       0x001C [0x2C][0x78]
    plug_eq_Inst7_Gain                       0x001D [0x2C][0x7C]
    tone_alpha                               0x0014 [0x2C][0x58]
    tone_Amplitude                           0x0016 [0x2C][0x60]
    tone_beta                                0x0015 [0x2C][0x5C]
    tone_Status                              0x0013 [0x2C][0x54]
    usb_mix_MixGain1                         0x0032 [0x2D][0x58]
    usb_mix_MixGain2                         0x0033 [0x2D][0x5C]

    Note that the all the modules output a reasonable set of parameters except the parametric equalizer. It only "supports" the gain for each filter bank.

    I've also thought, "well maybe I can use the gain symbol as the start for the rest of the filter bank coefficients". Nope, that doesn't work either: the gain items are all adjacent to each other, no room for other coefficients.

    My plan now is to set up the AIC3256-EVM-U, and monitor the the I2C port. Then adjust a parameter and see what address is updated. It's a backward way to do it, but if I can't get the address from the assembler, I need to be creative.

    Thanks for your help,


  • For PEQ, that's correct. 

    We only export the gain that user can change on runtime. This is because of the amount of resources that is needed in miniDSP in order to support runtime adjustments for these properties. 

    Basically, you will develop and reload each setting if you need to change the other properties.


  • Basically, you will develop and reload each setting if you need to change the other properties.

    I have each setting in my embedded processor and I'd like to reload to set the new values. How do I do this exactly?

    Thanks for your help,


  • If you have each setting, you can use standard EQ.

    Here is an apps. note on loading the setting in adaptive mode, see section 2.1.2 for DAC.

    Coefficient RAM Access Mechanisms.. (Rev. D) (


  • What module in GDE is the "Standard EQ"?

    Thanks for the app-note on miniDSP adaptive mode. We have that incorporated into our code already.

    Thanks for all your help,


  • I meant normal BQ filter.

  • Yes, I thought of that too. I think I can string 5 BQs back to back and reload them with each of the settings that I need.

    Thanks for your help,


  • Ya, you are welcome.