Audio DSP with 15-cut equalizer. - Page 1
Forum section: electronics / projects

author: luiHS
author_rank: Frequent Contributor
timestamp: January 11, 2024, 07:18:33 pm
content: Hello.Could anyone recommend a DSP that has a programable equalizer with at least 15 bands?I've been looking at Texas and Analog, but I can't find anything that meets this requirement. I have a TAS5805 that does have a 15-band programmable equalizer, but it also includes a 2x23W amplifier, I only need the DSP without an amplifier.

author: moffy
author_rank: Super Contributor
timestamp: January 12, 2024, 02:49:37 am
content: About the nearest thing I can think of:https://www.analog.com/en/design-center/evaluation-hardware-and-software/software/ss_sigst_02.html#software-overviewSigmaStudio, Analog Devices graphical software for their DSPs.

author: macboy
author_rank: Super Contributor
timestamp: January 12, 2024, 03:24:06 am
content: Do you really need 15 bands? If you make each band/filter fully parametric (arbitrary frequency, Q, and gain/cut), then you can do more with less. The genius is that in the digital domain, unlike in the analog domain, full parametric filters are really no more difficult to implement than a fixed frequency EQ band. It is still just one biquad filter. You just need a bit of math to calculate the coefficients and that isn't terribly complex. A long time ago I used TAS3103 (obsolete now but still available) which has plenty of configurable biquads available per channel to do what you want. For this chip you don't write any DSP code, you just configure the various mixers, biquads, delays, etc.

author: luiHS
author_rank: Frequent Contributor
timestamp: January 12, 2024, 08:03:50 pm
content: Quote from: moffy on January 12, 2024, 02:49:37 amI had already read about SigmaStudio, what I still have to see is what DSP processors it works with and what features it offers to implement biquad filters, and how many.

author: luiHS
author_rank: Frequent Contributor
timestamp: January 12, 2024, 08:09:07 pm
content: Quote from: macboy on January 12, 2024, 03:24:06 amThat TAS3103 looks very interesting, unfortunately out of stock at Mouser, and although Digikey still has it, if the product is discontinued there is no possibility of creating and maintaining a product in the future.The number of filters that I may need may vary but for safety I want to implement at least 15 filters, it is about being able to make a correction in the audible spectrum based on the measurements of a spectrum analyzer, all automatically. Surely this can all be done with a single DSP, but I don't have the experience to do it, I have an application with a microcontroller that acts as a spectrum analyzer, now I lack the filters that can make the necessary corrections.

author: cncjerry
author_rank: Unknown
timestamp: January 12, 2024, 09:06:22 pm
content: If this is something you are building, look at the ADAU1701 and 14xx series boards from Wondom (Sure electronics). They are supported by SigmaStudio. You can build as many channels as you like using their boards. I use them extensively for crossovers, tailoring, etc. Each of the ADAU1701 boars has 4 pots on it that can be easily unsoldered and replaced with sliders. There are other ways to do it too. They have all kinds of amps, volume controls, etc.The 14xx series board uses I2C for communications. I've attached crystal semi (and other) I2C interfaced DACs with it.SigmaStudio by Analog Devices is a graphical user interface DSP design system.If none of that works for you, then go back to ADI and use their SHARC chips (probably have other fish chips now).Jerry

author: SiliconWizard
author_rank: Super Contributor
timestamp: January 12, 2024, 09:32:18 pm
content: Quote from: luiHS on January 12, 2024, 08:09:07 pmHave you looked at all TI's offering? They have a whole line of TASxxxx ICs, some of which are just DSPs without power amplifier. There are others than the TAS3103. The TAS32xx series is more recent for instance.Unfortunately, there seems to be little to no stock for most of the TAS series at the moment.I'm not sure what your goal is exactly. I would personally probably go for a MCU with enough processing power instead, would be more flexible and less "niche", thus should be less problematic to get ahold of.Something like the NXP iMXRT10xx series would be great, probably even largely overkill for this. You didn't state the number of channels or sample rate, but for stereo audio stuff, you could implement this even with a Cortex-M4. Probably even with a Cortex-M0 running at a high enough frequency as long as you don't use floating point.Those TASxxxx chips implement EQs with biquads AFAIR (which is the most common way of doing it). Running 15 biquads in real-time in mono or stereo at audio sample rates won't take a lot of processing power.

