Digital X-over made easy.

In light of the recent discussion on digital X-overs, I have stumbled across the following device from Texas Instruments. The TAS3001 Digital Audio Processor. This device can be used for eq'ing, phase correction, and digital crossovers. All that would then be needed are the output DACs. I am in the process of desiging an evaluation system using two of these devices and an easy to program micro. Gotta love free samples. I will post my progress and findings.


2002-01-07 5:52 am
dac digital crossover

Check out the Accuphase's new product DF-35 which essentially doe what we are all hoping to get as our next holy grail in hi-fi. Their web site has a user manual which gives a full detail. (click the what's new option). The reviews in Japanese hi end audio circle can't paint with enough superlatives. It takes no genius to imagine how individual channels of speakers could sound if their cut-offs of unwanted frequencies were done at up to 96db! The Accuphase x-over network controls, in dsp, volume, frequency cut-off and time alignment.
Does the TI chip let you do these? How's your project going? You know Tact Audio has a similar system that is PC controlled.


2002-01-11 11:08 pm
digital x-over PC

To test two-way digital x-over, I use my PC, soundcard(s) and Labview programming. The Labview program filters any stereo wave file realtime into four channel output (stereo hi and low frequency).
Filtertype, order, x-over frequency, delay and separate volumes are user selectable.
No soldering needed.;)
Hmm, While LV is nice, and perhaps
serves as a great repository of
experimental data, I don't have a calibrated
microphone, so I can't be sure that the latest
parameter change is equivalent to the _final
version_ (much as I would like this to be the case).

I think the original poster was on-track with
the TAS3001. This part is available at Digikey
for $3.20, sig. cheaper than a DSP. I guess I
want to go 'blue sky' here and spell out my

The crossover uses two TAS3001 each running
identical coefficients, one for left and one
for right (if I am making a mistake here please let me know). In my design, the left and right channels, as clocked into the chip, would be redefined as 'bass' and 'treble'; the implication being that the chip shall not recieve the sensible SPDIF signal, but rather, a mono version of one channel, thus the requirement of two chips and an additional decoder.

Presentation of the result (L+R) begs a number of taste test questions (I would rather send the bass to my Crown and my teble to my tubes).

To the matter of programming the TAS3001, again I would defer to LabVIEW, and generate an application that somehow communicates a distilled version of a GUI to_the_chip. Of course, once the chip is power_cycled the last known coefficients would be used, i.e. stand alone.

Since I don't have a calibrated mic. I think that this would be the perfect setup to develop a MTM config free standing speaker, coefficients determined by emotional response of the listener, with direct coupling to all speakers, electricity in the room.



2002-02-06 4:51 pm
I'm new here, and although this thread seems to have gone a bit cold, I'll chime in a bit.

I'm currently running a digital xover on a Linux PC using BruteFir - related to NwFIIR tools that Yoda mentions earlier in the thread. I'm using a Delta 66 soundcard, but will be moving to a Delta 1010 in the forseeable future. IMHO, the PC is by far the best platform for DSP work for the hobbiest, since you get to spend your time doing DSP stuff, not designing circuit boards etc. With a *good* soundcard (Delta 1010, RME Hammerfall etc) the results are bordering on true state-of-the-art. My current work is what I'd call a prototype, and I'm running a 2-way system with 16k tap FIR filters. It takes ~15% of a 1.2GHz Athlon, so there's lots of room to grow. Results on my Carver ribbons are stunning. No real room correction happening yet, but that's next in line (after volume control)

Not having seen the earlier discussions on digital xovers, it's a bit hard to get a read on what people are looking for/thinking. The Accuphase unit for example is interesting, but looks like it only does the xover curves - it does not handle driver eq in any way (presumably so that Accuphase can sell you their mega-$$$$ digital eq). For the price they are likely to be charging, this strikes me as a crippling oversight for anything other than subwoofer xovers. Also, although 'coe' likes the idea of 96dB attenuation, the practical realities of driver integration almost always require you to have much gentler slopes. (Aside - we toured the Dunlavy factory a couple years ago, and I got to talk to John D briefly about his digital speaker prototype. Despite having the flexibility to use any xover slope they wanted, they ended up using ~3rd order 18dB/octave slopes (linear phase), as they sounded the best. )

