6-output DSP with built-in amplifiers for triamplified systems

Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.
Hi DIYaudio!
I haven't written anything here for about 2 years so I figured it's about time.
You may be interested in checking out this thing I made:
DSC_9454.JPG

It's a 6-output 24-bit DSP with integrated 6-channel amplifier. I have stereo analog inputs and a 24-bit asynchronous SPDIF input. Like other designs based on the ADAU1701, it is endlessly reprogrammable, and its tweakability has already taught me a lot about room acoustics.
An externally hosted image should be here but it was not working when we last tested it.

The four knobs in front control Main Volume, room equalization (enable/disable), high-frequency cutoff and analog/SPDIF input mix. There are LED indicators for SPDIF detection and analog input clipping. And the whole thing is housed in a laser-cut case.

I've been trying to take a more algorithmic approach to room equalization, using Python scripts to calculate weighted averages of my room's frequency response and import them into Sigmastudio. Then best-average equalization across all listening positions becomes as easy as this :)
An externally hosted image should be here but it was not working when we last tested it.


And how does it sound? Pretty damn incredible. I'm driving a pair of triamplified speakers I built & designed about 5 years ago (definitely inferior to what I could build now) and the sound is incredibly neutral and transparent. The noise floor is basically inaudible. Enormous dynamic range. Vocal intelligibility is excellent. Bad mixes sound obvious, good mixes sound great. The electronics are so entirely sufficient that I'm now focusing on room treatment and controlling room-modes, because that's where the low-hanging fruit lie.

DSC_8461+fix.jpg

At the heart of this is a general-purpose DSP board which I built with the ADAU1701. The digital input pins are broken out (which allowed me to add the SPDIF input) although the digital output pins aren't. Two of the six analog outputs are provided with an AK4430.

I'm already building a next-generation version of this platform (DSP 02) that will be much smaller and more flexible, with smarter breaking-out of pins. DSP 02 will also offer more freedom in setup (exposed I2C bus, configurable sample rate) and a DIP pin-arrangement suitable for breadboarding. More on that soon!

Main project page
Open source files for you to play with
 
Last edited:
Interesting animated GIF of the EQing process. It wasn't clear to me whether the EQing was also being done via scripting or if this is just you tweaking the knobs manually. If this was done via scripting, I would like to learn more about how that was coded, e.g. the logic used to "optimize" the EQs, since I am also interested in playing around with that kind of approach.
 
Last edited:
Hi all!
I'm back with another enormous update.
Here it is.

In this update, I try (and fail) to bass-trap that 146Hz mode. I also try (and fail) to perform high-frequency equalization for power response, and other silly things.

My conclusion is that bass-trapping is not an economical strategy for actually fixing bass nulls. I'd probably make more progress by rearranging the room, to move the listening position out of the 146Hz pressure node.

I'm also running right up against the technical limitations of these speakers. The tweeter-midrange crossover at 2kHz is moderately visible in the speaker's off-axis response (9dB dip at 2kHz when measured at +-90 degrees). There's no way to fix this with EQ without screwing up my on-axis response. After a lot of listening, I've determined that on-axis frequency response issues are more audible and take priority.

It's a pity that bass-trapping didn't work because it looks cool!
244681425364450747.JPG


So what's next?
I'm working on a much smaller DSP board which can be installed directly into speakers. There's no reason to have a separate DSP+amplifier box on the floor, where it's likely to get kicked over. It will also have smarter breaking-out of pins, to improve its futureproof-ness and extensibility. I might even try to sell it.

I clearly need better speakers too, after seeing this sorry performance. Something with very well-controlled directivity. I'm tempted to build my own flavor of Linkwitz's LXmini speakers. Partly because I don't fully understand them, and partly to see what the fuss is about.

---
Replies to all you nice folks:

Reactance: I've been working on-and-off on DSP 01 for the last 10 months. I could have done a lot more in that time, but have also been dealing with other stuff. It's got nothing on my day job O_O

CharlieLaub: The EQ was tweaked manually here, although I used Python scripts to average multiple room-measurements and produce a target-EQ curve. Once the EQ curve is in Sigmastudio (and you can see the effect of your filters in real-time) it's almost trivial to keep tweaking until you have a 'flat' response. Fully-automatic EQ (at least <300Hz) is one of my long term goals, reliant on me figuring out what a 'correct EQ' even looks like.

Foxx510: A 'correct' speaker will show a gently down-sloping response as measured at the listening position, but that doesn't mean our brains are experiencing a down-sloping response. Measurements from the listening position represent the steady-state SPL, which is not necessarily what our brains receive from the complex mix of direct/early-reflected/reverberated sound which we actually experience in a small room. Floyd Toole (whom I quote too often) even says that room measurements won't tell you anything about a speaker above a few hundred Hz.
 
Missing component values

Thank you very much for sharing the project on your web page. Unfortunately, I was unable to find a few values of the following resistors which are on main board: R1, R8, R9
 

Attachments

  • R1.JPG
    R1.JPG
    61.5 KB · Views: 130
  • R8.JPG
    R8.JPG
    62 KB · Views: 124
  • R9.JPG
    R9.JPG
    29 KB · Views: 57
Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.