2

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 (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!

4
  • If you are using multiple outputs off the same sound card, you might want to try setting its profile to "Pro Audio" if available. That will give you split controls for each port of your soundcard. Commented Aug 8, 2023 at 9:13
  • @cyqsimon: How? -- If you write a real answer that explains how to do it, and it it works, I will mark your answer as the solution. Commented Aug 16, 2023 at 10:36
  • 1
    Honestly I'm reluctant to write a full answer because audio systems are very complex in nature, and I know way too little about your specific setup to give accurate directions. So sorry about that. I will refer you to ArchLinux's PipeWire article though. They talk about what the "Pro Audio" profile does, and how to switch device profiles in great detail. Commented Aug 16, 2023 at 15:13
  • 1
    Also note that your graphical environment's audio control widget might allow you to graphically switch profiles. For example in KDE's audio control widget, there's a hamburger menu for each device in which you can select the profile. Commented Aug 16, 2023 at 15:37

1 Answer 1

1

If your system is anything like mine, then you'll need to do two things:

First, follow @cyqsimon's suggestion to switch to the Pro Audio profile (in my case, through the drop-down in KDE System Settings → Audio that started at "Analog Stereo Duplex").

That'll make WirePlumber's volume control purely a software one layered on top of your ALSA volume controls and stop it from meddling with the ALSA mixer.

(For me, auto-mute is desirable but I wanted to be able to calibrate the headphone and speaker volumes to sound the same and, more importantly for my uses, it'll stop WirePlumber from slamming Line Boost to 100% every time a hotplug event comes in.)

Second, check your ALSA mixer for a toggle with a name like "Auto-Mute". The motherboards I've encountered generally handle that at the driver level, not the WirePlumber level.

With WirePlumber out of the way, something like sudo alsactl store should work again as a way to persist it.

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.