The TI filter-on-a-chip units look quite interesting, although somewhat limited. The inclusion of parametric eq provides the opportunity for all-in-one xover and driver correction, which is cool (although I'm at a loss to explain why they need '80 mips' for basically 12 biquads). The biggest downsides are a) IIR filters only, no FIR, which means no linear phase xovers b) relatively complex overall system design. The latter would appear to be the biggest problem for the DIY crowd - by the time you get an input receiver, split that out to N/2 channels * Y bands, integrate the microcontroller to handle those chips, route to DACs/transmitters, cobble together some sort of UI and possibly measurement system, this is a non-trivial project. Couple that with the ample evidence that digital circuit design/layout is critical to good DAC/jitter performance, and it's a daunting task. If you have good hardware/microcontroller skills, this might not be an insurmountable problem, though

One option for volume control that should work well in this type of system is the CS3310 chips, or the new Burr-Brown equivalents. They are used in some highly regarded mega-buck gear, and are relatively cheap and easy to work with. Plus, you can run them balanced, which I believe should work well with balanced-output DACs. If you already have a microcontroller, these should be an easy addition, and *should be* better than the digital attenuation on the TI filter chips. The DIP versions of the CS3310's are available in small quantities, for something like $10-$12 each. I forgot the name of the distributer where I got mine, though :-(
I don't really think the design of a eq system with TAS3001 is all that difficult, although it would be a fair amount of work. For N channels and Y bands you need only (NY/12) chips if you cascade them. A significant amount of storage is required for coefficients, but you can simply lash together something like a uC taking analog measurements from a pot, a frequency selector, and then have the uC load the appropriate coefficients for the specified gain and band.

As far as the 80 MIPs goes, consider this chip can sample up to 96kHz, includes gain, a mixer, compressor, tone controls, as well as the 12 biquads. Upsampling 44.1/48kHz content to 96kHz has a beneficial effect on the phase response of the filters in the audio band from the little investigation I've done.

The downside of course is that as you cascade filters your quantization losses and simple error grows. The importance of this is highly application-dependent, and there are some clever things one can do to minimize these losses if the application permits.


2002-02-06 4:51 pm

Presumably you meant N*Y/2 chips, right? Or are you confusing biquad sections with output channels? These are stereo devices, so the number of total output channels determines the minimum number of chips needed. ie a 3-way stereo xover needs 6 output channels, hence 3 chips.

I'm not quite sure what you meant by cascading them, though - can you elaborate? The only need for cascading I can see is if you want to run steep slopes plus heavy eq for a midrange driver. 4-th order slopes will take 2 sections each, leaving only 2 for parametric eq - might be inadequate for badly behaving drivers like metal cones. For high/low pass, you only need 1 or 2 sections for the xover filter, so the remaining 4 or 5 sections should be fine for eq.

Anyway, my point was only that while it is relatively straightforward to see how all the pieces bolt together, there is a fair amount of thought needed to design the system in the first place, and a lot of detail work involved in actually putting together a circuit board that does it all - even if you don't include the DAC's. Additionally, the UI will have to be carefully thought out to ensure that the system can be easily configured and tweaked.
Russian Truck

A project can't be all things to all people. I still want to do this regardless of the SMT. In my case I want to upgrade my mediocre stereo; I attribute most of the audible distortion to iron core inductors (and a large number of MCM components thrown together without rhyme of reason) so I am thinking of spending my money on a digital crossover rather than expensive air core inductors.

I would use the CS3310 to control the volume and run the DACs at 100% level. I'm almost certain that a part with a lead pitch of 0.65mm cannot be soldered by a person without the aid of a microscope. If wave soldering is chosen then the board will have to have a solder mask, an additional expense, but construction should not dictate the path of a project so I think that issues such as jitter, rise-time and ground bounce are secondary because a) I would need expensive equipment to measure cause and effect and b) I would need to render multiple iterations of the board (expensive). My fate, it seems, is to deal with the board shop on some level and I think what I will do is spec the chips and then make DIP or PLCC adapters for any SMT chippies and prototype the thing in through-hole. $14 for an 28 SOC adapter is rather a lot so I might just make a lifetime buy of several types of adapters with no drilling or routing and then do such on a rainy day.

Does anyone know where the TI filter program is on the web?
just a few random comments:

Despite what you may think, even 0.5mm pitch can indeed be hand soldered without a microscope. Earlier today I was hand soldering 0603 SMD resistors and soldering 30ga. wires directly to 0.65mm-ish pitch pins on a QFP package... Mostly it takes practice, but a steady hand, a good eye, and of course some decent equipment certainly help. Magnification doesn't hurt, but i have a rather limited tolerance of anything other than the high-grade stereo 'scopes in the lab at work. I find the typical hobbyist lamps with the lens just strain my eyes and I lose proper depth perception. In any case, i often find it quicker and easier to solder SMT parts than through-hole. So, don't lose hope on using SMT.

BruteFIR should really be called BruteFFT, since it is not using FIR techniques at all. This is one reason I havn't looked too seriously at it, though the tools do allow for considerable processing to be accomplished if you are willing to accept the FFT and inverse transforms being done on your samples. Just how much impact those transforms will have on the sound quality.. well I haven't played with these tools myself so results are welcome. One thing I would like to see would be a wavelet implementation.

I'm not surprised to hear that Dunlavy is using ~3rd order slopes for their crossovers. A college buddy of mine and I did a quick experiment once using pre-processed .wav files to generate output for a midrange and a tweeter. We only tried a couple of simple tests, but the brickwall FIR sounded terrible, despite measuring roughly flat overall - there was a very obvious change of timbre as the frequency sweep crossed the cutoff point. In order for two drivers to sound integrated, there needs to be some overlap so that the polar patterns and timbre change gradually. Anyway, I can't wait to start testing out speaker crossover algorithms again. Hopefully I'll soon be able to get back to my DSP board design again and finish it off.


2002-02-06 4:51 pm
I think you're splitting hairs on terminology. FIR really refers to the filter topology, not the implementation used to realize that filter. BruteFIR using an fft-based fast convolution rather than a canonical MAC loop doesn't really change that. Brute-force MAC-style FIR's are highly inefficient - I suspect that nobody in audio is using them at the moment. Even Meridian who is doing linear-phase xovers is only using 2 563xx chips in their DSP8000 - nowhere near enough power to run a 4 way xover in direct form.

There might be some issues introduced from piecing together the overlapped buffers in an overlap-save fast convolution approach, but it hasn't been audible so far in any of my tests (though I haven't really been listening for it).

