View Full Version : Digital crossover

04-15-2016, 08:37 PM
I'm an old had at analog speaker design and wanted to explore the wonderful world of digital signal processing.

I have a set of dipole speakers that I constructed a few years ago:

The dipole low end and horn-loaded tweeter require significant EQ. I have been using a bi-amped design with minidsp (www.minidsp.com -- 4x10) hardware for the crossover. This works adequately but suffers from poor usability -- the IR receiver is very touchy and there is no display. A few months ago I embarked on a project to see if I could do better and I landed on teensy!

Here's what I've prototyped so far:

Please excuse the sloppy wiring ;) I'll clean that up when this is working well.
I have two audio boards which function independently using the latest audio library (quad in (only using 1 stereo channel) and out)
The ILI9341 display works great with the improved library
I have an IR receiver going into pin 8 and it functions well

The big board you probably don't recognize is a spidf transceiver from twistedpearaudio.com (http://twistedpearaudio.com/digital/wm8804.aspx). It uses a Wolfson 8804 (now cirrus. datasheet (http://www.cirrus.com/en/products/pro/detail/P1261.html)) chip to convert spdif to i2s. I have it's output wired into teensy pin 13. This is where I've run into a problem.

I have it running in "Hardware mode" which configures the chip via a set of 4 jumpers. These allow the chip to run as master vs slave, how to route the signals, and the format of the digital out. I first set this to slave mode (teensy supplying the clocks), spdif -> i2s routing, and 16-bit i2s format. This successfully produced audio at the output of the audio cards BUT a faint, sporatic, high-frequency clicking could be heard in the background. I thought I could be clipping so I just passed the signal through with some attenuation -- still there. Plus, the clicks don't appear to coincide with loud input-- they're just random and irritating. I also thought it could be sloppy wiring (and it still could be) but I can filter the clicks out using a low-pass filter (in the teensy). That limits where the clicks could be entering the system to the line between the 8804 and the teensy.

In an attempt to debug, I switched the 8804 to use right-justified 16-bit i2s. This changed things completely. Instead of random clicks, low-volume input is now perfect, but high-volume input is horrible. It doesn't quite sound like a clip during the peaks in the audio, but it's certainly losing it in some manner.

Could the teensy be occasionally missing the first bit in the i2s word when configured in 'standard' i2s? Are my clock lines too long? I can try to stack everything closer together, but I wanted some feedback before embarking on that one.

Any other debugging suggestions?

Thanks for your help!

06-16-2017, 01:02 PM
Somehow missed this question earlier!

My first guess would be sample rate mismatch could ultimately be responsible for those click sounds. Somewhere, something is may dealing with buffer overrun or underrun.