author: Marco
author_rank: Super Contributor
timestamp: January 12, 2024, 10:04:46 pm
content: The Teensy community seems the most active for actual hobbyist DSP programming.Power wise a iMXRT10xx can easily do an arbitrarily precise equalizer using convolution (design arbitrary transfer function, use cepstrum method to convert it to a minimum phase filter, convolve). How easy it is to get the Openaudio library running and implement something like that, I don't know though.

author: tooki
author_rank: Super Contributor
timestamp: January 12, 2024, 10:12:50 pm
content: Quote from: luiHS on January 12, 2024, 08:09:07 pmSeriously, take a look at Sigma Studio. It’s way easier than you think. (I’ve only played with it, haven’t actually used a DSP yet, but it basically lets you wire and configure things by drag and drop and then it generates the DSP code, and the registers that you use in your MCU code to control it.)

author: luiHS
author_rank: Frequent Contributor
timestamp: January 12, 2024, 10:41:39 pm
content: Quote from: Marco on January 12, 2024, 10:04:46 pmI know the Teensy audio libraries, and I see that I can easily create a graphic equalizer with multiple biquad filters, what doesn't convince me is the ADC and DAC since they have 12-bit resolution, I need at least 24-bit. The SGTL5000 DAC appears in those libraries but it is still insufficient, it only has 16bit resolution.Unless external ADCs and DACs with higher resolution (24-32 bit) can be connected via I2S, it would not work for me.If I could do the entire project with a Teensy 4, then I can take it to a board of my own design with an RT1064, which is the processor I usually work with.In fact, I had already planned to use the Teensy audio libraries with the FFT functions to analyze the audio spectrum of the signal, and with that data apply an automatic correction with the graphic equalizer.

author: moffy
author_rank: Super Contributor
timestamp: January 13, 2024, 02:56:38 am
content: Quote from: luiHS on January 12, 2024, 10:41:39 pmThere really isn't much of a problem adding a 24 bit codec to the RT1064 via I2S, their development boards usually come with at least a 16 bit codec. But the RT1170 has two cores, one could be used for realtime such as the codec and interface while the main core could be used to do all the DSP processing, I mention it because the EVK board comes with a 24 bit codec the WM8960.

author: donlisms
author_rank: Frequent Contributor
timestamp: January 13, 2024, 03:43:15 am
content: I've done live sound my whole life. It may be different than what you're up to, but there is probably overlap. These are just some thoughts I would share if we were friends and you were working in such a thing, as best I understand what you're doing.Indeed, the traditional approach to tuning for the room (or whatever) is a graphic equalizer to make corrections to the issues revealed by a sorta-matching analyzer. Regardless of how their center frequencies are spaced, GEQ filters generally have a bandwidth of something like an octave; similarly the analyzer.One problem is that the real-world issues that are making things sound bad are generally specific resonances with very narrow bandwidths - something like a 1/10 octave filter is usually much more appropriate.Then we have the inescapable issue that these real-world resonances are not going to fall at the same frequency as the center of the analyzer's filter bands. Since the issue's frequency is off to the side of one of the filters, the analyzer is going to report a smaller amplitude than actually exists, and the broad equalizer filter is going to scoop out all kinds of bandwidth that had nothing to do with the issue, just trying to get the math right.For these and other reasons, I would never go back to trying to tune a system with a fixed, broad set of filters (as in a graphic equalizer). What I'm suggesting is that these things matter enough to make or break the usefulness of a tuning system.A nice FFT should be easy to get; my phone has a couple of free apps on it that work reasonably well. Then a few parametric filters, as mentioned earlier, can be dropped in where needed, at the proper frequencies, at the proper bandwidths, at the proper gains, to deal with the actual issues quite effectively.You end up with better sound, which was probably your original goal, rather than quite possibly (and easily) making things worse, or at the very least, not improving things in any significant way. I'd be happy with three or four PEQ bands, and maybe a high pass filter to keep the bass under control (and not blow up the speakers), for almost any tuning scenario. More bands are funner, but probably not really necessary.(All this - especially if it's in a car. Boomity boom boom. Single-frequency issues, not big wide bands.)

