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

Tfive,
Is the latter syncing hard to do?


It also depends on the soundcard you use. Studio equipment tends to have word clock sync in/outputs. If you use consumer sound cards this is very likely not possible without completely hacking the devices.


That's why we spent some time adapting the code for the DIYINHK xmos multichannel interface to make it output 12 instead of 8 channels in the first place. This way we could avoid having to sync up two of these.
 
Hello, does anybody run paxor on the RPi and Pioneer receiver? Pioneer VSX-1124 behaves differently to Onkyo and duplicates signal.

speaker-test -r 44100 -D hw:0,1 -c 8
produces noise to more speakers e.g. speaker connected to Surround Back R plays noise for 7 - Side Right and 5 - LFE. It is problem of the RPi, because running speaker test on the computer with AMD RX580 graphic sends signal correctly without duplication.

I tried also bcm2835_alsa.conf from LibreELEC (LibreELEC.tv/bcm2835_alsa.conf at master * LibreELEC/LibreELEC.tv * GitHub), but it is the same. It only adds profiles

Code:
pi@paxor:~ $ pacmd list-cards
1 card(s) available.
    index: 0
    name: <alsa_card.platform-soc_audio>
    driver: <module-alsa-card.c>
    owner module: 7
    properties:
        alsa.card = "0"
        alsa.card_name = "bcm2835 ALSA"
        alsa.long_card_name = "bcm2835 ALSA"
        alsa.driver_name = "snd_bcm2835"
        device.bus_path = "platform-soc:audio"
        sysfs.path = "/devices/platform/soc/soc:audio/sound/card0"
        device.form_factor = "internal"
        device.string = "0"
        device.description = "Built-in Audio"
        module-udev-detect.discovered = "1"
        device.icon_name = "audio-card"
    profiles:
        output:analog-mono: Analog Mono Output (priority 700, available: unknown)
        output:iec958-stereo: Digital Stereo (IEC958) Output (priority 5500, available: unknown)
        output:iec958-ac3-surround-51: Digital Surround 5.1 (IEC958/AC3) Output (priority 300, available: unknown)
        off: Off (priority 0, available: unknown)
    active profile: <output:iec958-stereo>
    sinks:
        alsa_output.platform-soc_audio.iec958-stereo/#0: Built-in Audio Digital Stereo (IEC958)
    sources:
        alsa_output.platform-soc_audio.iec958-stereo.monitor/#0: Monitor of Built-in Audio Digital Stereo (IEC958)
    ports:
        analog-output: Analog Output (priority 9900, latency offset 0 usec, available: unknown)
            properties:
                
        iec958-stereo-output: Digital Output (S/PDIF) (priority 0, latency offset 0 usec, available: unknown)
            properties:
 
Hello, does anybody run paxor on the RPi and Pioneer receiver? Pioneer VSX-1124 behaves differently to Onkyo and duplicates signal.
..


The problem is not the RPi, but Raspbian. KODI (on LibreElec) plays 8 channel test WAV correctly, Pioneer switches to 7.1 mode. In Raspbian it makes receiver to switch just to 5.1.


Sorry to add the off topic post, I have not found Edit.
 
pulseaudio load

Hello, I have one more related question. I am tuning 3 way with paxor. If there are more sources (typically more browser windows) = more sinks using PaXoverRack.Input, the Pulseaudio process consumes the whole CPU core and there is crackling in the sound (even with Ryzen 5 3600). How do you route the stream so the PaXoverRack.Input is used only once?
This is even more relevant to network streaming with the module-tunnel-sink. I thought about gstreamer, but playing thru its pulsesink also creates high load to the pulseaudio process.
 
I promised to take photos of my working application of paxor. I built a rough desktop open baffle speaker system for my home office, because my 15" living room horns are in use for Betflix and children's TV.

The drivers are Omnes Audio L8 loudspeakers. More or less fullrange, or at least very wide range.

