| Theme: light

Pulseaudio Crossover Rack


This project is in the very early design stages. It will enable you to insert a fully customizeable multiway crossover filter chain into pulseaudio and turn any computer with a multichannel soundcard into an active speaker crossover.

Design Goals

  • Nice and easy to understand GUI with UI elements for inputs (likely stereo), Filter implementations (EQ, HP, LP, Delay and Gain) and Outputs (likely 4 or more).
  • Automatic removal and insertion of pulseaudio-ladspa-sinks and chaining of them, persisted by writing ~/.config/pulse/default.pa
  • Frequency response graphs for individual filters and aggregated on output connectors.

Project Status

All filters except delays are implemented now and the GUI is coming along nicely, connections are shown now...

More progress: The decision to support arbitrary splits and combines into mono channels is obviously not supported by pulseaudio. Therefore I decided to make the whole project based on stereo channels for now. Surround could be implemented without any problems as channel count and mappings are parametrized everywhere but I doubt there will be anybody wanting to use a 5 or even 7 channel system with a 3-way-crossover (equating to 15 or 20 channels of soundcard outputs needed). The GitLab Repository is now up to date...

Hey, there is actually some progress here! I actually implemented three of the planned four or five LADSPA plugins (LP, HP, EQ - Delays are still TBD). I think I grasped enough of the pulseaudio magic now and I am beginning to write Filter classes and there will be tests for them (different filter scenarios and then testing against the expected ladspa configuration snippets that will be produced by them). As I decided to do it the hard way, i.e. making any combination of input sink channels, any combination of output sink channels and splits and combines of the signal path possible, this urgently needs tests beforehand to accomodate all the "weird" cases that my crossover will likely never have in them but some other users might try to implement. Who knows, maybe someone might actually use this piece of software ;)