Mangling Audio for Fun
May 26, 2013I've been experimenting with audio stuff lately.
I started out a few years ago with a Serious DAC, the Benchmark DAC-1 USB, coupled with a pair of Sennheiser HD-650 headphones.
Despite a little distortion from the headphones, this combination is fairly faithful to the sound being played. The DAC-1 is as completely transparent a "transport" as there is. Listening to music is mostly satisfying with this pair, but some work needs to be done to make it a pleasure.
I recently started experimenting with tube simulation in AU Lab on Mac OS X. I also added cross-feed to the filter chain, and that's how I listen at work. My work set up is a simple patch of Soundflower feeding AU Lab filters with the output going to my Etymotic ER-4P IEMs. The result is perfect for work. No discernible fatigue results from this arrangement, and it makes me quite happy.
I also built a pair of speakers, the Tang-Band D3-1 kit. It's not a difficult build, basically consisting of layers of MDF and guiding threaded tubes into place. Not a bad beginner build. It doesn't sound great by default, however. They use 3" full-range drivers to produce sound, and they have no filters, so they try and reproduce everything from 20Hz to Nyquist (22.1kHz). They waste a lot of energy on the low end trying to drive the bass (sub-200 Hz) range.
I picked up an amp to drive them correctly, a Rotel RB-850 50w/8Ω amp. It looks like the monolith from 2001 turned on its side with a power button. It takes in a pair of RCA and feeds a pair of speakers. It needs a preamp to work. My DAC has a volume control, so I feed it directly.
The Tang-Band kit has a few problems: First, it throws energy away on both the low and high end. It's also a very linear speaker, with everything above 500Hz looking pretty much like a straight line. Very flat response. These two features lead to high distortion on the low end, and very loud highs. Ouch.
I knew something was wrong, so I started looking for fixes. Replace the speakers? I was reluctant to do so. EQ? Perhaps, but that can only handle part of the spectrum and it doesn't really do much above 10kHz where most of my problems lie.
I knew the feedback loop would involve measurement and some sort of hardware to transform the signal in real-time. I settled on a rather novel solution from MiniDSP in their Digital Room Correction (DRC) device, the MiniDRC-DI. "-DI" means works in the digital domain instead of analog.
But first I need to measure (Cue DMAIC!). Enter Room Equalization Wizard and a calibrated USB Mic, the UMIK-1, also from from MiniDSP.
After some trial and error and a lot of reading I was able to get up and running with REW. OS X has some issues with input quality, so it's probably one of the times I'll recommend Windows for the sake of simplicity. There are a number of programs on windows that don't exist on the Mac or on Linux.
Using REW to get what is called an "Impulse Response", I was able to export the result to a program called Python Open Room Correctino, or PORC for short. Pork takes the impulse data and turns it into a pair of filters that I load into the Finite Impulse Response section of the DSP on the MiniDRC box.
After some tweaking to levels after the FIR transform, I'm enjoying a really nice sound with a decent House Curve that boosts bass up to a usable range and kills the high-end harshness.
The result is amazing. I now have a model of my room baked into the result (from the impulse recordings) that eliminates a lot of room-based issues.
I'll expound on this further in the future, along with some tips and charts of the results.