Whether BruteFIR is the right choice for speaker xovers is a valid question, though. The partitioned overlap/save implementation was chosen for acoustic space recreation applications using LONG - 100k-200k filters. These aren't really feasible with any other approach. Aside from room correction considerations 1k-2k is probably adequate for a typical speaker implementation, particularly if a few parametric biquad sections are thrown in.

Any dsp approach will obviously involve comprimises. If you want high resolution in the bass frequencies (eg for room correction) you basically have two choices - fast convolution or multirate filtering with subsampling/upsampling. Each has practical drawbacks, even if "in theory" they're ok.

Anyway, my results so far have exceeded my expectations. Of course, I really haven't done any A/B except with the conventional active xover I was using, since there really isn't another way to run 16k tap filters - any comparison will be between different filters as well as different implementations. My intention is to get a baseline system that I find acceptable, and then (knowing that I have a solid fallback position) explore alternate implementations.

I'm probably nitpicking, but the TAS3001 really isn't a 'DSP' in the normal sense. It's a fixed-purpose digital filter. Sure, it does DSP internally to perform the computations, but the term is usually applied to general-purpose chips, not fixed-function. The DSP in TI's new line is the 320DA610 (I think I got that right), and it looks like a monster, although I'm not sure when it'll ship in volume. I haven't looked at it in too much detail, but the specs seem to imply multiple execution units that go beyond the typical parallelism used in DSP's - 1800 mips on a 225MHz clock is 8 instructions/cycle - even if this is theoretical/marketing MIPS, it still points to an impressive degree of parallelism.
Hi All,

I've been looking at the BruteFIR code, and I'd like to know if anyone has an explanation of the Partitioned convolution algorithm it uses. The help doesn't explain it much at all, and the only other info I can find is hidden in research papers. Can anyone point me to a simple explanation of it. I don't want to have to pick through the code in BruteFIR, and it only compiles on Linux anyway (No disrespect to Linux, but that's one more learning curve I don't want to tackle, I'm only just becoming comfortable with C++ now)
I tracked down the basic overlap-save algorithm, am I right in thinking that partitioned convolution is a refinement on that, optimising for modern CPU's?

Has anyone else played with FFTW (Fastest Forier Transform in the West). 70ms to do a 1M point FFT on my 700Mhz PIII.

Also, Playing in Matlab demostrated that implementing a FIR filter by straight forward MAC's, and by various FFT methods are numerically equilivant.