Pipewire sound output too silent compared to Windows and Pulseaudio

I had this issue in the past, but with some updates it went away (didn’t have time to investigate back then)
Today I switched my sound server from pulseaudio to pipewire and the issue has reappeared.

With pulseaudio and also on Windows, I use soundlevels of 50-60% to have comfortable volume levels from my speakers (I never change anything on the hardware).

The issue that now reappeared with the switch to pipewire is, that I need to set soundlevels of 70-85% to have the same effective volume.

My relevant hardware:

Summary
Audio:
  Device-1: AMD Vega 10 HDMI Audio [Radeon Vega 56/64] driver: snd_hda_intel
    v: kernel bus-ID: 0b:00.1 chip-ID: 1002:aaf8
  Device-2: AMD Family 17h HD Audio vendor: ASUSTeK driver: snd_hda_intel
    v: kernel bus-ID: 0d:00.3 chip-ID: 1022:1457
  Device-3: Logitech HD Webcam C615 type: USB
    driver: snd-usb-audio,uvcvideo bus-ID: 3-2.1:3 chip-ID: 046d:082c
  Sound Server-1: ALSA v: k5.16.4-zen1-1-zen running: yes
  Sound Server-2: PulseAudio v: 15.0 running: no
  Sound Server-3: PipeWire v: 0.3.44 running: yes

All application sound sliders in the Plasma taskbar widget/applet are up to 100%.

The interesting part comes in alsamixer, the following screenshot was made while KDE shows me 55% volume:

This one at 65%:

The volume levels grow as follows:

KDE Pipewire
0% 0
5% 0
10% 0
15% 0
20% 1
25% 2
30% 3
35% 4
40% 6
45% 9
50% 12
55% 17
60% 22
65% 27
70% 34
75% 42
80% 51
85% 61
90% 73
95% 86
100% 100

Does anyone know how to change that asynchronous volume levels to synchronous ones as I suspect that to be the cause of the issues?
Or can someone still using pulseaudio try to check if the behaviour in alsamixer is the same?

Edit:
I just cranked up the volume to check if KDE-volumes 0%-20% actually make a difference with Pipewire showing them all as 0: Yes, there is a difference, Pipewire 0 is not really 0 …

1 Like

It looks as though PipeWire’s volume control is logarithmic rather than linear, but I don’t think it makes much difference overall. I guess it gives more control over lower sound levels? :thinking:

Does having the volume control at 75% as opposed to 55% have any other side-effects?

1 Like

Unfortunately, yes.
Some services tend to “normalize” soundoutput. One extreme example is Youtube, that even changes Application sound levels with Firefox (didn’t realize that until today when I continuously rechecked the sliders and saw that Firefox’ slider kept going to 70-80%. This bug explains it and yes it also happens with Pipewire. Tried with Chromium, but even there the normalization happens even though it does not change the slider - you can check the normalization with the statistics-overlay that can be found in the rightclick menu of a video) -

Youtube’s behaviour, due to Pipewires logarithmic curve, leads to the experienced volume changing to too low levels, while on Pulseaudio with linear volume, the experienced volume level stays the same (the normalization actually works there!!!). This means that on Youtube or Disney+ (which also does “normalization” but does not change the application sound level slider) I now have to ramp up to 90-100% for low volume scenes. Meaning my 10% adjustment-window is not enough on Pipewire, I have to adjust a lot more to make up for the differing curve. And maybe crank up the volume of my speakers, given that I reached 100% in a day of using Pipewire - which means I have to reduce volume levels in Windows.

For now I switched back to Pulseaudio and keep looking for possible fixes. Just for the notes: Pulseaudio is not even displayed in alsamixer as a device like Pipewire -.-

Edit: Well, the obvious fix coming to mind would be to set all volumes to 100% and control volume only on the speakers. But that control is far more away then my keyboard’s volume control and a lot less precise at 100% input volume.

1 Like

I had a similar issue where my audio was quieter at max volume than it should have been. I installed qastools and used qasmixer instead of alsamixer. I discovered that one of my card slider/mixer levels was lower than it should be and my volume control wasn’t affecting it. Using a different tool can give you a different perspective and might let you see something you didn’t before. If you do try it, make sure to enable “show device selection F6”

With that said. Yes, the volume control does appear to be logarithmic for me as well. Depending on which end you need finer control for that could be rather annoying. Don’t know if that’s the way it’s supposed to be or not.

You could also check out easyeffects and add an autogain plugin to boost your sound levels.

2 Likes

Pipewire is a new player and all Linux experts need to RTFM and self test to make it work.
For example, there’s a little trick in Archwiki that may help (or not…).

Using Wireplumber might be a good idea, but there is no GUI to do much complicated settings.
Pipewire has great power, bur needs RTFM, command line usage and creating/editing random text files in lua, or whatever language PW speaks.

Once more we serve as Guinea pigs… :pig: :pig:

3 Likes

Thanks. It actually showed me more options then alsamixer. But it didn’t show me relevant ones, meaning no new slider appeared.

