Bad sound quality Linux vs Windows

Installed openSUSE Tumbleweed KDE on a Lenovo IdeaPad 3 17ABA7 notebook alongside Windows.

Didn’t notice at the beginning, but after a few reboots between systems it was clear, that on Windows speakers are giving much better/richer sound quality. Googled a bit and it seems on Linux it is a common problem - there are no official driver support.

Is there anything I can do to match Windows sound quality on Linux? It is a deal breaker…

I had that problem with my previous desktop – my current desktop is fine.

My workaround was to boot Windows, and then reboot into openSUSE. That worked, so I assume it had to do with how the sound system was initialized.

1 Like

Further to Neil’s comments above, I wonder if EasyEffects might be a means to improving your perceived sound quality?

1 Like

Can you elaborate? Or show the output of:

inxi -ASxxz

so we can understand what kind of driver you are talking about?
Can you be more specific about “speakers are giving much better/richer sound quality”? Is it lack of bass tone, lack of power output, lack of Dolby® support or?

1 Like
  1. $ inxi -ASxxz
    System:
    Kernel: 6.11.0-1-default arch: x86_64 bits: 64 compiler: gcc v: 14.2.0
    Desktop: KDE Plasma v: 6.1.5 tk: Qt v: N/A wm: kwin_wayland dm: SDDM
    Distro: openSUSE Tumbleweed 20240930
    Audio:
    Device-1: Advanced Micro Devices [AMD/ATI] Renoir Radeon High Definition
    Audio vendor: Lenovo driver: snd_hda_intel v: kernel pcie: speed: 8 GT/s
    lanes: 16 bus-ID: 04:00.1 chip-ID: 1002:1637
    Device-2: Advanced Micro Devices [AMD] ACP/ACP3X/ACP6x Audio Coprocessor
    vendor: Lenovo driver: N/A pcie: speed: 8 GT/s lanes: 16 bus-ID: 04:00.5
    chip-ID: 1022:15e2
    Device-3: Advanced Micro Devices [AMD] Family 17h/19h HD Audio
    vendor: Lenovo driver: snd_hda_intel v: kernel pcie: speed: 8 GT/s lanes: 16
    bus-ID: 04:00.6 chip-ID: 1022:15e3
    API: ALSA v: k6.11.0-1-default status: kernel-api with: aoss
    type: oss-emulator
    Server-1: PipeWire v: 1.2.5 status: active with: 1: pipewire-pulse
    status: active 2: wireplumber status: active 3: pipewire-alsa type: plugin
    4: pw-jack type: plugin

  2. Here are plenty of related links:
    linux sound worse than windows - Google Suche

  3. I have a desktop with SB Z and Fedora 40 installed, there I cannot get same sound quality, like on Windows as well. Even using Easy Effects. The sound is flat.

Is it really bad sound quality, or is the sound simply too quiet?

Check the volume levels with alsamixer. It’s possible that the gain is set too low.

Actually the sound card should be a Realtek one… Why it is not displayed in the $ inxi -ASxxz command?

@ezh Hi, so no driver loaded for this device;

Device-2: Advanced Micro Devices [AMD] ACP/ACP3X/ACP6x Audio Coprocessor
vendor: Lenovo driver: N/A pcie: speed: 8 GT/s lanes: 16 bus-ID: 04:00.5
chip-ID: 1022:15e2

It’s supported by the snd-rn-pci-acp3x module, is it loaded?

modinfo snd-rn-pci-acp3x | grep 15E2
alias:          pci:v00001022d000015E2sv*sd*bc04sc80i00*

lsmod | grep snd-rn-pci-acp3x

If not, what happens when as root user modprobe snd-rn-pci-acp3x

lsmod | grep snd-rn-pci-acp3x
inxi -ASxxz

On the notebook it is bad sound quality (it is like flat) and very quiet, even with volume up to 130%.

I assume the AMD device is a HDMI output, as this is the only what that could be…

