Pulseaudio Crossover Rack - multi-way crossover design & implementation with linux

I did some thinking last night. It shows on-board audio, but only mono/analog. The sound comes out of HDMI. So there is a driver for the soundcard, but I guess it is limited. That's actually a similar situation to Raspbian, which shows two soundcards, the analog and HDMI, but both in stereo and limited to 48 kHz. HDMI is also in stereo in the Raspbian driver, even though the hardware allows 8 channels PCM over HDMI. Up to 192 kHz and 32 bit even, I believe. I have done the kernel hacking to get the 8 channels and 192 kHz.

So I thought I'd look around the file system and see if I could locate the driver and see configuration and whether I could recompile with the standard or hacked Raspbian driver. Or change some parameters in the Ubuntu driver. While doing that, I found the folder with drivers for all kinds of soundcards, including Hifiberry.

While it would be nice to sort out HDMI, my current end-goal for this project is to get it working with the Hifiberry Amp2 and use it to power desktop speakers in the office. I'll try out setting it up for the Amp2 first.

Anyone please correct me bluntly if I am clumsy, unknowing or missing the big picture. :D
 
Ha Bart! Supposedly yes, but not with basic Raspbian/the native OS. I am yaking little steps to get Ubuntu server with Lubuntu desktop working with a raspberry pi and Hifiberry amp2.

Do you hack armhf? Would be so cool to get going on rpi.

I haven't tried it yet, plus I am an hardware engineer, not a software developer ;)

So, as far as I understand this crossover pack only exists in a debian package?
Is there any way to "convert" or rebuild this to Arch, since I am only running on Manjaro systems?
 
Success!!

Finally had some time to swap the microsd card to a pi with the Hifiberry mounted. I had already set up the config.txt for Hifiberry. so after a simple reboot, pulseaudio saw a stereo soundcard. I played a song. sound came out of the loudspeakers attached to the Hifiberry. A slight confusion when I started the crossover-rack, because to get it working with the built-in audio, I had to set the output to mono. The console showed an error looking for a mono output. After setting the output to stereo again, it simply worked. First thing was a high-pass and sliding it from 2 Hz to 20.000 Hz gave me the expected sound, a high-pass filter sliding up and the music fading into the higher limits. Up, down, up, down, solid. Then adding a parametric filter, a shelving filter, all without any error or click or whatever.

So pulseaudio-crossover-rack works well on a rpi with Debian-based OS, Pulseaudio 11 and Hifiberry Amp2.

The driver for built-in audio with Ubuntu server does not seem to support stereo at all, not even for HDMI. I think Charlie Laub was looking into Ubuntu server for rpi and looking into multichannel HDMI, but not sure.
 
Success!!

Finally had some time to swap the microsd card to a pi with the Hifiberry mounted. I had already set up the config.txt for Hifiberry. so after a simple reboot, pulseaudio saw a stereo soundcard. I played a song. sound came out of the loudspeakers attached to the Hifiberry. A slight confusion when I started the crossover-rack, because to get it working with the built-in audio, I had to set the output to mono. The console showed an error looking for a mono output. After setting the output to stereo again, it simply worked. First thing was a high-pass and sliding it from 2 Hz to 20.000 Hz gave me the expected sound, a high-pass filter sliding up and the music fading into the higher limits. Up, down, up, down, solid. Then adding a parametric filter, a shelving filter, all without any error or click or whatever.

So pulseaudio-crossover-rack works well on a rpi with Debian-based OS, Pulseaudio 11 and Hifiberry Amp2.

The driver for built-in audio with Ubuntu server does not seem to support stereo at all, not even for HDMI. I think Charlie Laub was looking into Ubuntu server for rpi and looking into multichannel HDMI, but not sure.
Nice to know that it works.

Have you also tried this with a real-time kernel?
I am actually pretty curious what kind of delays we can expect.
 
IIRC Jürgen has already stated that channels get processed in stereo pairs. Why would you use different filters for each channel?

Crossover-rack, different processing for tweeters and woofers for instance. Also, room correction, for instance multisub setup, with differentiated processing to get smoothest response in the main listening position, or lowest seat-to-seat variance.
 
Crossover-rack, different processing for tweeters and woofers for instance. Also, room correction, for instance multisub setup, with differentiated processing to get smoothest response in the main listening position, or lowest seat-to-seat variance.

In a DSP normally processing goes per clock tick, so basically it doesn't matter how many filter blocks or channels you add to the chain.
(obviously depends on how much group delay your filters adds)

I was still wondering though if you could do a loop-back measurement of the latency, or at least tell us what the "buffer size" is? :)