Post Go back to editing

ADAU1701 AUX controlled "graphic EQ" possible?

Is it possible to design an eq with fix frequency and Q and make the cut/boost variable with an external potentiometer?
I want to use the four aux analog inputs to controll some fixed frequencies live but without a pc.

Parents
  • Hello IPv6,

    You can do this using index selectable filters. These are great because they slew between one setting and the next. You will have to create a curve for every setting but I think you will find that 11 to 15 curves will probably be enough. I am not sure when you might run out of resources on the part. I put together this example of how to do it. Here are some details of this project:

    1) I used the 1701 mini eval board that only has one aux ADC pot so one of the filters is using this pot, the rest are using a DC cell. I named the DC cells "ADC In x" to make it obvious that these would be the other AUX ADC inputs. You will have to go into the register settings to enable the other ADC inputs. To test the bands with the DC cell just input a value between 0 and 0.999 and it will simulate the data from the ADC.

     2) I did not do it exactly like a graphic. The top and bottom bands are shelving and the other three are peaking. I think this is more useful but it can easily be changed.

    3) I used a double precision filter for the Low band and single precision for the rest of the filters.

    4) I have five bands in the filter cells. Two cut, two boost and one that is flat. So you always want to have an odd number of filters so one can be flat. If you add more filters you will have to add values to the lookup table and adjust the multiplier so the aux ADC will reach all the values. Since this is using the integer portion of the fixed point 5.23 number you will only be able to have 15 curves using this exact way to do this. Should you want more curves then instead of multiplying you will have to divide the ADC (multiply by a number less than 1) to bring it down to an integer number instead of a fixed point number. Then you change the input of the table to be an integer format. This is a bit tricky so these details should be on a different post.

    5) I made the lookup tables to have one extra value. This is to prevent a problem should the ADC ever get to 1.0. Then the table will overrun and cause unpredictable output. So I set the 6th value to be the same as the fifth value simply as a precaution. The ADC should never reach 1.0 but it is an easy thing to protect against and it does not use up too much  code resources.  

    Dave T

    ADAU1701GraphicEQExample.dspproj.zip
  • hey good evening sorry for asking so many questions but i need a 7 band eq me gpio pins potentiometer and with 4 adc potentiometers that would be possible thank you and merry christmas

  • Hello Lorenzo4711,

    The 1701 Graphic EQ example I suppled above in my earlier post uses 472 instructions. It only has four bands of EQ and each EQ has only two levels of boost and two levels of cut. Clearly not enough for most applications. So if you increase the number of levels in each EQ and add three more bands then that will probably exceed the MIPS available. Then you will have to incorporate a GPIO switch along with sample and hold blocks to switch banks for your AUX ADC pots. This will use more instructions again and you have not done hardly anything else like compression or bypass logic etc. So unless you plan on using more than one ADAU1701 I think you need to go to the ADAU1467 devices that have 88 pins and have 8 AUX ADC pots. 

    Then you can use the Holter's EQ that it is available in that part that allows easy interfacing and building of a graphic EQ. If you use the ADAU1452 then you only have six AUX ADC inputs so you would have to use the bank system again but you have many more MIPS and more GPIO so it is not an issue, just a detail. 

    If you want to go this route then start a new thread asking about the Holter's EQ and I will post it there. It is not very relevant to this thread. 

    Dave T

Reply
  • Hello Lorenzo4711,

    The 1701 Graphic EQ example I suppled above in my earlier post uses 472 instructions. It only has four bands of EQ and each EQ has only two levels of boost and two levels of cut. Clearly not enough for most applications. So if you increase the number of levels in each EQ and add three more bands then that will probably exceed the MIPS available. Then you will have to incorporate a GPIO switch along with sample and hold blocks to switch banks for your AUX ADC pots. This will use more instructions again and you have not done hardly anything else like compression or bypass logic etc. So unless you plan on using more than one ADAU1701 I think you need to go to the ADAU1467 devices that have 88 pins and have 8 AUX ADC pots. 

    Then you can use the Holter's EQ that it is available in that part that allows easy interfacing and building of a graphic EQ. If you use the ADAU1452 then you only have six AUX ADC inputs so you would have to use the bank system again but you have many more MIPS and more GPIO so it is not an issue, just a detail. 

    If you want to go this route then start a new thread asking about the Holter's EQ and I will post it there. It is not very relevant to this thread. 

    Dave T

Children
No Data