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

Member
Joined 2008
Paid Member
The last line helped only in the sense, that the program did not hang, but the console was reporting some errors in ascii.py (or similar name). I think the problem is related to the name of the internal soundcard having non-ascii characters. Switching the language had no influence,so I installed the English version with CZ keyboard and I am a happy user since then. It works like a charm and I will finally test it in the way I intended:)
 
Member
Joined 2008
Paid Member
Sorry, I had to recreate it on the other computer. Here it is:

Traceback (most recent call last):
File "/usr/lib/pulseaudio-crossover-rack/WindowClasses/MainWindow.py", line 411, in onModulesInsert
self._unloadModules()
File "/usr/lib/pulseaudio-crossover-rack/WindowClasses/MainWindow.py", line 920, in _unloadModules
ret = os.popen("LC_ALL=c pactl list modules").read()
File "/usr/lib/python3.6/encodings/ascii.py", line 26, in decode
return codecs.ascii_decode(input, self.errors)[0]
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 2012: ordinal not in range(128)
 
Hello Tfive,
I asked these questions of you;

I use an active analog system and find your software very interesting. My concern is running three of four about five metres or through the wall in proximity to 240V cables.

I have a question; is it possible to use two separate USB sound cards (three to five channels) so they can be installed inside the speaker boxes and drive each speaker separately?

I meant having both USB sound cards plugged into the Pulseaudio box and run via an extension cable to the speaker boxes.

to which you answered;

Software-wise this is not a problem for Pulseaudio Crossover Rack

I have setup a crossover for one USB sound card but cannot see how to set up a second with the same parameters. It includes everything on the help page but have included an inverter in case I bridge amps for the woofer.

The problem is the Input box has both stereo inputs and it isn't possible to select either one or bot. in my case, I need to select one only. Is there a workaround I don't see?
 
Ah, now I see your problem. You want to use one soundcard for each side, left or right... Actually that is only possible with a little workaround with PaXoverRack atm. You will have to combine the two soundcards and make one "big" soundcard from the two soundcards at ALSA level and then use that in pulseaudio.

More infos here: Alsa Opensrc Org - Independent ALSA and linux audio support site

And then use module-alsa-sink device=multi in your default.pa file.

Hope that helps...

PS: This is a limitation of how pulseaudio works internally, it can only route audio to one output sink as of now. If PaXoverRack will eventually go multichannel I will have to mitigate this by a special pulseaudio splitter/combiner module that can do arbitrary routing. Still don't know if this will ever happen!
 
Thanks. Tfive.
Is it not possible to select one channel or both in the input box, or is this far more difficult than I appreciate?

Having this ability opens up PAXRack greatly by allowing two sound cards, one in each box, thus avoiding four or more unbalanced line level wires to each speaker with all of the interference this may cause.

Thank you for your work. It is an excellent solution; flexible, powerful, easy, and allows for one box music.
 
Last edited:
To clarify things: the input is already two channels, left & right. The whole path through the filters is stereo. The only limitation at the moment is that a output can only be mapped to two channels of one soundboard, so in your case you have to make a eight or ten channel soundcard from the two soundcards. Hope that makes things clearer now...
 
One more thing to note: you can have one output wired to one soundcard (left and right woofer), a second output (left and right tweeter for example) to a second soundcard... But that would not help you in this case as you want left channel to go to one soundcard, second channel to another one. And this case is not supported as of now.
 
Of course you can, just merge the soundcards in alsa configuration and let PA output to this newly created "virtual" card called "multi". That is the standard procedure. Use the .asoundrc file from the tutorial Jürgen posted and add the number of channels you need, one minute work.
 
phofman,
Thanks for that but it conflicts with the last post from Tfive who said, "One more thing to note: you can have one output wired to one soundcard (left and right woofer), a second output (left and right tweeter for example) to a second soundcard... But that would not help you in this case as you want left channel to go to one soundcard, second channel to another one. And this case is not supported as of now."

??????????????????????
 
I do not think there is any conflict. What the current version supports out of the box:

1 soundcard = both left/right channels of one branch (bass, mid, high, whatever). The branch is always stereo.

But what you want is:

1 soundcard = left channel of bass branch + left channel of mid branch + left channel of high branch

To solve, just create one "virtual" multichannel soundcard and route branches to respective channels as needed. Alsa-lib below pulseaudio will split the channels to corresponding physical cards, according to the multi config in .asoundrc.

The only issue is configuring stable soundcard IDs since identical USB soundcards have identical names. This has been a common requirement too, solved by adding udev rules. A very nice tutorial is Persistent USB Mapping of Audio devices (Linux) * dh1tw/remoteAudio Wiki * GitHub - the card text ID (e.g. SPEAKER or HEADSET in that tutorial) will be tied to the fixed usb port. That text ID will then be used instead of the card numeric ID in the .asoundrc multi configuration (hw:NAME instead of e.g. hw:0).
 
is it possible to integreat that in daphile - or make a daphile spinoff with it included. ?
tthorsten, that is a question for Kimmo.
If Daphile could run on linux (such as Linux Mint), then it would be possible. Alternatively, you could run separate boxes and use a SPDIF feed out of Daphile and use it as digital input into the Linux box. It does, however, defeat the ideal single box solution.

Another option would be to run Logitech Media Server, on which Daphile is based, as the music player on the Linux box with PAX. Whether Kimmo would make his code available to upgrade LMS is also a question for him.
 
1. Programming CGI in bash is kind of insane imho :D especially in 2019.
2. it is likely that daphile does not use pulseaudio at all as it is frowned upon by the "bit perfect playback" crowd. I still wonder how in earth you want to do but perfect playback and at the same time apply crossover filters... :confused:
3. PaXoverRack also needs a desktop environment to start the GUI, likely also not available there

In general I'm not a fan of such specialised Linux distributions as they always limit you severely in one or several aspects. Want to have SSH access later? Maybe not possible. Want to add feature XY? Maybe not possible. IMHO just use a all purpose Linux distro and set it up yourself so you know exactly what is running and why...
 
1. Programming CGI in bash is kind of insane imho :D especially in 2019.

It is a huge project, hats off to the author. I would not use bash either but that is his choice.

2. it is likely that daphile does not use pulseaudio at all as it is frowned upon by the "bit perfect playback" crowd. I still wonder how in earth you want to do but perfect playback and at the same time apply crossover filters... :confused:

When browsing through the unwrapped filesystem I found some playback binary for the actual playback. It definitely does not use PA.

3. PaXoverRack also needs a desktop environment to start the GUI, likely also not available there

I did not find any XWindow libraries, for local GUI I found only jive which is squeezebox client written in LUA, likely using framebuffer.

In general I'm not a fan of such specialised Linux distributions as they always limit you severely in one or several aspects. Want to have SSH access later? Maybe not possible. Want to add feature XY? Maybe not possible. IMHO just use a all purpose Linux distro and set it up yourself so you know exactly what is running and why...

Tell me about it. The Daphile thread is full of requests which would be trivial to solve in a regular linux distribution. But the fact is most users would not know how to install/configure a general-purpose linux distribution to create a single-purpose appliance.