Found this command:
$ aplay --list-devices
**** List of PLAYBACK Hardware Devices ****
card 0: Generic [HD-Audio Generic], device 3: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: Generic [HD-Audio Generic], device 7: HDMI 1 [HDMI 1]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: Generic_1 [HD-Audio Generic], device 0: ALC257 Analog [ALC257 Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0

So, the sound card is Realtek ALC257.

Found this thread:

It is some sort of Linux driver issue I assume…

Because inxi only sees the bus interface (presumably your Audio:Device-1 with driver snd_hda-intel) which then interfaces with the ALC257 DAC.
But the [HD-Audio Generic] in line

card 1: Generic_1 [HD-Audio Generic], device 0: ALC257 Analog [ALC257 Analog]

does not sound good to me, I would expect something like:

card 1: PCH [HDA Intel PCH], device 0: ALC668 Analog [ALC668 Analog]

but since I’m not familiar with AMD HW maybe @malcolmlewis has something interesting to add here.
Since ALSA apparently works (at least basically) please fire up alsamixer, choose the appropriate card /output and check that all relevant volumes are as expected (at 100% ?)
If “sounds flat” means a lack of bass sounds, that is understandable but should be tunable with easy-effects.
I doubt that you are missing treble sounds, since usually laptops sound rather tinny.
If “sounds flat” means “there is no Dolby Surround effect” there is little we can do AFAIK.

Found this app, will try out.

That’s a complex app, you may have more basic problems to sort out beforehand…
Don’t try a bunch of generic, unrelated “solutions” until you are confident that the basic stuff (AMD driver, alsamixer volumes, possibly pipewire or pulseaudio equalizers) works as expected.

Just to be sure which card is which can you post:

lspci -nnk |grep -A3 "Audio device"

?

@ezh I’m the maintainer of that in the openSUSE Pro Audio repository, better to get things functional first as pointed out by @OrsoBruno

Did the Audio CoProcessor module load?

Really weird…

$ lspci -nnk |grep -A3 "Audio device"
04:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Renoir Radeon High Definition Audio Controller [1002:1637]
        Subsystem: Lenovo Device [17aa:382e]
        Kernel driver in use: snd_hda_intel
        Kernel modules: snd_hda_intel
--
04:00.6 Audio device [0403]: Advanced Micro Devices, Inc. [AMD] Family 17h/19h HD Audio Controller [1022:15e3]
        Subsystem: Lenovo Device [17aa:3851]
        Kernel driver in use: snd_hda_intel
        Kernel modules: snd_hda_intel

This is in Windows:
image

And the active sound device is Realtek:
image

  1. modinfo snd-rn-pci-acp3x | grep 15E2

alias: pci:v00001022d000015E2svsdbc04sc80i00*

  1. $ lsmod | grep snd-rn-pci-acp3x - gives nothing out. As root.

  2. $ modprobe snd-rn-pci-acp3x - gives nothing out. As root.
    image

Did I entered all commands you have asked?

@ezh so now inxi -ASxxz to see if the co processor is running.

~> inxi -ASxxz
System:
Kernel: 6.11.0-1-default arch: x86_64 bits: 64 compiler: gcc v: 14.2.0
Desktop: KDE Plasma v: 6.1.5 tk: Qt v: N/A wm: kwin_wayland dm: SDDM
Distro: openSUSE Tumbleweed 20241001
Audio:
Device-1: Advanced Micro Devices [AMD/ATI] Renoir Radeon High Definition
Audio vendor: Lenovo driver: snd_hda_intel v: kernel pcie: speed: 8 GT/s
lanes: 16 bus-ID: 04:00.1 chip-ID: 1002:1637
Device-2: Advanced Micro Devices [AMD] ACP/ACP3X/ACP6x Audio Coprocessor
vendor: Lenovo driver: N/A pcie: speed: 8 GT/s lanes: 16 bus-ID: 04:00.5
chip-ID: 1022:15e2
Device-3: Advanced Micro Devices [AMD] Family 17h/19h HD Audio
vendor: Lenovo driver: snd_hda_intel v: kernel pcie: speed: 8 GT/s lanes: 16
bus-ID: 04:00.6 chip-ID: 1022:15e3
API: ALSA v: k6.11.0-1-default status: kernel-api with: aoss
type: oss-emulator
Server-1: PipeWire v: 1.2.5 status: active with: 1: pipewire-pulse
status: active 2: wireplumber status: active 3: pipewire-alsa type: plugin
4: pw-jack type: plugin