Low headphone volume with loud spikes on 3.5mm jack

I’m on a Lenovo P1 5th Gen with Fedora 37, using Pipewire and Wireplumber. It’s a fairly new installation and this problem has existed since day 1. I’ve tried every lead I could find online, but nothing helped.

Overall, the volume when listening to music or podcasts with headphones on the 3.5mm jack is quite low. I have to go to about 2/3 of max volume to get to the same “loudness” that I get from 1/3 of max volume using Bluetooth headphones on this P1 or on the 3.5mm on my X1 Extreme 4th Gen, which also runs Fedora 37.

But not only that. What’s more frustrating is that the volume will suddenly spike up for a split second. The spike-up is actually going to normal volume, but because I have to crank up the volume to get normal audio, the spikes turn out to be very loud.

The spikes are reproducible as they always happen at the exact same timestamps of the same source material. There’s also tracks where the volume will be at normal level for maybe 10 seconds, then go to low level for a couple of seconds before going back to normal volume.

Other Observations

  • The headphones work just fine with other equipment, including a Lenovo X1 Extreme 4th Gen running Fedora 37
  • The issue is reproducible with other headphones using the 3.5mm jack on the P1
  • Bluetooth headphones work fine on the P1
  • Built-in loudspeakers work fine on the P1
  • The issue is not app-specific. It occurs with Spotify, various browsers, VLC, mpv and even with GNOME system sounds
  • No spikes with loud music such as punk or metal. However, if it’s a quiet acoustic piece, there will be spikes just like with spoken word
  • During the spikes, the displayed volume level in alsamixer or GNOME’s sound settings does not change visually.

What I’ve tried so far

  • Overriding various Wireplumber settings → Helped with the low base volume, but not with the spikes, and also added some popping and crackling, so I reverted it.
  • Reinstalled Pipewire and Wireplumber, restarted the services, restarted the computer → no diff
  • Swapped Wireplumber for the other thing (media-session?) → No diff
  • Tried dnf swap --allowerasing pipewire-pulseaudio pulseaudio to see if the problem remains with Pulseaudio → Had no sound at all after rebooting the laptop, so I reverted that.
  • Setting /sys/module/snd_hda_intel/parameters/power_save to 0 and /sys/module/snd_hda_intel/parameters/power_save_controller to N → No diff

If anybody has any ideas, it would be much appreciated. After a month, this is really starting to get to me. I like to listen to podcasts and music while working, but it’s nearly impossible with this behaviour.

1 Like

Starting to think this might be a hardware or firmware issue, or a general incompatibility between Linux and the Alder Lake chipset.

I booted into live systems of

  • Fedora 37 → Same issue
  • Fedora 36 → Same issue
  • Ubuntu 22.10 (Pipewire, Wireplumber) → Same issue
  • Ubuntu 22.04 (Pipewire, ?) → Same issue
  • Ubuntu 20.04 (Pulseaudio) → Same issue
  • Ubuntu 18.04 → Too old, didn’t recognize chipset

I have now added a file to /etc/modprobe.d with the following line:

options snd_intel_dspcfg dsp_driver=1

After a reboot the volume level is still on the lower end, but there is no more popping or crackling, and no more sudden volume changes.

Not a fan of listening to audio at 65% volume, but it’s a whole lot better than the previous situation.