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

...aaaaand yet another new bugfix release:

Code:
pulseaudio-crossover-rack (1.61) stable; urgency=medium
  *  bugfix:
     - deleted filter objects did hang around in the database if
       they were linked to another filter.
 -- Jürgen Herrmann <t-5@t-5.eu>  Sat, 05 Feb 2022 20:10:18 +0200

Nothing really bad will happen if deleted filters will hang around in the file and in the linked list of another filter. Only thing is that the file is minimally larger and you might get confused as a filter hangs around in the link list that you don't see anymore. If that happens, just delete it from the link list.
 
DarpMalone, what are you using to receive the hdmi out? An AVR?
Sorry for the delay. Temporarily, (like, for the past almost 2 years. Hehe) just this cheap 7.1 LPCM HDMI audio extractor that I bought just to test the software and learn how PulseAudio worked. I assumed that it would be noisy & wouldn't sound too good but at least I'd figure out if a software based crossover would be a realistic solution. It actually sounds fine (to my ears, at least). almost zero hiss, connected to my power amplifiers with no attenuation, so I've been in no hurry to replace it.
 
Last edited:
  • Like
Reactions: 1 user
Hi @Tfivehich

I'm wondering if there's a way in PulseAudioVUControl to specify what 2 input channels get sent to paxor. I know in the Record screen I can control what inputs Pulse sends to "loopback to PaXoverRack.Input" but by default it sends "Front L / Front R" (Inputs 1/2). My device has 10 inputs and the Toslink inputs that I'm trying to use come in on "Auxiliary Channels" (Inputs 9/10). I can see the levels coming in on 9/10 but I can't see any way to specify 9/10 rather than the default 1/2 in the Record tab

Inputs.jpg


Record.jpg


Perhaps @CharlieLaub can help as well.

Thanks guys
 
Last edited:
you might try "load-module module-loopback channels=2 channel_map=xxx,yyy"

Replace xxx and yyy with hte respective channel names. You kan find out the channel names with "pactl list sources" and watch for the "Channel Map" section. My Scarlett 18i20 for example reports:

Channel Map: front-left,front-right,rear-left,rear-right,front-center,lfe,side-left,side-right,aux0,aux1,aux2,aux3,aux4,aux5,aux6,aux7

for its 18 outputs...

Have not tried this, please report back!
 
Thanks for the clues T5

Okay, so Here's the output of pactl list sources
Source #2
State: RUNNING
Name: alsa_input.usb-miniDSP_MCHStreamer_I2S_TosLink_00001-00.multichannel-input
Description: MCHStreamer I2S TosLink Multichannel
Driver: module-alsa-card.c
Sample Specification: s32le 10ch 48000Hz
Channel Map: front-left,front-right,rear-left,rear-right,front-center,lfe,side-left,side-right,aux0,aux1
Owner Module: 7

so in default.pa I added the following:
load-module module-loopback channels=2 channel_map=aux0,aux1

Promising!... I see that the following change has taken place, which in theory means that aux0,aux1 is now mapped to PaVoverRack's input.

The correct inputs are showing in the Playback and Recording tabs. Recording tab actually show input signal. Srange, no input signal in the Playback tab though.

220215_115750.png


220215_115225.png


Output Devices still reports that PaXoverRack is monitoring the FrontL/R though and no signal indicated. Also the PaXoverRack gui still reports input from Front L/R
220215_120454.png
220215_120652.png
 
Output of pactl list sinks:
Sink #19
State: RUNNING
Name: PaXoverRack.Input
Description: PaXoverRack.Input
Driver: module-combine-sink.c
Sample Specification: float32le 2ch 48000Hz
Channel Map: front-left,front-right

So is there a way to edit PaXoverRack.Input's channel map to reflect aux0,aux1 ?
 
Member
Joined 2008
Paid Member
I've got PaXoR running on a pi4 8GB, ubuntu server and Xubuntu desktop. Managed to get it to output to my ESI Gigaport EX and successfully split the audio into 3 bands for low-mid-high crossover at 300 and 3k Hz. Got squeezelite providing input to PaXoR, but only with lots of pops and clicks...
Any suggestions for what parameters to try with the squeezelite command to eliminate pops?
 
If that really works i could probably pretty easily add a config dialog for the input where you can choose the input channels. Probably around 2-3h of work. Keep me updated...
I really appreciate your willingness to do that Tfive. I do think that your suggestions worked, even though I'm hearing no audio. PaXoverRack is not the issue at this point.

I'm beginning to think that there's an issue with either the MCHStreamer's optical input or it's firmware configuration (format mismatch?). I see the meters dancing in PulseAudio's output section but no sound coming out the DAC. Also, the meter's input level from the toslink source seems very low (maybe only peaking @ -30db when it should be peaking near 0db... Any other source that I send to the DAC is audible.

I completely removed PaXoverRack from the equation and made the default Output my Television, and again I can hear all sources through my TV except for the MCHStreamers toslink input, yet the meters indicate that there should be sound (albeit low)... I'm going to investigate this and report back.

Thanks for all of our help!
 
I've got PaXoR running on a pi4 8GB, ubuntu server and Xubuntu desktop. Managed to get it to output to my ESI Gigaport EX and successfully split the audio into 3 bands for low-mid-high crossover at 300 and 3k Hz. Got squeezelite providing input to PaXoR, but only with lots of pops and clicks...
Any suggestions for what parameters to try with the squeezelite command to eliminate pops?
You can try to enable realtime scheduling:
https://t-5.eu/hp/Software/Pulseaudio Crossover Rack/OnlineHelp/#scheduling

And maybe you need to disable timer based scheduling:
https://www.diyaudio.com/community/...implementation-with-linux.330273/post-5897719
 
Member
Joined 2008
Paid Member
No change in output pops (which are are relatively consistent at about 2 pops per second). I tried with and without the realtime scheduling and the timer based scheduling. Also uncommented 'high-priority = yes' in daemon.conf. The pops do not happen with squeezelite outputting directly to the DAC, but that is fullrange signal to all six channels. I added '-o PaXoverRack.Input' to my squeezelite command and that didn't change anything either. It may just be a hardware incompatibility with PaXoRr...

I have one of the HDMI extractors coming from AliExpress, so I'll try that one when it arrives.

Immediately, am going try Bullseye instead of UbuntuServer and Xubuntu.
 
Last edited:
Member
Joined 2008
Paid Member
It works fabulously out of the box with Bullseye 64!

Synchronization even works pretty well with all my other Squeeze players in the house. A bit of a blip at the beginning of a song, but I think I can tweak the squezelite settings to remedy that.

Exceptional work and help, Tfive! And thanks to DarpMalone again for reporting how well it works with Bullseye. I am excited again.
 
  • Like
Reactions: 1 user