Most modern DSP chips like the Analog Devices ADAU1701, as well as the TI equivalents, are programmable, using graphical tools to string together DSP processing blocks. The graphical design tool for the ADAU1701 is SigmaStudio. There are a number of brave DIY'ers who use SigmaStudio to program the DSP chips, and this works fine for applications where you can connect a PC to the board to upload new code whenever you want to change a parameter.
However, for loudspeaker design, there are a couple of logical configurations that can be "pre-programed" in the DSP chip, with all of the resources you would typically need. With this approach, you don't need SigmaStudio yourself--you just download a ready-made solution from someone who has a completed design. It's what I call a "generic" 3-way DSP program, because it can be reused from a wide range of active speakers. By using some clever code to determine how the SigmaStudio compiler assigned cell addresses, you can control your high-level processing blocks with a microprocessor instead of uploading new SigmaStudio code. And with some additional code in the microprocessor, you can change the parameters using a cell phone app from a Bluetooth or Wi-Fi connection.
The block diagram below shows the generic code that I'm using in the stereo 3-way DSP board described at Audiodevelopers. There are six screens for the Android app, as shown by the color coding. The top row of blocks in the diagram show the processing that affects the overall response. In addition to the 9-band EQ and the Baffle Step Compensation, there are two "custom filters" that can be any of the common topologies (low pas, high pass, shelf, peak, notch, all-pass, etc.) with a wide range of frequencies and Q values. For example, the user can select from 87 different frequencies, so these filters can be strategically placed where needed.
The blocks toward the bottom are channel dependent--for each stereo Tweeter, Woofer or Sub channel. The tweeter-woofer crossover has 6 crossover types, from first-order Butterworth to 8-pole Linkwitz-Riley, and it allows specifying 7 different frequencies. The woofer-sub crossover has 5 types at 5 different frequencies. Each channel also has a "custom filter" for fine-tuning the response. The Sub channel is unique in that it includes a Bass Enhancement block. The Bass Enhancement block has a standard high-pass (Rumble) filter, a peaking filter and the Analog Device psychoacoustic bass enhancement algorithm, which is pretty cool for getting the effect of deep bass from a small speaker..
The block diagram is simplified, in that it doesn't show the switching for 3-way to 2-way. In 2-way mode, the Sub channel isn't used, and the Bass Enhancement block is switched into the Woofer channels. By adding some additional frequencies to the Woofer-Sub crossover, the Woofer channel could be labelled "Mid" and the Sub channel labelled "Woofer"--I'll make that change in the near future.
The new Android program--all done in Android Studio, can control all of the blocks in this diagram--it all works. So with one of those "sort-of-easy-to-build" DSP boards, an Android cell phone, some amp boards and a power supply, you can build a very flexible active speaker with just about any drivers, and get good results with some basic tweaking. The advanced tweaking will require some PC software, but that's getting worked as a separate project...
However, for loudspeaker design, there are a couple of logical configurations that can be "pre-programed" in the DSP chip, with all of the resources you would typically need. With this approach, you don't need SigmaStudio yourself--you just download a ready-made solution from someone who has a completed design. It's what I call a "generic" 3-way DSP program, because it can be reused from a wide range of active speakers. By using some clever code to determine how the SigmaStudio compiler assigned cell addresses, you can control your high-level processing blocks with a microprocessor instead of uploading new SigmaStudio code. And with some additional code in the microprocessor, you can change the parameters using a cell phone app from a Bluetooth or Wi-Fi connection.
The block diagram below shows the generic code that I'm using in the stereo 3-way DSP board described at Audiodevelopers. There are six screens for the Android app, as shown by the color coding. The top row of blocks in the diagram show the processing that affects the overall response. In addition to the 9-band EQ and the Baffle Step Compensation, there are two "custom filters" that can be any of the common topologies (low pas, high pass, shelf, peak, notch, all-pass, etc.) with a wide range of frequencies and Q values. For example, the user can select from 87 different frequencies, so these filters can be strategically placed where needed.
The blocks toward the bottom are channel dependent--for each stereo Tweeter, Woofer or Sub channel. The tweeter-woofer crossover has 6 crossover types, from first-order Butterworth to 8-pole Linkwitz-Riley, and it allows specifying 7 different frequencies. The woofer-sub crossover has 5 types at 5 different frequencies. Each channel also has a "custom filter" for fine-tuning the response. The Sub channel is unique in that it includes a Bass Enhancement block. The Bass Enhancement block has a standard high-pass (Rumble) filter, a peaking filter and the Analog Device psychoacoustic bass enhancement algorithm, which is pretty cool for getting the effect of deep bass from a small speaker..
The block diagram is simplified, in that it doesn't show the switching for 3-way to 2-way. In 2-way mode, the Sub channel isn't used, and the Bass Enhancement block is switched into the Woofer channels. By adding some additional frequencies to the Woofer-Sub crossover, the Woofer channel could be labelled "Mid" and the Sub channel labelled "Woofer"--I'll make that change in the near future.
The new Android program--all done in Android Studio, can control all of the blocks in this diagram--it all works. So with one of those "sort-of-easy-to-build" DSP boards, an Android cell phone, some amp boards and a power supply, you can build a very flexible active speaker with just about any drivers, and get good results with some basic tweaking. The advanced tweaking will require some PC software, but that's getting worked as a separate project...
Comment