I tried and the autogain would basically solve the issue, but as soon as I close the window the effect is gone. And I don’t want to leave it open.

Thanks, but as can be seen here:

The only slider not being at 100% is the “Master” one, changing that to 100 also changes the Pipewire and KDE Slider to 100.

Also gave that a go, but did not change anything …
And yeah, I read the Pipewire Config and that one - but the options I thought that might be related did not change anything.
I did not try to configure wireplumber though, I also have limited time to spend on that.

Yeah, and I found no way to change that config anywhere … my conclusion is that pipewire is not yet ready for the broad audience, at least it seems to not be ready for me xD.

Will try if the behaviour can also be seen in live sessions, I think Fedora also uses Pipewire as default. If the behaviour is the same, I will stick with Pulseaudio for now.

Edit: Just a random thought that I saw just now. MAYBE the issue is not pipewire itself, but KDE: Changing the volume in KDE/with multimediakeys changes the volume of the pulse sounddevice in qastools - if KDE would change the pipewire-volume instead, the problem would be gone xD
Can that be changed somewhere?
Edit2: Apparently not: https://www.reddit.com/r/kde/comments/nj8c97/comment/gz6nqz4/?utm_source=share&utm_medium=web2x&context=3

If easyeffects basically solves your issue you can add it to your startup programs with this flag --gapplication-service that will run it in the background so the app window doesn’t always have to be up.

1 Like

EasyEffects has a nice setting for launching automatically, and I just noticed it has an interesting-looking “cubic volume” setting too…

3 Likes

well, that was a false positive … I tried it yesterday very lately and only made sure that the “testvideo” on youtube has the same experienced volume at 60% with pipewire+Easyeffects compared to pulseaudio. But that makes all other sounds too loud as they also get an autogain and are not “brokenly normalized” (I will call the issue that way because non-disable-able normalization seems to be the underlying issue because it does not work with pipewire’s logarithmic volume).

not sure what that changes, but nothing noticeable.

In the meantime I played around with some Live ISO’s. Manjaro KDE still uses Pulseaudio.

Fedora (both Gnome and KDE) use Pipewire only, and the issue is also present there. The pipewire volume in alsamixer/qastools also changes logarithmic, the percentages also are the same like in my first post. The DE’s volume controls don’t control the Pipewire-volume and also not the ALSA-volumes, but some kind of “meta-volume” because pulseaudio seems to be completely missing there (at least it is not shown in inxi- Axxz and also not in qastools) - but the effects of that metavolume on all other percentages are exactly the same like those of piepwire-Pulse (labeled only pulse in qastools) here on my EndeavourOS install.

Not sure what to do with all that, as long as pipewire does not change that logarithmic curve to a linear one, I am pretty sure pipewire will never be to my liking. And I don’t see Youtube, Disney+ and all the other services prepare to change their normalization algorithm depending on the Sound Server present on the client system. Also, if normalization could be turned off, the volume would be way too loud. The stats for nerds on Youtube are pretty interesting for that. The videos I watched today had Volume / Normalized ranges from 100% / 43% to 100% / 100%.

Here’s a preset for volume normalization that doesn’t use autogain. I haven’t tried it so don’t know how effective it is. https://github.innominds.com/Digitalone1/EasyEffects-Presets

1 Like

thanks, found that yesterday, too. It negatively impacts sound quality -.- Tried to change some options in the plugins that it uses but as I have no idea what they do I just broke it in the process.

As I have now found out that my rather expensive Bose bluetooth headset works out of the box with Pipewire (it was only usable as headphones with pulseaudio) I have decided to increase the volume on my speakers and stick with pipewire for a bit. Maybe I get used to the behaviour. If not, it is back to pulseaudio.

So you agree it is just a personal habit/preference. That’s the spirit! :laughing:

Auto-gain and Normalization are some stupid names to call a supposedly Artificially Intelligent medium, that adjusts something in a way that a user prefers, before he even knows and without him move a single finger to adjust it himself.
And guess what happens when more than one AIs try to please the same user at the same time!!! :rofl:

Great Wise Words
Artificial Intelligence is as intelligent as its Human Creator!

yeah well, something is off and behaving differently compared to Pulseaudio xD I just try to find out if it still annoys me in 1-2 weeks. So far, today it did not annoy me but I was mostly in meetings anyway, those are not normalized xD

well, on Pulseaudio and Windows, the normalization that the streaming services use works. I just realized it yesterday: In the past (years ago) one was constantly adjusting volume levels when listening to or watching stuff especially on YouTube (thats the main reason I always want my software volume to be around 50% - to have enough room for adjustment in both directions).
In the last years, I did not have to adjust anything. There were just some random videos that were too silent, but none that were too loud. With looking at the in-video statistics, it is now clear to me. Most creators upload their stuff too loud, so Youtube normalizes it and the experienced volume level is the same for all those videos. Only when the video is too silent, it does not work because increasing the volume over the original value always influences the audio quality and Youtube apparently does not do that.
Surprising how used to stuff like that one becomes without even noticing.

1 Like

A post was split to a new topic: Removing pipewire