Unix & Linux Stack Exchange
Q&A for users of Linux, FreeBSD and other Unix-like operating systems
Latest Questions
1
votes
0
answers
184
views
Pipewire and wire plumber not detecting my soundcard
I am running arch Linux with an asrock b650 motherboard and pipewire refuses to find my sound card. In a comment below is the output of various journalctl runs that will hopefully prove useful if anyone can advise on how I can get pipewire working. I have already tried uninstalling and reinstalling...
I am running arch Linux with an asrock b650 motherboard and pipewire refuses to find my sound card. In a comment below is the output of various journalctl runs that will hopefully prove useful if anyone can advise on how I can get pipewire working. I have already tried uninstalling and reinstalling to help.
Edit: I am unable to post that output as a comment as the length exceeds stack overflow limits.
Below is a small section of the journalctl that will hopefully prove useful:
Aplay -lL
null
Discard all samples (playback) or generate zero samples (capture)
lavrate
Rate Converter Plugin Using Libav/FFmpeg Library
samplerate
Rate Converter Plugin Using Samplerate Library
speexrate
Rate Converter Plugin Using Speex Resampler
jack
JACK Audio Connection Kit
oss
Open Sound System
pipewire
PipeWire Sound Server
pulse
PulseAudio Sound Server
speex
Plugin using Speex DSP (resample, agc, denoise, echo, dereverb)
upmix
Plugin for channel upmix (4,6,8)
vdownmix
Plugin for channel downmix (stereo) with a simple spacialization
default
Default ALSA Output (currently PipeWire Media Server)
hdmi:CARD=HDMI,DEV=0
HDA ATI HDMI, MSI G244F E2
HDMI Audio Output
hdmi:CARD=HDMI,DEV=1
HDA ATI HDMI, MSI G244F E2
HDMI Audio Output
hdmi:CARD=HDMI,DEV=2
HDA ATI HDMI, HDMI 2
HDMI Audio Output
hdmi:CARD=HDMI,DEV=3
HDA ATI HDMI, HDMI 3
HDMI Audio Output
usbstream:CARD=HDMI
HDA ATI HDMI
USB Stream Output
hdmi:CARD=Generic,DEV=0
HD-Audio Generic, HDMI 0
HDMI Audio Output
hdmi:CARD=Generic,DEV=1
HD-Audio Generic, HDMI 1
HDMI Audio Output
hdmi:CARD=Generic,DEV=2
HD-Audio Generic, HDMI 2
HDMI Audio Output
hdmi:CARD=Generic,DEV=3
HD-Audio Generic, HDMI 3
HDMI Audio Output
usbstream:CARD=Generic
HD-Audio Generic
USB Stream Output
sysdefault:CARD=Generic_1
HD-Audio Generic, ALC897 Analog
Default Audio Device
front:CARD=Generic_1,DEV=0
HD-Audio Generic, ALC897 Analog
Front output / input
surround21:CARD=Generic_1,DEV=0
HD-Audio Generic, ALC897 Analog
2.1 Surround output to Front and Subwoofer speakers
surround40:CARD=Generic_1,DEV=0
HD-Audio Generic, ALC897 Analog
4.0 Surround output to Front and Rear speakers
surround41:CARD=Generic_1,DEV=0
HD-Audio Generic, ALC897 Analog
4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=Generic_1,DEV=0
HD-Audio Generic, ALC897 Analog
5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=Generic_1,DEV=0
HD-Audio Generic, ALC897 Analog
5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=Generic_1,DEV=0
HD-Audio Generic, ALC897 Analog
7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
usbstream:CARD=Generic_1
HD-Audio Generic
USB Stream Output
**** List of PLAYBACK Hardware Devices ****
card 0: HDMI [HDA ATI HDMI], device 3: HDMI 0 [MSI G244F E2]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: HDMI [HDA ATI HDMI], device 7: HDMI 1 [MSI G244F E2]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: HDMI [HDA ATI HDMI], device 8: HDMI 2 [HDMI 2]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: HDMI [HDA ATI HDMI], device 9: HDMI 3 [HDMI 3]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: Generic [HD-Audio Generic], device 3: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: Generic [HD-Audio Generic], device 7: HDMI 1 [HDMI 1]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: Generic [HD-Audio Generic], device 8: HDMI 2 [HDMI 2]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: Generic [HD-Audio Generic], device 9: HDMI 3 [HDMI 3]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 2: Generic_1 [HD-Audio Generic], device 0: ALC897 Analog [ALC897 Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
journalctl -b -user-unit wireplumber
Mar 23 01:31:31 WilliamWilson systemd: Started Multimedia Service Session Manager.
Mar 23 01:31:31 WilliamWilson systemd: wireplumber.service: Main process exited, code=exited, status=69/UNAVAILABLE
Mar 23 01:31:31 WilliamWilson systemd: wireplumber.service: Failed with result 'exit-code'.
Mar 23 01:31:31 WilliamWilson systemd: Stopped Multimedia Service Session Manager.
Mar 23 01:31:31 WilliamWilson systemd: Started Multimedia Service Session Manager.
Mar 23 01:31:31 WilliamWilson wireplumber: wp-conf: no modules loaded from context.modules
Mar 23 01:31:31 WilliamWilson wireplumber: pw.core: 0x5a2cb666a6e0: can't find protocol 'PipeWire:Protocol:Native': Operation not supported
Mar 23 01:31:31 WilliamWilson wireplumber: Failed to connect to PipeWire
Mar 23 01:31:31 WilliamWilson systemd: wireplumber.service: Main process exited, code=exited, status=69/UNAVAILABLE
Mar 23 01:31:31 WilliamWilson systemd: wireplumber.service: Failed with result 'exit-code'.
Mar 23 01:31:31 WilliamWilson systemd: Stopped Multimedia Service Session Manager.
Mar 23 01:31:32 WilliamWilson systemd: Started Multimedia Service Session Manager.
Mar 23 01:31:32 WilliamWilson wireplumber: wp-conf: no modules loaded from context.modules
Mar 23 01:31:32 WilliamWilson wireplumber: pw.core: 0x64deab5ad6e0: can't find protocol 'PipeWire:Protocol:Native': Operation not supported
Mar 23 01:31:32 WilliamWilson wireplumber: Failed to connect to PipeWire
Mar 23 01:31:32 WilliamWilson systemd: wireplumber.service: Main process exited, code=exited, status=69/UNAVAILABLE
Mar 23 01:31:32 WilliamWilson systemd: wireplumber.service: Failed with result 'exit-code'.
Mar 23 01:31:32 WilliamWilson systemd: Stopped Multimedia Service Session Manager.
Mar 23 01:31:32 WilliamWilson systemd: Started Multimedia Service Session Manager.
Mar 23 01:31:32 WilliamWilson wireplumber: wp-conf: no modules loaded from context.modules
Mar 23 01:31:32 WilliamWilson wireplumber: Failed to connect to PipeWire
Mar 23 01:31:32 WilliamWilson wireplumber: pw.core: 0x5cd6195526e0: can't find protocol 'PipeWire:Protocol:Native': Operation not supported
Mar 23 01:31:32 WilliamWilson systemd: wireplumber.service: Main process exited, code=exited, status=69/UNAVAILABLE
Mar 23 01:31:32 WilliamWilson systemd: wireplumber.service: Failed with result 'exit-code'.
Mar 23 01:31:32 WilliamWilson systemd: Stopped Multimedia Service Session Manager.
Mar 23 01:31:32 WilliamWilson systemd: Started Multimedia Service Session Manager.
Mar 23 01:31:32 WilliamWilson wireplumber: wp-conf: no modules loaded from context.modules
Mar 23 01:31:32 WilliamWilson wireplumber: pw.core: 0x60841fdb96e0: can't find protocol 'PipeWire:Protocol:Native': Operation not supported
Mar 23 01:31:32 WilliamWilson wireplumber: Failed to connect to PipeWire
Mar 23 01:31:32 WilliamWilson systemd: wireplumber.service: Main process exited, code=exited, status=69/UNAVAILABLE
Mar 23 01:31:32 WilliamWilson systemd: wireplumber.service: Failed with result 'exit-code'.
Mar 23 01:31:32 WilliamWilson systemd: Stopped Multimedia Service Session Manager.
Mar 23 01:31:32 WilliamWilson systemd: Dependency failed for Multimedia Service Session Manager.
Mar 23 01:31:32 WilliamWilson systemd: wireplumber.service: Job wireplumber.service/start failed with result 'dependency'.
journalctl -b -user-unit pipewire
Mar 23 01:31:31 WilliamWilson systemd: Started PipeWire Multimedia Service.
Mar 23 01:31:31 WilliamWilson pipewire: mod.protocol-native: protocol PipeWire:Protocol:Native is already loaded
Mar 23 01:31:31 WilliamWilson pipewire: pw.conf: 0x5cbe0af11540: could not load mandatory module "libpipewire-module-protocol-native": File exists
Mar 23 01:31:31 WilliamWilson pipewire: default: failed to create context: File exists
Mar 23 01:31:31 WilliamWilson systemd: pipewire.service: Main process exited, code=exited, status=239/CACHE_DIRECTORY
Mar 23 01:31:31 WilliamWilson systemd: pipewire.service: Failed with result 'exit-code'.
Mar 23 01:31:31 WilliamWilson systemd: pipewire.service: Scheduled restart job, restart counter is at 1.
Mar 23 01:31:31 WilliamWilson systemd: Started PipeWire Multimedia Service.
Mar 23 01:31:31 WilliamWilson pipewire: mod.protocol-native: protocol PipeWire:Protocol:Native is already loaded
Mar 23 01:31:31 WilliamWilson pipewire: pw.conf: 0x64eb26480540: could not load mandatory module "libpipewire-module-protocol-native": File exists
Mar 23 01:31:31 WilliamWilson pipewire: default: failed to create context: File exists
Mar 23 01:31:31 WilliamWilson systemd: pipewire.service: Main process exited, code=exited, status=239/CACHE_DIRECTORY
Mar 23 01:31:31 WilliamWilson systemd: pipewire.service: Failed with result 'exit-code'.
Mar 23 01:31:32 WilliamWilson systemd: pipewire.service: Scheduled restart job, restart counter is at 2.
Mar 23 01:31:32 WilliamWilson systemd: Started PipeWire Multimedia Service.
Mar 23 01:31:32 WilliamWilson pipewire: mod.protocol-native: protocol PipeWire:Protocol:Native is already loaded
Mar 23 01:31:32 WilliamWilson pipewire: pw.conf: 0x5a99f3e4a540: could not load mandatory module "libpipewire-module-protocol-native": File exists
Mar 23 01:31:32 WilliamWilson pipewire: default: failed to create context: File exists
Mar 23 01:31:32 WilliamWilson systemd: pipewire.service: Main process exited, code=exited, status=239/CACHE_DIRECTORY
Mar 23 01:31:32 WilliamWilson systemd: pipewire.service: Failed with result 'exit-code'.
Mar 23 01:31:32 WilliamWilson systemd: pipewire.service: Scheduled restart job, restart counter is at 3.
Mar 23 01:31:32 WilliamWilson systemd: Started PipeWire Multimedia Service.
Mar 23 01:31:32 WilliamWilson pipewire: mod.protocol-native: protocol PipeWire:Protocol:Native is already loaded
Mar 23 01:31:32 WilliamWilson pipewire: pw.conf: 0x5b85b1ebb540: could not load mandatory module "libpipewire-module-protocol-native": File exists
Mar 23 01:31:32 WilliamWilson pipewire: default: failed to create context: File exists
Mar 23 01:31:32 WilliamWilson systemd: pipewire.service: Main process exited, code=exited, status=239/CACHE_DIRECTORY
Mar 23 01:31:32 WilliamWilson systemd: pipewire.service: Failed with result 'exit-code'.
Mar 23 01:31:32 WilliamWilson systemd: pipewire.service: Scheduled restart job, restart counter is at 4.
Mar 23 01:31:32 WilliamWilson systemd: Started PipeWire Multimedia Service.
Mar 23 01:31:32 WilliamWilson pipewire: mod.protocol-native: protocol PipeWire:Protocol:Native is already loaded
Mar 23 01:31:32 WilliamWilson pipewire: pw.conf: 0x5d18670c9540: could not load mandatory module "libpipewire-module-protocol-native": File exists
Mar 23 01:31:32 WilliamWilson pipewire: default: failed to create context: File exists
Mar 23 01:31:32 WilliamWilson systemd: pipewire.service: Main process exited, code=exited, status=239/CACHE_DIRECTORY
Mar 23 01:31:32 WilliamWilson systemd: pipewire.service: Failed with result 'exit-code'.
Mar 23 01:31:32 WilliamWilson systemd: pipewire.service: Scheduled restart job, restart counter is at 5.
Mar 23 01:31:32 WilliamWilson systemd: pipewire.service: Start request repeated too quickly.
Mar 23 01:31:32 WilliamWilson systemd: pipewire.service: Failed with result 'exit-code'.
Mar 23 01:31:32 WilliamWilson systemd: Failed to start PipeWire Multimedia Service.
journalctl -b -user-unit pipewire-pulse
Mar 23 01:31:31 WilliamWilson systemd: Started PipeWire PulseAudio.
Mar 23 01:39:09 WilliamWilson pipewire-pulse: mod.protocol-pulse: 0x616cab4af5c0: failed to connect client: Host is down
Mar 23 01:39:09 WilliamWilson pipewire-pulse: mod.protocol-pulse: client 0x616cab4bde10 [kitty Terminal]: ERROR command:9 (SET_CLIENT_NAME) tag:1 error:6 (Host is down)
Wesley Young
(11 rep)
Mar 23, 2025, 04:42 PM
• Last activity: Mar 23, 2025, 05:02 PM
1
votes
2
answers
2628
views
Restore volumes with PipeWire/WirePlumber
With plain ALSA there is `alsa-restore.service` which restores soundcard states after system restart (volumes, mute switches, etc.). I'm interested how to achieve the same with PipeWire/WirePlumber. For some reason after restart my headphone output is muted, and some other settings are reset to some...
With plain ALSA there is
alsa-restore.service
which restores soundcard states after system restart (volumes, mute switches, etc.).
I'm interested how to achieve the same with PipeWire/WirePlumber. For some reason after restart my headphone output is muted, and some other settings are reset to some default state.
alsa-restore.service
doesn't work, because PipeWire/WirePlumber overwrites the settings when started.
WirePlumber Lua configs are very complex and I'm unable to understand it. I'm asking for help.
Canis Lupus
(111 rep)
Apr 3, 2023, 03:24 PM
• Last activity: Mar 11, 2025, 09:32 AM
0
votes
3
answers
243
views
Audio device profile is changed by different applications
Since recently I have a issue where starting an application that needs access to my microphone changes my audio profile set up in pavucontrol from "Pro Audio" to something else. This specifically happens when using Discord, for example. Every time I join a channel I need to go into pavucontrol, chan...
Since recently I have a issue where starting an application that needs access to my microphone changes my audio profile set up in pavucontrol from "Pro Audio" to something else.
This specifically happens when using Discord, for example. Every time I join a channel I need to go into pavucontrol, change the profile back to "Pro Audio" and then I have to explicitly set up my input/output in discord to that device as well. Setting the input/output to "Default" in discord seems to crash the audio server completely.
I'm relatively new to the linux audio world but as far as I can tell Discord is using PulseAudio, which I have available with pipewire-pulse (see config below). But it shouldn't change the device profile I'm running, right?
When I check
pw-cli e Profile
I can see that the profile is in fact available, selected and also set to save.
Any advice on how to debug/fix this is highly appreciated.
I'm using NixOS and my audio device is a Focusrite Scarlett Solo 4th Gen.
This is my Nix config regarding audio:
configuration.nix
:
{ config, pkgs, ... }:
{
hardware.pulseaudio.enable = false;
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa = {
enable = true;
support32Bit = true;
};
pulse.enable = true;
wireplumber.enable = true;
jack.enable = true;
extraConfig = {
pipewire."92-low-latency" = {
context.properties = {
default.clock.rate = 192000;
default.clock.allowed-rates = [ 44100 48000 88200 96000 176400 192000 ];
default.clock.quantum = 512;
default.clock.min-quantum = 32;
default.clock.max-quantum = 1024;
};
};
};
};
environment.systemPackages = with pkgs; [
pavucontrol
helvum
alsa-utils
];
}
easyeffects.nix
:
{ pkgs, config, ... }: {
services.easyeffects = {
enable = true;
preset = "default";
};
home.file = {
".config/easyeffects/output/default.json" = {
source = config.lib.file.mkOutOfStoreSymlink ../loose-configs/easyeffects/output/default.json;
};
};
}
Nicolas
(103 rep)
Sep 14, 2024, 11:40 PM
• Last activity: Dec 3, 2024, 10:48 PM
1
votes
0
answers
442
views
Creating ALSA nodes with WirePlumber
I'm trying to work out pipewire/wireplumber configuration. I have one unresolved question open already: https://unix.stackexchange.com/questions/784526/pipewire-fails-to-create-nodes-for-all-alsa-devices I have as a workaround to that worked out how I can create Sinks for all my ALSA devices by conf...
I'm trying to work out pipewire/wireplumber configuration. I have one unresolved question open already:
https://unix.stackexchange.com/questions/784526/pipewire-fails-to-create-nodes-for-all-alsa-devices
I have as a workaround to that worked out how I can create Sinks for all my ALSA devices by configuring pipewire. In
pipewire.conf
I can simply add to context.objects
:
{ factory = adapter
args = {
factory.name = api.alsa.pcm.sink
node.name = "Yamaha"
node.description = "Yamaha RX-A760 AV Receiver"
media.class = "Audio/Sink"
api.alsa.path = "hdmi:0"
alsa.card = "0"
alsa.device = "3"
audio.channels = 6
}
}
{ factory = adapter
args = {
factory.name = api.alsa.pcm.sink
node.name = "Sony TV"
node.description = "Soni Bravia Television"
media.class = "Audio/Sink"
api.alsa.path = "hdmi:0"
alsa.card = "0"
alsa.device = "7"
audio.channels = 2
}
}
{ factory = adapter
args = {
factory.name = api.alsa.pcm.sink
node.name = "FM 90"
node.description = "High Power FM Transmitter on Line Out"
media.class = "Audio/Sink"
api.alsa.path = "hw:0"
alsa.card = "0"
alsa.device = "0"
audio.channels = 2
}
}
{ factory = adapter
args = {
factory.name = api.alsa.pcm.sink
node.name = "FM 107.9"
node.description = "Low Power FM Transmitter on USB"
media.class = "Audio/Sink"
api.alsa.path = "hw:1"
alsa.card = "1"
alsa.device = "0"
audio.channels = 2
}
}
And voilà I have audio sinks. I can even play music on them. I'm fairly content.
But for one thing. This a pipewire configuration and it's a tad sensitive to USB device I have configured. I noticed that if it's not plugged in pipewire doesn't start, it fails with an error.
It strikes me that wireplumber is the intended place to do such configuration and is more responsive to USB devices being or not being available. I understand it is configured with Lua scripting but I have failed to find a basic example of how to create an ALSA Audio sink with wireplumber.
I'm wondering what does the above configuration look like as a Wireplumber Lua script?
Bernd Wechner
(161 rep)
Oct 13, 2024, 12:51 AM
1
votes
1
answers
1021
views
Using OBS studio on Sway with Pipewire
I am on Debian 12 / SWAY desktop which is WLR based. **** I first install the *"OBS Studio"* version `29.0` with: ``` ┌───┐ │ $ │ ziga > ziga--workstation > ~ └─┬─┘ /dev/pts/4 └─> sudo apt install obs-studio ``` *"OBS Studio"* can now be started with terminal command: ``` ┌───┐ │ $ │ ziga > ziga--wo...
I am on Debian 12 / SWAY desktop which is WLR based.
****
I first install the *"OBS Studio"* version
29.0
with:
┌───┐
│ $ │ ziga > ziga--workstation > ~
└─┬─┘ /dev/pts/4
└─> sudo apt install obs-studio
*"OBS Studio"* can now be started with terminal command:
┌───┐
│ $ │ ziga > ziga--workstation > ~
└─┬─┘ /dev/pts/4
└─> obs
If *"OBS Studio"* is configured to run on *"Xorg"* by default we will not see our display! If this is the case we can still force it to run on *"Wayland"* like this:
┌───┐
│ $ │ ziga > ziga--workstation > ~
└─┬─┘ /dev/pts/4
└─> env QT_QPA_PLATFORM=wayland obs
Now it is surely using *"Wayland"* but this is still not enough for it to detect the desktop! I tried installing packages:
┌───┐
│ $ │ ziga > ziga--workstation > ~
└─┬─┘ /dev/pts/0
└─> sudo apt install xdg-desktop-portal xdg-desktop-portal-wlr
> **Attention:**
> *"Sway"* is based on *"WLR"* and therefore we installed xdg-desktop-portal-wlr
*"portal"* implementation for xdg-desktop-portal
. Different *"portal"* implementations exist and should be installed for different desktops. Debian supports *"portals"* for *"KDE"* (xdg-desktop-portal-kde
), *"GTK"* (xdg-desktop-portal-gtk
) or *"Gnome"* (xdg-desktop-portal-gnome
).
I tested and made a conclusion that it does not matter which *"Pipewire session manager"* is used. By default people use pipewire-media-session
but I use wireplumber
which deprecates pipewire-media-session
([link](https://wiki.archlinux.org/title/PipeWire#Session_manager)) .
At this point I get no screens shown in *"OBS Studio"*! But I am able to record my screen and microphone using a simple CLI video recorder like this:
┌───┐
│ $ │ ziga > ziga--workstation > ~
└─┬─┘ /dev/pts/0
└─> sudo apt install wl-recorder
┌───┐
│ $ │ ziga > ziga--workstation > ~
└─┬─┘ /dev/pts/0
└─> pw-jack wf-recorder -a
And this works like a charm...
It is just *"OBS Studio"* that fails to work...
71GA
(1296 rep)
Mar 18, 2024, 10:22 PM
• Last activity: Mar 29, 2024, 08:11 AM
1
votes
0
answers
1680
views
Debian/PipeWire disable bluetooth headset switching to HSP/HFP
Everytime I launch Audacity (which aggressively starts testing every possible input source), or even telegram-desktop, my headphones either switch to an HSP profile permanently (the A2DP options dispensary until I reconnect the headset), or they completely disconnect (probably because the headset ca...
Everytime I launch Audacity (which aggressively starts testing every possible input source), or even telegram-desktop, my headphones either switch to an HSP profile permanently (the A2DP options dispensary until I reconnect the headset), or they completely disconnect (probably because the headset cannot handle multiple profile changes within a second).
I have a dedicated USB Mic and do not need this useless feature with awful sound quality (even for voice calls). The only method I could find specifically for Debian was on this page but the instructions are incomplete (the guy references Arch Wiki which involves modifying a
.conf
file but uses .lua
syntax). These files are in /usr/share/wireplumber
in Debian, not /etc/wireplumber
, but also the media-session.d
subdir does not exist. It offers to "add a line" but I have no idea where I could add this line to not break the syntax in lua in a different file. I've tried both solutions by creating files under .config/wireplumber
which is referenced as a possible local user config, but it changed nothing after restart.
How do I disable the HSP profiles entirely and only have A2DP profiles available. I'm running Debian stable with bookworm-backports
enabled, and therefore on pipewire version 1.0.3-1~bpo12+1
Nick Bailuc
(299 rep)
Mar 26, 2024, 09:09 PM
2
votes
0
answers
559
views
Mapping audio output for USB sound card on Fedora with Pipewire
Setup: * [Creative Soundblaster X4][1] * 2 speakers + 1 sub with LFE connection * Yeti USB microphone * Fedora 39 Goal: * Have LFE out channel working on X4 so I can have sub working without plugging into desk speakers * Have microphone audio mix in on headphones plugged into X4 much like if my head...
Setup:
* Creative Soundblaster X4
* 2 speakers + 1 sub with LFE connection
* Yeti USB microphone
* Fedora 39
Goal:
* Have LFE out channel working on X4 so I can have sub working without plugging into desk speakers
* Have microphone audio mix in on headphones plugged into X4 much like if my headphones were plugged into the microphone.
The X4 supports does have an LFE out that I have never had output yet on Linux but I have plugged it in on both mac and windows computers and confirmed it does work.
What I have managed to do so far as a stopgap is to get some LFE channel output. Since my desk speakers do have a subwoofer out I have (I think) a virtual sink that is combining these audio channels and upmixing the LFE into.
I have not managed to get the mic monitoring working either, though, it would be nice to have that working again. The X4 has a feature to allow balance between audio playback and monitor audio levels that I would like to try but if that didn't work I won't lose any sleep.
This is what my configuration looks like.
/etc/pipewire/pipewire.conf.d/sink-virtual-surround-2.1.conf
context.modules = [
{ name = libpipewire-module-loopback
args = {
node.description = "On-Board Virtual 2.1"
capture.props = {
node.name = "on-board_virtual_21"
media.class = "Audio/Sink"
audio.position = [ FL FR LFE ]
}
playback.props = {
node.name = "playback.on-board_virtual_21"
audio.position = [ AUX0 AUX1 AUX2 ]
target.object = "alsa_output.usb-Generic_USB_Audio-00.pro-output"
stream.dont-remix = true
node.passive = true
}
}
}
]
/etc/pipewire/pipewire-pulse.conf
stream.properties = {
#node.latency = 1024/48000
#node.autoconnect = true
resample.quality = 10
#channelmix.normalize = true
channelmix.mix-lfe = true
channelmix.upmix = true
#channelmix.upmix-method = psd # none, simple
channelmix.lfe-cutoff = 125
#channelmix.fc-cutoff = 12000
#channelmix.rear-delay = 12.0
#channelmix.stereo-widen = 0.0
#channelmix.hilbert-taps = 0
#dither.noise = 0
}
I thought I would try a UI option and came across Helvum which looks like it may let me just drag and drop this if I could figure it out. It probably would be best if I actually understood the configuration. This is how it currently looks like in Helvum. Looking at it though I am not sure which of the AUX ports is the one for the LFE channel, though it would make sense if it was AUX3 based on the port layout.
There probably is some additional context that would help but I am not sure what would be of most help.
lsusb of the audio devices
/: Bus 003.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/6p, 480M
ID 1d6b:0002 Linux Foundation 2.0 root hub
|__ Port 001: Dev 002, If 0, Class=Audio, Driver=snd-usb-audio, 12M
ID b58e:9e84 Blue Microphones Yeti Stereo Microphone
|__ Port 001: Dev 002, If 1, Class=Audio, Driver=snd-usb-audio, 12M
ID b58e:9e84 Blue Microphones Yeti Stereo Microphone
|__ Port 001: Dev 002, If 2, Class=Audio, Driver=snd-usb-audio, 12M
ID b58e:9e84 Blue Microphones Yeti Stereo Microphone
|__ Port 001: Dev 002, If 3, Class=Human Interface Device, Driver=usbhid, 12M
ID b58e:9e84 Blue Microphones Yeti Stereo Microphone
|__ Port 002: Dev 003, If 0, Class=Human Interface Device, Driver=usbhid, 480M
ID 041e:3278 Creative Technology, Ltd
|__ Port 002: Dev 003, If 1, Class=Communications, Driver=cdc_acm, 480M
ID 041e:3278 Creative Technology, Ltd
|__ Port 002: Dev 003, If 2, Class=CDC Data, Driver=cdc_acm, 480M
ID 041e:3278 Creative Technology, Ltd
|__ Port 002: Dev 003, If 3, Class=Audio, Driver=snd-usb-audio, 480M
ID 041e:3278 Creative Technology, Ltd
|__ Port 002: Dev 003, If 4, Class=Audio, Driver=snd-usb-audio, 480M
ID 041e:3278 Creative Technology, Ltd
|__ Port 002: Dev 003, If 5, Class=Audio, Driver=snd-usb-audio, 480M
ID 041e:3278 Creative Technology, Ltd
|__ Port 002: Dev 003, If 6, Class=Audio, Driver=snd-usb-audio, 480M
ID 041e:3278 Creative Technology, Ltd
pactl info
Server String: /run/user/1000/pulse/native
Library Protocol Version: 35
Server Protocol Version: 35
Is Local: yes
Client Index: 283
Tile Size: 65472
User Name: fr0bar
Host Name: icarus
Server Name: PulseAudio (on PipeWire 1.0.3)
Server Version: 15.0.0
Default Sample Specification: float32le 3ch 192000Hz
Default Channel Map: front-left,front-right,lfe
Default Sink: on-board_virtual_21
Default Source: alsa_input.usb-Blue_Microphones_Yeti_Stereo_Microphone_797_2018_09_25_85357-00.analog-stereo
Cookie: eecc:e044
aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Microphone [Yeti Stereo Microphone], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: HDMI [HDA ATI HDMI], device 3: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: HDMI [HDA ATI HDMI], device 7: HDMI 1 [HDMI 1]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: HDMI [HDA ATI HDMI], device 8: HDMI 2 [HDMI 2]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: HDMI [HDA ATI HDMI], device 9: HDMI 3 [HDMI 3]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 2: X4 [Sound Blaster X4], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 2: X4 [Sound Blaster X4], device 1: USB Audio [USB Audio #1]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 2: X4 [Sound Blaster X4], device 2: USB Audio [USB Audio #2]
Subdevices: 1/1
Subdevice #0: subdevice #0
arecord -l
**** List of CAPTURE Hardware Devices ****
card 0: Microphone [Yeti Stereo Microphone], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 2: X4 [Sound Blaster X4], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 3: C920 [HD Pro Webcam C920], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0
pw-metadata
update: id:0 key:'default.configured.audio.sink' value:'{"name":"on-board_virtual_21"}' type:'Spa:String:JSON'
update: id:0 key:'default.configured.audio.source' value:'{"name":"alsa_input.usb-Blue_Microphones_Yeti_Stereo_Microphone_797_2018_09_25_85357-00.analog-stereo"}' type:'Spa:String:JSON'
update: id:0 key:'default.audio.sink' value:'{"name":"on-board_virtual_21"}' type:'Spa:String:JSON'
update: id:0 key:'default.audio.source' value:'{"name":"alsa_input.usb-Blue_Microphones_Yeti_Stereo_Microphone_797_2018_09_25_85357-00.analog-stereo"}' type:'Spa:String:JSON'
update: id:0 key:'default.video.source' value:'{"name":"v4l2_input.pci-0000_0e_00.3-usb-0_4_1.0"}' type:'Spa:String:JSON'
update: id:153 key:'target.node' value:'108' type:'Spa:Id'
update: id:153 key:'target.object' value:'109' type:'Spa:Id'

rlperez
(121 rep)
Mar 1, 2024, 07:56 AM
• Last activity: Mar 5, 2024, 05:51 AM
1
votes
0
answers
1346
views
Wireplumber - Simultaneous output to multiple sinks on the same sound card
I'm using Fedora 38 (6.5.6-200.fc38.x86_64 ) wireplumber: Compiled with libwireplumber 0.4.14 pipewire: Compiled with libpipewire 0.3.81 So i try to Simultaneous output to multiple sinks on the same sound card. Found this Article: https://wiki.archlinux.org/title/WirePlumber And under 2.6 ( Simultan...
I'm using Fedora 38 (6.5.6-200.fc38.x86_64 )
wireplumber: Compiled with libwireplumber 0.4.14
pipewire: Compiled with libpipewire 0.3.81
So i try to Simultaneous output to multiple sinks on the same sound card.
Found this Article: https://wiki.archlinux.org/title/WirePlumber
And under 2.6 ( Simultaneous output to multiple sinks on the same sound card) my Scenario is described. (i thought ...)
So i tryed that.
But it doesnt work (only one connected and selected Sink gets Sound)
Before doing the described scenario i only could select one Sink in pavucontrol.
After that all my Sinks are selectable -> so that was progress but not what i was expecting.
I dig deeper and i think what the Wiki Article describes is not correct or i dont understand it correctly.
I think
output-mappings = analog-stereo hdmi-stereo
does not what the wiki describes.
Couldnt find another source of "multiple describe sinks in output-mappings".
And on the other hand this is the ALSA card profile configuration file, which are used to define the characteristics and not linking sinks.
----
so after digging even deeper i think this needs to be done in wireplumber.
After i couldnt make this work with googling around i ask chatgpt.
His idea was a wireplumber Policy for routing a Stream to the Sinks.
But it doesn't work or I'm not doing it correctly.
The documentation doesn't help me either.
---
lets get technical.
## First i checked if the Outputs are working Kernel Side
aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC233 Analog [ALC233 Analog]
Subdevices: 0/1
Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 3: HDMI 0 [VSEVEN]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 7: HDMI 1 [TD1655]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 8: HDMI 2 [HDMI 2]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 9: HDMI 3 [HDMI 3]
Subdevices: 1/1
Subdevice #0: subdevice #0
systemctl --user mask pipewire{,-pulse} wireplumber --no
speaker-test -Dhw:0,0 -c2 => works! headphone jack
speaker-test -Dhw:0,3 -c2 => works! displayport Port
speaker-test -Dhw:0,7 -c2 => works! hdmi(2) Port
systemctl --user unmask pipewire{,-pulse} wireplumber --no
## adjusting alsa and wireplumber (2.6 from archwiki)
vim /usr/share/alsa-card-profile/mixer/profile-sets/multiple.conf
add:
[General]
auto-profiles = no
[Mapping analog-stereo]
device-strings = front:%f
channel-map = left,right
paths-output = analog-output analog-output-lineout analog-output-speaker analog-output-headphones analog-output-headphones-2
paths-input = analog-input-front-mic analog-input-rear-mic analog-input-internal-mic analog-input-dock-mic analog-input analog-input-mic analog-input-linein analog-input-aux analog-input-video analog-input-tvtuner analog-input-fm analog-input-mic-line analog-input-headphone-mic analog-input-headset-mic
priority = 15
[Mapping hdmi-stereo]
description = Digital Stereo (HDMI)
device-strings = hdmi:%f
paths-output = hdmi-output-0
channel-map = left,right
priority = 9
direction = output
[Profile multiple]
description = Output to All
output-mappings = analog-stereo hdmi-stereo
vim /usr/share/wireplumber/main.lua.d/51-alsa-custom.lua
rule = {
matches = {
{
{ "device.nick", "matches", "HDA Intel PCH" },
},
},
apply_properties = {
["api.alsa.use-acp"] = true,
["api.acp.auto-profile"] = false,
["api.acp.auto-port"] = false,
["device.profile-set"] = "multiple.conf",
["device.profile"] = "multiple",
},
}
table.insert(alsa_monitor.rules,rule)
## check wireplumber (if we now have all (2) sinks)
wpctl status
Audio
├─ Devices:
│ 40. Built-in Audio [alsa]
│
├─ Sinks:
│ * 41. Built-in Audio Analog Stereo [vol: 0.79 MUTED]
│ 42. Built-in Audio Digital Stereo (HDMI) [vol: 0.72]
│
├─ Sink endpoints:
│
├─ Sources:
│
├─ Source endpoints:
│
└─ Streams:
53. Chromium
54. output_FL > ALC233 Analog:playback_FL [active]
55. output_FR > ALC233 Analog:playback_FR [active]
2 Sinks available (the third one we saw earlier is not connect for testing purpose).
Before doing the steps above i only could see one sink in wpctl status.
## create a wireplumber Policiy
Note: i checked for correct media-names and node-name with pactl list sinks
and even tryed some variations.
vim /usr/share/wireplumber/policy.lua.d/15-chromium-sink.lua
policy = {
{
{
matches = {
{
{ "media.name", "==", "Playback" }
}
},
actions = {
{ type = "route", path = "alsa_output.pci-0000_00_1f.3.analog-stereo" },
{ type = "route", path = "alsa_output.pci-0000_00_1f.3.hdmi-stereo" }
}
}
}
}
i rebooted after or just restarted wireplumber (and chromium) with systemctl --user restart wireplumber
but it doesnt work. (only output on one sink)
## wireplumber error log
i cant find relevant logs for my policy.
Don't know if the policy gets used or is correct either ...
After a wireplumber service restart journalctl shows:
Oct 13 10:38:48 xxx wireplumber: stopped by signal: Terminated
Oct 13 10:38:48 xxx systemd: Stopping wireplumber.service - Multimedia Service Session Manager...
Oct 13 10:38:48 xxx wireplumber: disconnected from pipewire
Oct 13 10:38:48 xxx systemd: Stopped wireplumber.service - Multimedia Service Session Manager.
Oct 13 10:38:48 xxx systemd: Started wireplumber.service - Multimedia Service Session Manager.
Oct 13 10:38:48 xxx wireplumber: SPA handle 'api.libcamera.enum.manager' could not be loaded; is it installed?
Oct 13 10:38:48 xxx wireplumber: PipeWire's libcamera SPA missing or broken. libcamera not supported.
Oct 13 10:38:48 xxx wireplumber: GetManagedObjects() failed: org.freedesktop.DBus.Error.NameHasNoOwner
Oct 13 10:38:48 xxx wireplumber: Object activation aborted: proxy destroyed
Oct 13 10:38:48 xxx wireplumber: failed to activate item: Object activation aborted: proxy destroyed
-------
## workaround test 1
using pactl load-module module-combine-sink
creates the combined sink.
if i manually set my Chromium to this sink in pavucontrol
its outputing to all devices.
But how to do this with wireplumber directly and automatically.
## workaround test 2
As described here https://discussion.fedoraproject.org/t/configure-audio-for-simultaneous-output/74946/7
pactl load-module module-null-sink media.class=Audio/Sink sink_name=my-combined-sink channel_map=stereo
Start qjackctl
and under "Graph" link the connections.
Couldnt figure out yet how to make this change permanent.
----
This has to be working directly with wireplumber - right?? RIGHT GUYS???? ;)
Frankstar
(131 rep)
Oct 16, 2023, 07:27 AM
1
votes
0
answers
553
views
Tiger Lake Internal Microphone not Detected
I have problems with the microphone on my Tiger Lake laptop. I have tried to follow the guide on Arch Linux WIKI about configuring Pipewire with wireplumber, and copied the configuration files, but still I can't make my internal microphone work. I lost a couple of hours trying to follow some online...
I have problems with the microphone on my Tiger Lake laptop. I have tried to follow the guide on Arch Linux WIKI about configuring Pipewire with wireplumber, and copied the configuration files, but still I can't make my internal microphone work. I lost a couple of hours trying to follow some online tutorials, implementing some fixes, blacklisting devices, etc. to no avail. I am feeling really stuck on this issue, and the lack of a working microphone is a deal breaker for me. I have installed my Arch Linux manually, not using the archinstall script, as it was not working for me and my user is a member of the audio group. Here is some information about my system:
# inxi -aA
Audio:
Device-1: Intel Tiger Lake-LP Smart Sound Audio vendor: Hewlett-Packard
driver: snd_hda_intel v: kernel alternate: snd_sof_pci_intel_tgl
bus-ID: 00:1f.3 chip-ID: 8086:a0c8 class-ID: 0401
API: ALSA v: k6.4.3-arch1-2 status: kernel-api
tools: alsactl,alsamixer,amixer
Server-1: PipeWire v: 0.3.74 status: active with: 1: pipewire-pulse
status: active 2: wireplumber status: active 3: pipewire-alsa type: plugin
4: pw-jack type: plugin tools: pactl,pw-cat,pw-cli,wpctl
# wpctl status
PipeWire 'pipewire-0' [0.3.74, gstoyanov@archtop, cookie:1265105126]
└─ Clients:
32. pipewire [0.3.74, gstoyanov@archtop, pid:4161]
33. WirePlumber [0.3.74, gstoyanov@archtop, pid:4159]
34. WirePlumber [export] [0.3.74, gstoyanov@archtop, pid:4159]
72. wpctl [0.3.74, gstoyanov@archtop, pid:4562]
Audio
├─ Devices:
│ 47. Built-in Audio [alsa]
│ 65. Pixel Buds Pro [bluez5]
│
├─ Sinks:
│ 62. Built-in Audio Analog Stereo [vol: 0.59]
│ * 66. Pixel Buds Pro [vol: 0.75]
│
├─ Sink endpoints:
│
├─ Sources:
│ 30. Undetected Microphone [vol: 1.00]
│ 63. Built-in Audio Analog Stereo [vol: 1.00]
│
├─ Source endpoints:
│
└─ Streams:
Video
├─ Devices:
│ 41. HP HD Camera [v4l2]
│ 42. HP HD Camera [v4l2]
│ 43. HP HD Camera [v4l2]
│ 44. HP HD Camera [v4l2]
│ 45. HP HD Camera: HP HD Camera [libcamera]
│ 46. HP HD Camera: HP IR Camera [libcamera]
│
├─ Sinks:
│
├─ Sink endpoints:
│
├─ Sources:
│ * 48. HP HD Camera (V4L2)
│ 50. HP HD Camera (V4L2)
│ 52. Built-in Front Camera
│ 54. Built-in Front Camera
│
├─ Source endpoints:
│
└─ Streams:
Settings
└─ Default Configured Node Names:
1. Audio/Source alsa_input.pci-0000_00_1f.3.analog-stereo
# arecord -l
**** List of CAPTURE Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC285 Analog [ALC285 Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
[/code]
[code]
# systemctl status --user pipewire-pulse.service pipewire.service wireplumber.service
● pipewire-pulse.service - PipeWire PulseAudio
Loaded: loaded (/usr/lib/systemd/user/pipewire-pulse.service; enabled; preset: enabled)
Active: active (running) since Mon 2023-07-17 09:59:23 CEST; 1min 16s ago
TriggeredBy: ● pipewire-pulse.socket
Main PID: 5286 (pipewire-pulse)
Tasks: 2 (limit: 38106)
Memory: 1.5M
CPU: 7ms
CGroup: /user.slice/user-1000.slice/user@1000.service/session.slice/pipewire-pulse.service
└─5286 /usr/bin/pipewire-pulse
Jul 17 09:59:23 archtop systemd: Started PipeWire PulseAudio.
● pipewire.service - PipeWire Multimedia Service
Loaded: loaded (/usr/lib/systemd/user/pipewire.service; enabled; preset: enabled)
Active: active (running) since Mon 2023-07-17 09:59:23 CEST; 1min 16s ago
TriggeredBy: ● pipewire.socket
Main PID: 5281 (pipewire)
Tasks: 3 (limit: 38106)
Memory: 5.7M
CPU: 42ms
CGroup: /user.slice/user-1000.slice/user@1000.service/session.slice/pipewire.service
└─5281 /usr/bin/pipewire
Jul 17 09:59:23 archtop systemd: Started PipeWire Multimedia Service.
Jul 17 09:59:23 archtop pipewire: [0:41:07.821192485] INFO Camera camera_manager.cpp:298 libcamera v0.0.5
● wireplumber.service - Multimedia Service Session Manager
Loaded: loaded (/usr/lib/systemd/user/wireplumber.service; enabled; preset: enabled)
Active: active (running) since Mon 2023-07-17 09:59:23 CEST; 1min 16s ago
Main PID: 5284 (wireplumber)
Tasks: 6 (limit: 38106)
Memory: 12.2M
CPU: 174ms
CGroup: /user.slice/user-1000.slice/user@1000.service/session.slice/wireplumber.service
└─5284 /usr/bin/wireplumber
Jul 17 09:59:23 archtop systemd: Started Multimedia Service Session Manager.
Jul 17 09:59:23 archtop wireplumber: [0:41:07.523111539] INFO Camera camera_manager.cpp:298 libcamera v0.0.5
Jul 17 09:59:23 archtop wireplumber: Failed to call Lookup: GDBus.Error:org.freedesktop.portal.Error.NotFound: No entry for camera
Jul 17 09:59:23 archtop wireplumber: Failed to call Lookup: GDBus.Error:org.freedesktop.portal.Error.NotFound: No entry for camera
Jul 17 09:59:23 archtop wireplumber: Failed to call Lookup: GDBus.Error:org.freedesktop.portal.Error.NotFound: No entry for camera
Jul 17 09:59:23 archtop wireplumber: Failed to call Lookup: GDBus.Error:org.freedesktop.portal.Error.NotFound: No entry for camera
Jul 17 09:59:23 archtop wireplumber: RFCOMM receive command but modem not available: AT+CCWA=1
# pactl list cards
Card #46
Name: alsa_card.pci-0000_00_1f.3
Driver: alsa
Owner Module: n/a
Properties:
api.acp.auto-port = "false"
api.acp.auto-profile = "false"
api.alsa.card = "0"
api.alsa.card.longname = "HDA Intel PCH at 0x603f298000 irq 186"
api.alsa.card.name = "HDA Intel PCH"
api.alsa.path = "hw:0"
api.alsa.use-acp = "true"
api.alsa.use-ucm = "true"
api.dbus.ReserveDevice1 = "Audio0"
device.api = "alsa"
device.bus = "pci"
device.bus_path = "pci-0000:00:1f.3"
device.description = "Built-in Audio"
device.enum.api = "udev"
device.form_factor = "internal"
device.icon_name = "audio-card-analog-pci"
device.name = "alsa_card.pci-0000_00_1f.3"
device.nick = "HDA Intel PCH"
device.plugged.usec = "13015928"
device.product.id = "0xa0c8"
device.product.name = "Tiger Lake-LP Smart Sound Technology Audio Controller"
device.subsystem = "sound"
sysfs.path = "/devices/pci0000:00/0000:00:1f.3/sound/card0"
device.vendor.id = "0x8086"
device.vendor.name = "Intel Corporation"
media.class = "Audio/Device"
factory.id = "14"
client.id = "34"
object.id = "46"
object.serial = "46"
object.path = "alsa:pcm:0"
alsa.card = "0"
alsa.card_name = "HDA Intel PCH"
alsa.long_card_name = "HDA Intel PCH at 0x603f298000 irq 186"
alsa.driver_name = "snd_hda_intel"
device.string = "0"
Profiles:
off: Off (sinks: 0, sources: 0, priority: 0, available: yes)
output:analog-stereo+input:analog-stereo: Analog Stereo Duplex (sinks: 1, sources: 1, priority: 6565, available: yes)
output:analog-stereo: Analog Stereo Output (sinks: 1, sources: 0, priority: 6500, available: yes)
output:hdmi-stereo+input:analog-stereo: Digital Stereo (HDMI) Output + Analog Stereo Input (sinks: 1, sources: 1, priority: 5965, available: yes)
output:hdmi-stereo: Digital Stereo (HDMI) Output (sinks: 1, sources: 0, priority: 5900, available: yes)
output:hdmi-stereo-extra1+input:analog-stereo: Digital Stereo (HDMI 2) Output + Analog Stereo Input (sinks: 1, sources: 1, priority: 5765, available: no)
output:hdmi-stereo-extra2+input:analog-stereo: Digital Stereo (HDMI 3) Output + Analog Stereo Input (sinks: 1, sources: 1, priority: 5765, available: no)
output:hdmi-stereo-extra3+input:analog-stereo: Digital Stereo (HDMI 4) Output + Analog Stereo Input (sinks: 1, sources: 1, priority: 5765, available: no)
output:hdmi-stereo-extra1: Digital Stereo (HDMI 2) Output (sinks: 1, sources: 0, priority: 5700, available: no)
output:hdmi-stereo-extra2: Digital Stereo (HDMI 3) Output (sinks: 1, sources: 0, priority: 5700, available: no)
output:hdmi-stereo-extra3: Digital Stereo (HDMI 4) Output (sinks: 1, sources: 0, priority: 5700, available: no)
output:hdmi-surround-extra1+input:analog-stereo: Digital Surround 5.1 (HDMI 2) Output + Analog Stereo Input (sinks: 1, sources: 1, priority: 665, available: no)
output:hdmi-surround71-extra1+input:analog-stereo: Digital Surround 7.1 (HDMI 2) Output + Analog Stereo Input (sinks: 1, sources: 1, priority: 665, available: no)
output:hdmi-surround-extra2+input:analog-stereo: Digital Surround 5.1 (HDMI 3) Output + Analog Stereo Input (sinks: 1, sources: 1, priority: 665, available: no)
output:hdmi-surround71-extra2+input:analog-stereo: Digital Surround 7.1 (HDMI 3) Output + Analog Stereo Input (sinks: 1, sources: 1, priority: 665, available: no)
output:hdmi-surround-extra3+input:analog-stereo: Digital Surround 5.1 (HDMI 4) Output + Analog Stereo Input (sinks: 1, sources: 1, priority: 665, available: no)
output:hdmi-surround71-extra3+input:analog-stereo: Digital Surround 7.1 (HDMI 4) Output + Analog Stereo Input (sinks: 1, sources: 1, priority: 665, available: no)
output:hdmi-surround-extra1: Digital Surround 5.1 (HDMI 2) Output (sinks: 1, sources: 0, priority: 600, available: no)
output:hdmi-surround71-extra1: Digital Surround 7.1 (HDMI 2) Output (sinks: 1, sources: 0, priority: 600, available: no)
output:hdmi-surround-extra2: Digital Surround 5.1 (HDMI 3) Output (sinks: 1, sources: 0, priority: 600, available: no)
output:hdmi-surround71-extra2: Digital Surround 7.1 (HDMI 3) Output (sinks: 1, sources: 0, priority: 600, available: no)
output:hdmi-surround-extra3: Digital Surround 5.1 (HDMI 4) Output (sinks: 1, sources: 0, priority: 600, available: no)
output:hdmi-surround71-extra3: Digital Surround 7.1 (HDMI 4) Output (sinks: 1, sources: 0, priority: 600, available: no)
input:analog-stereo: Analog Stereo Input (sinks: 0, sources: 1, priority: 65, available: no)
pro-audio: Pro Audio (sinks: 5, sources: 1, priority: 1, available: yes)
Active Profile: output:analog-stereo+input:analog-stereo
Ports:
analog-input-mic: Microphone (type: Mic, priority: 8700, latency offset: 0 usec, availability group: Legacy 1, not available)
Properties:
port.type = "mic"
port.availability-group = "Legacy 1"
device.icon_name = "audio-input-microphone"
card.profile.port = "0"
Part of profile(s): input:analog-stereo, output:analog-stereo+input:analog-stereo, output:hdmi-stereo+input:analog-stereo, output:hdmi-stereo-extra1+input:analog-stereo, output:hdmi-surround-extra1+input:analog-stereo, output:hdmi-surround71-extra1+input:analog-stereo, output:hdmi-stereo-extra2+input:analog-stereo, output:hdmi-surround-extra2+input:analog-stereo, output:hdmi-surround71-extra2+input:analog-stereo, output:hdmi-stereo-extra3+input:analog-stereo, output:hdmi-surround-extra3+input:analog-stereo, output:hdmi-surround71-extra3+input:analog-stereo
analog-output-speaker: Speakers (type: Speaker, priority: 10000, latency offset: 0 usec, availability group: Legacy 2, availability unknown)
Properties:
port.type = "speaker"
port.availability-group = "Legacy 2"
device.icon_name = "audio-speakers"
card.profile.port = "1"
Part of profile(s): output:analog-stereo, output:analog-stereo+input:analog-stereo
analog-output-headphones: Headphones (type: Headphones, priority: 9900, latency offset: 0 usec, availability group: Legacy 3, not available)
Properties:
port.type = "headphones"
port.availability-group = "Legacy 3"
device.icon_name = "audio-headphones"
card.profile.port = "2"
Part of profile(s): output:analog-stereo, output:analog-stereo+input:analog-stereo
hdmi-output-0: HDMI / DisplayPort (type: HDMI, priority: 5900, latency offset: 0 usec, availability group: Legacy 4, available)
Properties:
port.type = "hdmi"
port.availability-group = "Legacy 4"
device.icon_name = "video-display"
card.profile.port = "3"
device.product.name = "BenQ XL2430T"
Part of profile(s): output:hdmi-stereo, output:hdmi-stereo+input:analog-stereo
hdmi-output-1: HDMI / DisplayPort 2 (type: HDMI, priority: 5800, latency offset: 0 usec, availability group: Legacy 5, not available)
Properties:
port.type = "hdmi"
port.availability-group = "Legacy 5"
device.icon_name = "video-display"
card.profile.port = "4"
Part of profile(s): output:hdmi-stereo-extra1, output:hdmi-stereo-extra1+input:analog-stereo, output:hdmi-surround-extra1, output:hdmi-surround-extra1+input:analog-stereo, output:hdmi-surround71-extra1, output:hdmi-surround71-extra1+input:analog-stereo
hdmi-output-2: HDMI / DisplayPort 3 (type: HDMI, priority: 5700, latency offset: 0 usec, availability group: Legacy 6, not available)
Properties:
port.type = "hdmi"
port.availability-group = "Legacy 6"
device.icon_name = "video-display"
card.profile.port = "5"
Part of profile(s): output:hdmi-stereo-extra2, output:hdmi-stereo-extra2+input:analog-stereo, output:hdmi-surround-extra2, output:hdmi-surround-extra2+input:analog-stereo, output:hdmi-surround71-extra2, output:hdmi-surround71-extra2+input:analog-stereo
hdmi-output-3: HDMI / DisplayPort 4 (type: HDMI, priority: 5600, latency offset: 0 usec, availability group: Legacy 7, not available)
Properties:
port.type = "hdmi"
port.availability-group = "Legacy 7"
device.icon_name = "video-display"
card.profile.port = "6"
Part of profile(s): output:hdmi-stereo-extra3, output:hdmi-stereo-extra3+input:analog-stereo, output:hdmi-surround-extra3, output:hdmi-surround-extra3+input:analog-stereo, output:hdmi-surround71-extra3, output:hdmi-surround71-extra3+input:analog-stereo
Card #67
Name: bluez_card.74_74_46_1B_39_F1
Driver: module-bluez5-device.c
Owner Module: n/a
Properties:
api.bluez5.address = "74:74:46:1B:39:F1"
api.bluez5.class = "0x240404"
api.bluez5.connection = "disconnected"
api.bluez5.device = ""
api.bluez5.icon = "audio-headset"
api.bluez5.path = "/org/bluez/hci0/dev_74_74_46_1B_39_F1"
bluez5.auto-connect = "[ hfp_hf hsp_hs a2dp_sink ]"
bluez5.profile = "off"
device.alias = "Pixel Buds Pro"
device.api = "bluez5"
device.bus = "bluetooth"
device.description = "Pixel Buds Pro"
device.form_factor = "headset"
device.icon_name = "audio-headset-bluetooth"
device.name = "bluez_card.74_74_46_1B_39_F1"
device.product.id = "0x3004"
device.string = "74:74:46:1B:39:F1"
device.vendor.id = "bluetooth:00e0"
media.class = "Audio/Device"
factory.id = "14"
client.id = "34"
object.id = "62"
object.serial = "67"
Profiles:
off: Off (sinks: 0, sources: 0, priority: 0, available: yes)
a2dp-sink: High Fidelity Playback (A2DP Sink) (sinks: 1, sources: 0, priority: 16, available: yes)
headset-head-unit: Headset Head Unit (HSP/HFP) (sinks: 1, sources: 1, priority: 1, available: yes)
a2dp-sink-sbc: High Fidelity Playback (A2DP Sink, codec SBC) (sinks: 1, sources: 0, priority: 18, available: yes)
a2dp-sink-sbc_xq: High Fidelity Playback (A2DP Sink, codec SBC-XQ) (sinks: 1, sources: 0, priority: 17, available: yes)
a2dp-sink-aac: High Fidelity Playback (A2DP Sink, codec AAC) (sinks: 1, sources: 0, priority: 19, available: yes)
headset-head-unit-cvsd: Headset Head Unit (HSP/HFP, codec CVSD) (sinks: 1, sources: 1, priority: 2, available: yes)
headset-head-unit-msbc: Headset Head Unit (HSP/HFP, codec mSBC) (sinks: 1, sources: 1, priority: 3, available: yes)
Active Profile: a2dp-sink-aac
Ports:
headset-output: Headset (type: Headset, priority: 0, latency offset: 0 usec, available)
Properties:
port.type = "headset"
Part of profile(s): a2dp-sink, a2dp-sink-sbc, a2dp-sink-sbc_xq, a2dp-sink-aac
headset-hf-input: Handsfree (type: Headset, priority: 0, latency offset: 0 usec, available)
Properties:
port.type = "headset"
Part of profile(s): headset-head-unit, headset-head-unit-cvsd, headset-head-unit-msbc
headset-hf-output: Handsfree (type: Headset, priority: 0, latency offset: 0 usec, available)
Properties:
port.type = "headset"
Part of profile(s): headset-head-unit, headset-head-unit-cvsd, headset-head-unit-msbc
# pactl list sources
Source #59
State: SUSPENDED
Name: alsa_output.pci-0000_00_1f.3.analog-stereo.monitor
Description: Monitor of Built-in Audio Analog Stereo
Driver: PipeWire
Sample Specification: s32le 2ch 48000Hz
Channel Map: front-left,front-right
Owner Module: 4294967295
Mute: no
Volume: front-left: 65536 / 100% / 0.00 dB, front-right: 65536 / 100% / 0.00 dB
balance 0.00
Base Volume: 65536 / 100% / 0.00 dB
Monitor of Sink: alsa_output.pci-0000_00_1f.3.analog-stereo
Latency: 0 usec, configured 0 usec
Flags: HARDWARE DECIBEL_VOLUME LATENCY
Properties:
alsa.card = "0"
alsa.card_name = "HDA Intel PCH"
alsa.class = "generic"
alsa.device = "0"
alsa.driver_name = "snd_hda_intel"
alsa.id = "ALC285 Analog"
alsa.long_card_name = "HDA Intel PCH at 0x603f298000 irq 186"
alsa.name = "ALC285 Analog"
alsa.resolution_bits = "16"
alsa.subclass = "generic-mix"
alsa.subdevice = "0"
alsa.subdevice_name = "subdevice #0"
api.alsa.card.longname = "HDA Intel PCH at 0x603f298000 irq 186"
api.alsa.card.name = "HDA Intel PCH"
api.alsa.path = "front:0"
api.alsa.pcm.card = "0"
api.alsa.pcm.stream = "playback"
audio.channels = "2"
audio.position = "FL,FR"
card.profile.device = "7"
device.api = "alsa"
device.class = "monitor"
device.id = "46"
device.profile.description = "Analog Stereo"
device.profile.name = "analog-stereo"
device.routes = "2"
factory.name = "api.alsa.pcm.sink"
media.class = "Audio/Sink"
device.description = "Built-in Audio"
node.name = "alsa_output.pci-0000_00_1f.3.analog-stereo"
node.nick = "ALC285 Analog"
node.pause-on-idle = "false"
object.path = "alsa:pcm:0:front:0:playback"
priority.driver = "1009"
priority.session = "1009"
factory.id = "18"
clock.quantum-limit = "8192"
client.id = "34"
node.driver = "true"
factory.mode = "merge"
audio.adapt.follower = ""
library.name = "audioconvert/libspa-audioconvert"
object.id = "59"
object.serial = "59"
api.acp.auto-port = "false"
api.acp.auto-profile = "false"
api.alsa.card = "0"
api.alsa.use-acp = "true"
api.alsa.use-ucm = "true"
api.dbus.ReserveDevice1 = "Audio0"
device.bus = "pci"
device.bus_path = "pci-0000:00:1f.3"
device.enum.api = "udev"
device.form_factor = "internal"
device.icon_name = "audio-card-analog-pci"
device.name = "alsa_card.pci-0000_00_1f.3"
device.nick = "HDA Intel PCH"
device.plugged.usec = "13015928"
device.product.id = "0xa0c8"
device.product.name = "Tiger Lake-LP Smart Sound Technology Audio Controller"
device.subsystem = "sound"
sysfs.path = "/devices/pci0000:00/0000:00:1f.3/sound/card0"
device.vendor.id = "0x8086"
device.vendor.name = "Intel Corporation"
device.string = "0"
Formats:
pcm
Source #60
State: SUSPENDED
Name: alsa_input.pci-0000_00_1f.3.analog-stereo
Description: Built-in Audio Analog Stereo
Driver: PipeWire
Sample Specification: s32le 2ch 48000Hz
Channel Map: front-left,front-right
Owner Module: 4294967295
Mute: no
Volume: front-left: 65536 / 100% / 0.00 dB, front-right: 65536 / 100% / 0.00 dB
balance 0.00
Base Volume: 65536 / 100% / 0.00 dB
Monitor of Sink: n/a
Latency: 0 usec, configured 0 usec
Flags: HARDWARE DECIBEL_VOLUME LATENCY
Properties:
alsa.card = "0"
alsa.card_name = "HDA Intel PCH"
alsa.class = "generic"
alsa.device = "0"
alsa.driver_name = "snd_hda_intel"
alsa.id = "ALC285 Analog"
alsa.long_card_name = "HDA Intel PCH at 0x603f298000 irq 186"
alsa.name = "ALC285 Analog"
alsa.resolution_bits = "16"
alsa.subclass = "generic-mix"
alsa.subdevice = "0"
alsa.subdevice_name = "subdevice #0"
api.alsa.card.longname = "HDA Intel PCH at 0x603f298000 irq 186"
api.alsa.card.name = "HDA Intel PCH"
api.alsa.path = "front:0"
api.alsa.pcm.card = "0"
api.alsa.pcm.stream = "capture"
audio.channels = "2"
audio.position = "FL,FR"
card.profile.device = "0"
device.api = "alsa"
device.class = "sound"
device.id = "46"
device.profile.description = "Analog Stereo"
device.profile.name = "analog-stereo"
device.routes = "1"
factory.name = "api.alsa.pcm.source"
media.class = "Audio/Source"
device.description = "Built-in Audio"
node.name = "alsa_input.pci-0000_00_1f.3.analog-stereo"
node.nick = "ALC285 Analog"
node.pause-on-idle = "false"
object.path = "alsa:pcm:0:front:0:capture"
priority.driver = "2009"
priority.session = "2009"
factory.id = "18"
clock.quantum-limit = "8192"
client.id = "34"
node.driver = "true"
factory.mode = "split"
audio.adapt.follower = ""
library.name = "audioconvert/libspa-audioconvert"
object.id = "60"
object.serial = "60"
api.acp.auto-port = "false"
api.acp.auto-profile = "false"
api.alsa.card = "0"
api.alsa.use-acp = "true"
api.alsa.use-ucm = "true"
api.dbus.ReserveDevice1 = "Audio0"
device.bus = "pci"
device.bus_path = "pci-0000:00:1f.3"
device.enum.api = "udev"
device.form_factor = "internal"
device.icon_name = "audio-card-analog-pci"
device.name = "alsa_card.pci-0000_00_1f.3"
device.nick = "HDA Intel PCH"
device.plugged.usec = "13015928"
device.product.id = "0xa0c8"
device.product.name = "Tiger Lake-LP Smart Sound Technology Audio Controller"
device.subsystem = "sound"
sysfs.path = "/devices/pci0000:00/0000:00:1f.3/sound/card0"
device.vendor.id = "0x8086"
device.vendor.name = "Intel Corporation"
device.string = "0"
Ports:
analog-input-mic: Microphone (type: Mic, priority: 8700, availability group: Legacy 1, not available)
Active Port: analog-input-mic
Formats:
pcm
Source #68
State: SUSPENDED
Name: bluez_output.74_74_46_1B_39_F1.1.monitor
Description: Monitor of Pixel Buds Pro
Driver: PipeWire
Sample Specification: s16le 2ch 48000Hz
Channel Map: front-left,front-right
Owner Module: 4294967295
Mute: no
Volume: front-left: 0 / 0% / -inf dB, front-right: 0 / 0% / -inf dB
balance 0.00
Base Volume: 65536 / 100% / 0.00 dB
Monitor of Sink: bluez_output.74_74_46_1B_39_F1.1
Latency: 0 usec, configured 0 usec
Flags: HARDWARE DECIBEL_VOLUME LATENCY
Properties:
api.bluez5.address = "74:74:46:1B:39:F1"
api.bluez5.codec = "aac"
api.bluez5.profile = "a2dp-sink"
api.bluez5.transport = ""
card.profile.device = "1"
device.id = "62"
device.routes = "1"
factory.name = "api.bluez5.a2dp.sink"
device.description = "Pixel Buds Pro"
node.name = "bluez_output.74_74_46_1B_39_F1.1"
node.pause-on-idle = "false"
priority.driver = "1010"
priority.session = "1010"
factory.id = "8"
clock.quantum-limit = "8192"
device.api = "bluez5"
media.class = "Audio/Sink"
media.name = "Pixel Buds Pro"
node.driver = "true"
factory.mode = "merge"
audio.adapt.follower = ""
library.name = "audioconvert/libspa-audioconvert"
object.id = "63"
object.serial = "68"
client.id = "34"
api.bluez5.class = "0x240404"
api.bluez5.connection = "disconnected"
api.bluez5.device = ""
api.bluez5.icon = "audio-headset"
api.bluez5.path = "/org/bluez/hci0/dev_74_74_46_1B_39_F1"
bluez5.auto-connect = "[ hfp_hf hsp_hs a2dp_sink ]"
bluez5.profile = "off"
device.alias = "Pixel Buds Pro"
device.bus = "bluetooth"
device.form_factor = "headset"
device.icon_name = "audio-headset-bluetooth"
device.name = "bluez_card.74_74_46_1B_39_F1"
device.product.id = "0x3004"
device.string = "74:74:46:1B:39:F1"
device.vendor.id = "bluetooth:00e0"
device.class = "monitor"
Formats:
pcm
Georgi Stoyanov
(860 rep)
Jul 17, 2023, 11:23 AM
0
votes
1
answers
1968
views
Wireplumber doesn't see my sound card
My current audio stack is `wireplumber`, `pipewire`, `pipewire-pulse`, `alsa`. I had three sound devices on my machine, a USB microphone, a USB webcam, and my desktop's integrated sound ports, and an HDMI port. Today, I plugged a headphone set into the front I/O panel of my desktop and my sound card...
My current audio stack is
wireplumber
, pipewire
, pipewire-pulse
, alsa
. I had three sound devices on my machine, a USB microphone, a USB webcam, and my desktop's integrated sound ports, and an HDMI port.
Today, I plugged a headphone set into the front I/O panel of my desktop and my sound card disappeared as pulse audio sink. It no longer appears as a sink in pavucontrol
. I have restarted all the appropriate services and even the system several times. The audio card never returns. Yes, I have unplugged the headphones. Wireplumber is currently trying to play audio out of my USB mic.
- alsamixer
is able to see all the audio devices although I can't enable it.
- pactl list cards
can see all the audio cards
- pactl list sinks
only lists my USB microphone.
cheezsteak
(566 rep)
Jul 4, 2023, 07:09 AM
• Last activity: Jul 4, 2023, 08:00 AM
0
votes
1
answers
518
views
Having both speakers and headphones plugged in and switching in software on-the-fly with XFCE (on Arch)
I am running Arch with XFCE and my audio is pipewire + wireplumber + pavucontrol-qt. I need something similar to: https://wiki.archlinux.org/title/PulseAudio/Examples#Having_both_speakers_and_headphones_plugged_in_and_switching_in_software_on-the-fly. The difference is that I have a digital output c...
I am running Arch with XFCE and my audio is pipewire + wireplumber + pavucontrol-qt.
I need something similar to: https://wiki.archlinux.org/title/PulseAudio/Examples#Having_both_speakers_and_headphones_plugged_in_and_switching_in_software_on-the-fly .
The difference is that I have a digital output connected to an amplifier instead of analog speakers from my soundcard, and the HDMI digital sound output to my monitor.
The behaviour that I want to have is for there to always be *three* outputs/sinks for me to choose in my XFCE-pulse-audio panel plugin: Headphones, Digital Out, and HDMI and that I can switch between them by clicking (see: https://docs.xfce.org/panel-plugins/xfce4-pulseaudio-plugin/start) .
This works out-of-the-box on GNOME.
Currently plugging in headphones removes the digital out, and I have to fiddle with the configuration tab in the volume control mixer (pavucontrol) to switch it back by changing the active profile from Analog Stereo Output to Digital Stereo (IEC958) Output. In this configuration, if my amp turns off sound starts coming out of my monitor.
I looked at config files at /usr/share/alsa-card-profile/paths/ to no avail.
Thanks
Alex
(1 rep)
May 25, 2023, 03:30 AM
• Last activity: Jun 29, 2023, 03:52 AM
1
votes
0
answers
2395
views
wireplumber: How to disable auto-mute speakers when headphone is plugged in, and vice versa? Generally: How to stop it to interfere with alsa mixers?
I recently switched to `pipewire` + `pipewire-pulse` + `wireplumber`. Is it somehow possible to tell wireplumber _not_ to automatically mute/ unmute unused paths? E.g. when I plug in a plug into the headphones socket, I do _not_ want my internal speakers to be muted. And I don't want headphone socke...
I recently switched to
pipewire
+ pipewire-pulse
+ wireplumber
.
Is it somehow possible to tell wireplumber _not_ to automatically mute/ unmute unused paths?
E.g. when I plug in a plug into the headphones socket, I do _not_ want my internal speakers to be muted. And I don't want headphone socket to be muted when there is apparently nothing plugged in.
(Two reasons:
1. I still want to be able to get simultaneous output -- and will mute manually when i want,
2. my machine has a hardware glitch where it spuriously detects headphone removal although it has not been removed. That makes wireplumber mute headphones and unmute internal audio, and to just do the reverse shortly after because the glitches are really short. But that created big glitches on audio output.)
With pulseaudio, I was [able to stop that by modifying /usr/share/pulseaudio/alsa-mixer/paths/analog-output-*
-files](https://unix.stackexchange.com/questions/609967/how-to-stop-pulseaudio-from-muting-other-devices) (hacky, since it would not survice package upgrades, but I can write a hook to re-apply the changes after each upgrade.
How can this be achieved with wireplumber?
I want to use wireplumber to automatically connect audio sources to audio sinks.
I _do not_ want wireplumber to interfere with my alsa mixer settings at all, ideally; at least not doing any auto-mute/ auto-volume-zero when devices are connected/ disconnected.
I see that wireplumber is doing it, since when I kill wireplumber
but leave pipewire
and pipewire-pulse
running, auto-mute does not occur.
Regards!
Golar Ramblar
(1929 rep)
Feb 3, 2023, 02:08 PM
Showing page 1 of 12 total questions