The open baffles are made of soft fiberboard (weichfaser) which has interesting acoustic properties. Sizes are basically what fits my desk and sort of matches my screen.

The RPI is a 3B (not 3B+), power comes from a normal Raspberry Pi microUSB powersupply. As mentioned, the amplifier HAT is a Hifiberry Miniamp. OS is the current Raspbian.

I did measurements with Roomeqwizard and a UMIK1 positioned roughly where my head would be. I did this with the Raspberry Pi itself.

I have been discovering different approaches to EQ design, particularly which level of smoothing to work with. Right now, I am happy with 1/3 octave. This allows focusing on the general trend. After "un-smoothing" the basic curve is always good and then it's easy to identify any remaining problems.

I use 6 parametric filters and one high shelve. For now, of course. This was maybe 15 minutes of work in REW. I should, and will, work in paxor after that. Inputting this is paxor was easy.

The resulting sound is much improved, sound balance is much better. The speakers are quite efficient and the (limited) power is sufficient to play too loud for my home office. The loudspeakers can handle those soundlevels, too.

What can I say about paxor? After installing and setting up EQ, paxor is out of the way, in every way. The sound quality of the recording is not hindered, the Raspberry Pi is not over-stressed by doing EQ, the signal into the amp is good, the speakers sound as good as I know they can.

I can access the full desktop over VNC to change settings etc, or select music. I can also set up dlna/upnp for a more fancy remote operation.

I like it.

Images: the view from my desk chair, working out a measurement setup, raw response, result equalising in 1/3 octave smoothing, and the unsmoothed EQ-ed result.
 

Attachments

  • IMG_20200329_164955.jpg
    IMG_20200329_164955.jpg
    804 KB · Views: 194
  • IMG_20200329_155720.jpg
    IMG_20200329_155720.jpg
    984.6 KB · Views: 194
  • Tafelomnesruw.jpg
    Tafelomnesruw.jpg
    213.2 KB · Views: 206
  • Tafelomnesderde.jpg
    Tafelomnesderde.jpg
    145.8 KB · Views: 200
  • Tafelomnes.jpg
    Tafelomnes.jpg
    198.4 KB · Views: 190
And on with a weird question... Can the signal be split and processed in different ways, in parallel, and then be fed into the same output again? I have had some positive experience with two subwoofers and some delay on one to fight an awful room mode. There is software that uses bruteforce calculations to give a set of EQ settings (individual for each subwoofer) to optimize resulting response in the room. It is usually done with separate subwoofers, but in principle could be done with the main loudspeaker as well.

So I would like to duplicate the signal, resulting in a high-passed stereo signal for the 100+Hz range, and a mono channel low-passed for the 100-Hz signal. And the mono bass channel would be duplicated again, because left and right would need different settings.

I did a quick test and paxor would not let me connect two parametricEQ filters to one output. Is there something I can do to make it work?
 
Hmmm, pops and crackle, and it persists a little bit after I stop the audiotrack being played. No more time right now, but needs some tweaking probably. I set all filters of every plugin, so may I have overloaded it. It is the old Raspberry Pi 3B after all. It runs more smoothly with the lastest Raspbian, probably because the foundation has spent more attention to hardware acceleration. It may have made me expext too much. Pulseaudio and LADSPA probably don't use any of that.
 
Last edited:
No more time right now,

I am such a baby, but... The pops and crackle reduce when I take filters out (set gain to zero). It also gets less when playing a lower resolution track (I first tested with a 24/96 FLAC file, after that 16/44.1), and also when minimizing windows and removing the visualisation bar from the music player.

CPU is not too busy, and in Htop there is not one CPU core maxing out. RAM is also not fully in use.

So a buffer issue?

I have a "new old" intel-based laptop with an i3 processor and Intel HD graphics. It is now my main computer, so the Pi 4 is available now. Still, would be good to find the issue and get it working with the Pi 3, as they don't need a heatsink so bad and are a better combination with amplifier HATs.