Pipewire 7.1 channel virtual surround audio
-
- Posts: 30
- Joined: Wed Jan 29, 2020 3:35 pm
- languages_spoken: german, english
- ODROIDs: Odroid-N2 4GB-RAM CoreELEC
- Has thanked: 6 times
- Been thanked: 2 times
- Contact:
Pipewire 7.1 channel virtual surround audio
Dear Community,
I Use Ubuntu 21.10 with the newest kernel on my N2+.
To be able to use 7.1 surround sound I did by a Logitech G432 7.1 Gaming Headset (usb wired!).
I installed all pipewire packages, deactivated pulseaudio and activated pipewire with pipewire-pulse.#
Now I want to create a virtual 7.1 surround device.
I found a step by step guide.
https://kaeru.my/notes/pipewire-surround-headphones
https://gitlab.freedesktop.org/pipewire ... processing. I can't get this working.
Is there another way to realize this?
I Use Ubuntu 21.10 with the newest kernel on my N2+.
To be able to use 7.1 surround sound I did by a Logitech G432 7.1 Gaming Headset (usb wired!).
I installed all pipewire packages, deactivated pulseaudio and activated pipewire with pipewire-pulse.#
Now I want to create a virtual 7.1 surround device.
I found a step by step guide.
https://kaeru.my/notes/pipewire-surround-headphones
https://gitlab.freedesktop.org/pipewire ... processing. I can't get this working.
Is there another way to realize this?
-
- Posts: 30
- Joined: Wed Jan 29, 2020 3:35 pm
- languages_spoken: german, english
- ODROIDs: Odroid-N2 4GB-RAM CoreELEC
- Has thanked: 6 times
- Been thanked: 2 times
- Contact:
Re: Pipewire 7.1 channel virtual surround audio
I was able to create a virtual 7.1 sourround device with this command .
But there is no chance to create the 7.1 3D to Stereo 3D Downmix filter.
I did search for GUI based tools and did find https://gitlab.freedesktop.org/rncbc/qpwgraph.
I was able to connect the 7.1 monitors directly to the headset stereo playback. But this is just redirecting the channels. I believe that this is not a real virtual sourround on stereo.
There should be a virtual filter and downmixer device instead. Has anyone a clue how to create it?
Code: Select all
pw-cli create-node adapter '{ factory.name=support.null-audio-sink node.name=hrir-headphones media.class=Audio/Sink object.linger=1 audio.position=[FL,RL,SL,FC,FR,RR,SR,LFE] }'
But there is no chance to create the 7.1 3D to Stereo 3D Downmix filter.
I did search for GUI based tools and did find https://gitlab.freedesktop.org/rncbc/qpwgraph.
I was able to connect the 7.1 monitors directly to the headset stereo playback. But this is just redirecting the channels. I believe that this is not a real virtual sourround on stereo.
There should be a virtual filter and downmixer device instead. Has anyone a clue how to create it?
- rooted
- Posts: 9447
- Joined: Fri Dec 19, 2014 9:12 am
- languages_spoken: english
- Location: Gulf of Mexico, US
- Has thanked: 758 times
- Been thanked: 479 times
- Contact:
Re: Pipewire 7.1 channel virtual surround audio
I don't think there is a such thing as "real" virtual surround.
-
- Posts: 30
- Joined: Wed Jan 29, 2020 3:35 pm
- languages_spoken: german, english
- ODROIDs: Odroid-N2 4GB-RAM CoreELEC
- Has thanked: 6 times
- Been thanked: 2 times
- Contact:
Re: Pipewire 7.1 channel virtual surround audio
Thank you for your thoughts.
There should be a "filter" between the hrir-headphones:monitor_XX and the G432 Gaming Headset:playback_XX for downmixing, position and volume effects on stereo output.
This would be a near "real" virtual surround. But I can't create the virtual device for it.
There should be a "filter" between the hrir-headphones:monitor_XX and the G432 Gaming Headset:playback_XX for downmixing, position and volume effects on stereo output.
This would be a near "real" virtual surround. But I can't create the virtual device for it.
- rooted
- Posts: 9447
- Joined: Fri Dec 19, 2014 9:12 am
- languages_spoken: english
- Location: Gulf of Mexico, US
- Has thanked: 758 times
- Been thanked: 479 times
- Contact:
Re: Pipewire 7.1 channel virtual surround audio
It sounds like you have a far better handle on it than I.
-
- Posts: 30
- Joined: Wed Jan 29, 2020 3:35 pm
- languages_spoken: german, english
- ODROIDs: Odroid-N2 4GB-RAM CoreELEC
- Has thanked: 6 times
- Been thanked: 2 times
- Contact:
Re: Pipewire 7.1 channel virtual surround audio
Hello to everyone.
Update: I did upgrade to Ubuntu 22.04.
I have finally found the solution for the missing virtual device.
It is the filter-chain!
I am not so good in explaining it, but I found a video that shows everything.
It is working
I don't know what is the better hesuvi file? Dolby Atmos or openAL Standard
Now I use Dolby Atmos.
Maybe someone can do a audio benchmark.
Update: I did upgrade to Ubuntu 22.04.
I have finally found the solution for the missing virtual device.
It is the filter-chain!
I am not so good in explaining it, but I found a video that shows everything.
It is working
I don't know what is the better hesuvi file? Dolby Atmos or openAL Standard
Now I use Dolby Atmos.
Maybe someone can do a audio benchmark.
- These users thanked the author chatplosion for the post:
- odroid (Fri Apr 29, 2022 8:21 pm)
-
- Posts: 178
- Joined: Mon Aug 12, 2019 12:27 pm
- languages_spoken: english
- Has thanked: 1 time
- Been thanked: 132 times
- Contact:
Re: Pipewire 7.1 channel virtual surround audio
This workaround patch in your kernel would help the 7.1 mission on HDMI: https://github.com/chewitt/linux/commit ... 603791497c as without it the ALSA channel map doesn't appear on the correct PCM device.
-
- Posts: 30
- Joined: Wed Jan 29, 2020 3:35 pm
- languages_spoken: german, english
- ODROIDs: Odroid-N2 4GB-RAM CoreELEC
- Has thanked: 6 times
- Been thanked: 2 times
- Contact:
Re: Pipewire 7.1 channel virtual surround audio
With this new configuration I did create a new visualisation of the complete audio system:

As an example gzdoom connects directly to Virtual Surround Sink playback_*, which is the 7.1 input to the filter-chain.
The filter-chain uses the convolution engine to merge and mix it to stereo with spacial effects (virtual sourround) to send
it through Virtual Surround Sink output_* to my G432_Gaming_Headset playback_*.
It works fine for me and produces excelent sound.

As an example gzdoom connects directly to Virtual Surround Sink playback_*, which is the 7.1 input to the filter-chain.
The filter-chain uses the convolution engine to merge and mix it to stereo with spacial effects (virtual sourround) to send
it through Virtual Surround Sink output_* to my G432_Gaming_Headset playback_*.
It works fine for me and produces excelent sound.
- Attachments
-
- Bildschirmfoto vom 2022-05-01 12-37-52.png (552.2 KiB) Viewed 165 times
-
- Posts: 30
- Joined: Wed Jan 29, 2020 3:35 pm
- languages_spoken: german, english
- ODROIDs: Odroid-N2 4GB-RAM CoreELEC
- Has thanked: 6 times
- Been thanked: 2 times
- Contact:
Re: Pipewire 7.1 channel virtual surround audio
My Pipewire is working very well. But I did get errors in the logs.
Please be warned that I have installed german locales.
The output of gives me:
The filter-chain is actual working. What do you believe is this bunch of errors/alarms?
Or is it possible that version 0.3.48 has bugs? 0.3.51 is already released, but the arm64 faction seems to be left behind...
My full piped and greped pipewire selections from the syslog can be seen here:
Please be warned that I have installed german locales.
The output of
Code: Select all
sudo journalctl | grep pipewire > ~/pipewire.log
Code: Select all
Mai 15 14:52:47 odroid-n2plus pipewire[2529]: pw.context: context 0xaaaadf4cdd20: duplicate export type PipeWire:Interface:Node
Mai 15 14:52:47 odroid-n2plus pipewire[2529]: pw.context: context 0xaaaadf4cdd20: duplicate export type Spa:Pointer:Interface:Node
Mai 15 14:52:48 odroid-n2plus pipewire-pulse[2611]: 536870912
Mai 15 14:52:48 odroid-n2plus pipewire[2529]: mod.filter-chain: error id:3 seq:33 res:-2 (Datei oder Verzeichnis nicht gefunden): no node available
Mai 15 14:52:48 odroid-n2plus pipewire[2529]: mod.filter-chain: error id:3 seq:33 res:-2 (Datei oder Verzeichnis nicht gefunden): no node available
Mai 15 14:52:48 odroid-n2plus pipewire[2529]: mod.filter-chain: error id:3 seq:33 res:-2 (Datei oder Verzeichnis nicht gefunden): no node available
Mai 15 14:52:48 odroid-n2plus pipewire[2529]: mod.filter-chain: error id:3 seq:33 res:-2 (Datei oder Verzeichnis nicht gefunden): no node available
Mai 15 14:52:48 odroid-n2plus pipewire[2529]: mod.filter-chain: error id:3 seq:33 res:-2 (Datei oder Verzeichnis nicht gefunden): no node available
Mai 15 14:52:48 odroid-n2plus pipewire[2529]: mod.filter-chain: error id:3 seq:33 res:-2 (Datei oder Verzeichnis nicht gefunden): no node available
Mai 15 14:52:48 odroid-n2plus pipewire[2529]: mod.filter-chain: error id:3 seq:33 res:-2 (Datei oder Verzeichnis nicht gefunden): no node available
Mai 15 14:52:48 odroid-n2plus pipewire[2529]: mod.filter-chain: error id:3 seq:33 res:-2 (Datei oder Verzeichnis nicht gefunden): no node available
Mai 15 14:52:48 odroid-n2plus pipewire[2529]: mod.filter-chain: error id:3 seq:33 res:-2 (Datei oder Verzeichnis nicht gefunden): no node available
Mai 15 14:52:48 odroid-n2plus pipewire[2529]: mod.filter-chain: error id:3 seq:33 res:-2 (Datei oder Verzeichnis nicht gefunden): no node available
Mai 15 14:52:48 odroid-n2plus pipewire[2529]: mod.filter-chain: error id:3 seq:33 res:-2 (Datei oder Verzeichnis nicht gefunden): no node available
Mai 15 14:52:48 odroid-n2plus pipewire[2529]: mod.filter-chain: error id:3 seq:33 res:-2 (Datei oder Verzeichnis nicht gefunden): no node available
Mai 15 14:52:48 odroid-n2plus pipewire[2529]: mod.filter-chain: error id:3 seq:33 res:-2 (Datei oder Verzeichnis nicht gefunden): no node available
Mai 15 14:52:48 odroid-n2plus pipewire[2529]: mod.filter-chain: error id:3 seq:33 res:-2 (Datei oder Verzeichnis nicht gefunden): no node available
Mai 15 14:53:07 odroid-n2plus wireplumber[1276]: disconnected from pipewire
Mai 15 17:48:53 odroid-n2plus systemd[2520]: pipewire-pulse.service: Consumed 2.970s CPU time.
Mai 15 17:48:54 odroid-n2plus unknown[2531]: disconnected from pipewire
Mai 15 17:48:54 odroid-n2plus systemd[2520]: pipewire.service: Main process exited, code=killed, status=11/SEGV
Mai 15 17:48:54 odroid-n2plus systemd[2520]: pipewire.service: Failed with result 'signal'.
Mai 15 17:48:54 odroid-n2plus systemd[2520]: pipewire.service: Consumed 19.448s CPU time.
Mai 15 17:49:12 odroid-n2plus systemd[1239]: pipewire-session-manager.service: Cannot add dependency job, ignoring: Unit pipewire-session-manager.service failed to load properly, please adjust/correct and reload service manager: File exists
Mai 15 17:49:12 odroid-n2plus dbus-daemon[1053]: [system] Activating via systemd: service name='org.freedesktop.RealtimeKit1' unit='rtkit-daemon.service' requested by ':1.26' (uid=120 pid=1269 comm="/usr/bin/pipewire " label="kernel")
Mai 15 17:49:13 odroid-n2plus pipewire-pulse[1298]: 536870912
Mai 15 17:49:29 odroid-n2plus pipewire[1651]: pw.context: context 0xaaaaae6fdd20: duplicate export type PipeWire:Interface:Node
Mai 15 17:49:29 odroid-n2plus pipewire[1651]: pw.context: context 0xaaaaae6fdd20: duplicate export type Spa:Pointer:Interface:Node
Mai 15 17:49:29 odroid-n2plus pipewire-pulse[1686]: 536870912
Mai 15 17:49:30 odroid-n2plus pipewire[1651]: mod.filter-chain: error id:3 seq:33 res:-2 (Datei oder Verzeichnis nicht gefunden): no node available
Mai 15 17:49:30 odroid-n2plus pipewire[1651]: mod.filter-chain: error id:3 seq:33 res:-2 (Datei oder Verzeichnis nicht gefunden): no node available
Mai 15 17:49:30 odroid-n2plus pipewire[1651]: mod.filter-chain: error id:3 seq:33 res:-2 (Datei oder Verzeichnis nicht gefunden): no node available
Mai 15 17:49:30 odroid-n2plus pipewire[1651]: mod.filter-chain: error id:3 seq:33 res:-2 (Datei oder Verzeichnis nicht gefunden): no node available
Mai 15 17:49:30 odroid-n2plus pipewire[1651]: mod.filter-chain: error id:3 seq:33 res:-2 (Datei oder Verzeichnis nicht gefunden): no node available
Mai 15 17:49:30 odroid-n2plus pipewire[1651]: mod.filter-chain: error id:3 seq:33 res:-2 (Datei oder Verzeichnis nicht gefunden): no node available
Mai 15 17:49:30 odroid-n2plus pipewire[1651]: mod.filter-chain: error id:3 seq:33 res:-2 (Datei oder Verzeichnis nicht gefunden): no node available
Mai 15 17:49:30 odroid-n2plus pipewire[1651]: mod.filter-chain: error id:3 seq:33 res:-2 (Datei oder Verzeichnis nicht gefunden): no node available
Mai 15 17:49:30 odroid-n2plus pipewire[1651]: mod.filter-chain: error id:3 seq:33 res:-2 (Datei oder Verzeichnis nicht gefunden): no node available
Mai 15 17:49:30 odroid-n2plus pipewire[1651]: mod.filter-chain: error id:3 seq:33 res:-2 (Datei oder Verzeichnis nicht gefunden): no node available
Mai 15 17:49:30 odroid-n2plus pipewire[1651]: mod.filter-chain: error id:3 seq:33 res:-2 (Datei oder Verzeichnis nicht gefunden): no node available
Mai 15 17:49:30 odroid-n2plus pipewire[1651]: mod.filter-chain: error id:3 seq:33 res:-2 (Datei oder Verzeichnis nicht gefunden): no node available
Mai 15 17:49:30 odroid-n2plus pipewire[1651]: mod.filter-chain: error id:3 seq:33 res:-2 (Datei oder Verzeichnis nicht gefunden): no node available
Mai 15 17:49:30 odroid-n2plus pipewire[1651]: mod.filter-chain: error id:3 seq:33 res:-2 (Datei oder Verzeichnis nicht gefunden): no node available
Mai 15 17:49:48 odroid-n2plus wireplumber[1272]: disconnected from pipewire
Or is it possible that version 0.3.48 has bugs? 0.3.51 is already released, but the arm64 faction seems to be left behind...
My full piped and greped pipewire selections from the syslog can be seen here:
Who is online
Users browsing this forum: No registered users and 3 guests