Software
I have some experience with real time programming and DSP so I decided to write the crossover software myself. Firstly I established that with a suitable software library I could receive audio from a sound card on a sample-by-sample basis, and also send multiple channels of output to the sound card, all locked together to the same sample cycle. With those building blocks in place, there were no limits to what I could do: the standard PC is unbelievably powerful, and 32 bit floating point calculations are no slower than integer.
For those interested in the fine detail, I concentrated on producing FIR-based linear phase filters with adjustable cut-off frequencies and slopes, based on fast fourier transforms – which run very efficiently on a PC. I could check they were working by saving the outputs in files and analysing them with standard PC audio software, and listening to the individual sound card outputs with headphones.
In practice, to use the final system, all the user (me!) needs to do is to run my Windows-based application and press the 'Start' button whereupon all the PC audio is processed transparently and routed to the active speakers with a modicum of latency. This means that I can play CD and DVDs from the ordinary DVD-ROM drive, play files and stream audio from the internet or, if I wanted to, I could listen to external sources of audio via SPDIF or analogue line-in.
Continues tomorrow