author: luiHS
author_rank: Frequent Contributor
timestamp: January 13, 2024, 04:12:03 am
content: Quote from: donlisms on January 13, 2024, 03:43:15 amI have not said that there will be 15 fixed frequencies, the filters in the DSPs can be changed to vary their frequency and Q. The spectrum analyzer that I want to implement allows the spectrum to be divided into 1024 bands, enough to precisely determine which part of the spectrum audible needs a correction, then the DSP filter can be configured in real time at that frequency and with the appropriate Q so as not to alter adjacent frequencies.What I want is to make sure that the hardware allows a certain number of filters to be configured to make the necessary corrections in the worst case. And do all this while maintaining maximum sound quality, this is with minimum 24-bit resolutions for the ADC and DAC.

author: SiliconWizard
author_rank: Super Contributor
timestamp: January 13, 2024, 08:01:06 am
content: Quote from: luiHS on January 12, 2024, 10:41:39 pmOf course they can be. The iMXRT10xx supports I2S up to 32-bit/sample, but that's the case of a very wide range of MCUs out there, even much more humble ones. Actually, apart from very simple 8-bit MCUs these days, the MCUs that do not support I2S are rather rare and when they do, a huge majority of them support I2S up to 32-bit/sample (64-bit/frame). That's basic stuff these days. Of course you also need to have the processing power, but the iMXRT10xx would have zero problem doing that while having probably still 90% of CPU to spare.So this requirement is absolutely nothing to be concerned about. Yes add externals ADCs and DACs. 24-bit is probably plenty fine.

author: moffy
author_rank: Super Contributor
timestamp: January 13, 2024, 08:26:26 am
content: Just an FYI NXP has the Essential Audio Processing Library:https://www.nxp.com/design/design-center/software/embedded-software/essential-audio-processing-library:ESSENTIAL-AUDIO-PROCESS-LIBRARYit includes 'user equalizer', 'parametric spectrum analyzer' and supports RT1064/RT1060, RT1170 and others.

author: luiHS
author_rank: Frequent Contributor
timestamp: January 13, 2024, 09:17:10 am
content: Quote from: SiliconWizard on January 13, 2024, 08:01:06 amThe problem is not the hardware, but the software, the Teensy audio libraries do not support working with resolutions greater than 12 or 16 bits, they are not useful for my application.

author: luiHS
author_rank: Frequent Contributor
timestamp: January 13, 2024, 09:20:10 am
content: Quote from: moffy on January 13, 2024, 08:26:26 amThat looks very interesting, thank you. I have downloaded it, but unfortunately it does not work for me, probably because my computer is running Windows 7, and Windows 10 or higher is probably needed.In the end I will have to give in and install Windows 10, I haven't done it in a while since I bought it out of laziness, my Windows 7 with all the programs I have installed works very well, I'm sure I'll change it to W10 and it's all problems, apart from I will have to install all my programs again.

author: donlisms
author_rank: Frequent Contributor
timestamp: January 13, 2024, 09:54:39 am
content: Quote from: luiHS on January 13, 2024, 04:12:03 amSorry for any misdirection on my part. I thought you had said "graphic equalizer," which has a specific meaning. You're thinking more about a parametric equalizer, not graphic.If the 1024 analyzer bands are spaced logarithmically, that should be adequate.

author: moffy
author_rank: Super Contributor
timestamp: January 13, 2024, 11:26:50 am
content: Quote from: luiHS on January 13, 2024, 09:20:10 amThe worst part is when you can't find drivers for the new OS and your perfectly working older hardware, that can be painful.

author: Marco
author_rank: Super Contributor
timestamp: January 13, 2024, 07:38:38 pm
content: Quote from: luiHS on January 13, 2024, 04:12:03 amThen just use simple FFT overlap add convolution rather than messing with band filters (OpenAudio has it build in). 50 msec delay isn't so bad.

author: SiliconWizard
author_rank: Super Contributor
timestamp: January 14, 2024, 12:24:25 am
content: Biquads are not hard to implement, pretty basic stuff. Especially on the iMXRT series which have double precision FPU, you don't have to mess with fixed point or anything, you can pretty much implement it all "textbook"-like and still get good performance.For those not familiar with biquads and who don't want to spend too much time learning, I recommend these web sites, very useful:https://www.w3.org/TR/audio-eq-cookbook/https://www.earlevel.com/main/2021/09/02/biquad-calculator-v3/