Awful sound quality

Using Manjaro an a THINKPAD-computer, the sound quality is bad, i.e. distorted and clattering. As it is the same using headphones or external speakers, it seems to be realted to the MANJARO-settings, Furthermore, using f.e. OpenSUSE in a virtual machine, also this is better.
Recently I found here this proposal from ishaanbhimwal, incl. the guide Enable High Quality Audio on Linux | by Gamunu Balagalla | Medium. But, contrary to that discussion, I’m using AMD hardware:

$ inxi -A
Audio:
  Device-1: AMD driver: snd_hda_intel
  Device-2: AMD Raven/Raven2/FireFlight/Renoir Audio Processor
    driver: snd_rn_pci_acp3x
  Device-3: AMD Family 17h HD Audio driver: snd_hda_intel
  Sound Server-1: ALSA v: k5.10.84-1-MANJARO running: yes
  Sound Server-2: PulseAudio v: 15.0 running: yes
  Sound Server-3: PipeWire v: 0.3.40 running: yes

Looking forward your recommendations.

let’s fix this first :point_down:

Thank you

you have both pulseaudio and pipewire running.
choose one of them and install either manjaro-pulseaudio or manjaro-pipewire and reboot.
also make sure you have sof-firmware installed.
I’d prefer to go with pulseaudio and checked using Pamac

  • There is no package manjaro-pulseaudio available, but manjaro-pulse is installed. OK? This package depends on pipewire, pipewire-pulse and much more pipewire*; I’m confused :confused:
  • manjaro-pipewire is available, but NOT installed.
  • I checked for “pipewire”: pipewire 1:0.3.30-1 and pipewire-media-session 1:0.4.1-1 are installed, several other packages “pipewire …” are available but not installed.
  • sof-firmware 1.9.2-1 is available, but not installed.

I would install sof-firmware now, what else?

yes. manjaro-pulse is the right package. i will edit the original post.

you don’t need to installed that if you have manjaro-pulse already installed

don’t uninstall any packages

:+1:

Thank you. so I installed only sof-firmware and did not remove anything. Nevertheless the setting changed, as Sound-Server-3 disappeared:

$ inxi -A
Audio:
  Device-1: AMD driver: snd_hda_intel
  Device-2: AMD Raven/Raven2/FireFlight/Renoir Audio Processor
    driver: snd_rn_pci_acp3x
  Device-3: AMD Family 17h HD Audio driver: snd_hda_intel
  Sound Server-1: ALSA v: k5.10.84-1-MANJARO running: yes
  Sound Server-2: PulseAudio v: 15.0 running: yes

Is there any test routine / file for comparison? My ears meanwhile are going crazy and I’m not sure about improvement …

Thanks again @ishaan2479
I’ve been testing a bit more now and it seems that the installation of sof-firmware was an improvement. Could you please explanin a bit mor, what I’ve done there?
Checking pipewire:
$ systemctl status pipewire.socket
Unit pipewire.socket could not be found.
$ systemctl status pipewire
Unit pipewire.service could not be found.
shows, it’s gone now (this was my preferred option).

Any Ideas for further improvements and / or how to check the quality or a benchmarking?

For example, I had been advised to modify /etc/pulse/daemon.conf. Here is a comparison (codes underneath) showing the blocks with modifications and the differences in red.

I turned it back to the original and am not able to hear a difference.
Original

# This file is part of PulseAudio.

; daemonize = no
; fail = yes
; allow-module-loading = yes
; allow-exit = yes
; use-pid-file = yes
; system-instance = no
; local-server-type = user
; enable-shm = yes
; enable-memfd = yes
; shm-size-bytes = 0 # setting this 0 will use the system-default, usually 64 MiB
; lock-memory = no
; cpu-limit = no

; high-priority = yes
; nice-level = -11

; realtime-scheduling = yes
; realtime-priority = 5

; exit-idle-time = 20
; scache-idle-time = 20

; dl-search-path = (depends on architecture)

; load-default-script-file = yes
; default-script-file = /etc/pulse/default.pa

; log-target = auto
; log-level = notice
; log-meta = no
; log-time = no
; log-backtrace = 0

; resample-method = speex-float-1


; avoid-resampling = false
; enable-remixing = yes
; remixing-use-all-sink-channels = yes
; remixing-produce-lfe = no
; remixing-consume-lfe = no
; lfe-crossover-freq = 0

; flat-volumes = no

; rescue-streams = yes

; rlimit-fsize = -1
; rlimit-data = -1
; rlimit-stack = -1
; rlimit-core = -1
; rlimit-as = -1
; rlimit-rss = -1
; rlimit-nproc = -1
; rlimit-nofile = 256
; rlimit-memlock = -1
; rlimit-locks = -1
; rlimit-sigpending = -1
; rlimit-msgqueue = -1
; rlimit-nice = 31
; rlimit-rtprio = 9
; rlimit-rttime = 200000

; default-sample-format = s16le
; default-sample-rate = 44100




; alternate-sample-rate = 48000

; default-sample-channels = 2
; default-channel-map = front-left,front-right

; default-fragments = 4
; default-fragment-size-msec = 25

; enable-deferred-volume = yes
; deferred-volume-safety-margin-usec = 8000
; deferred-volume-extra-delay-usec = 0

Modified:

# This file is part of PulseAudio.

; daemonize = no
; fail = yes
; allow-module-loading = yes
; allow-exit = yes
; use-pid-file = yes
; system-instance = no
; local-server-type = user
; enable-shm = yes
; enable-memfd = yes
; shm-size-bytes = 0 # setting this 0 will use the system-default, usually 64 MiB
; lock-memory = no
; cpu-limit = no

; high-priority = yes
; nice-level = -11

; realtime-scheduling = yes
; realtime-priority = 5

; exit-idle-time = 20
; scache-idle-time = 20

; dl-search-path = (depends on architecture)

; load-default-script-file = yes
; default-script-file = /etc/pulse/default.pa

; log-target = auto
; log-level = notice
; log-meta = no
; log-time = no
; log-backtrace = 0

; resample-method = speex-float-1
; resample-method = speex-float-1      # NEU, Quelle: https://forum.manjaro.org/t/best-pulseaudio-settings-fact-check/52404/2
resample-method = speex-float-3        # NEU, Quelle: https://forum.manjaro.org/t/poor-audio-from-internal-speaker/76398/2
; avoid-resampling = false
; enable-remixing = yes
; remixing-use-all-sink-channels = yes
; remixing-produce-lfe = no
; remixing-consume-lfe = no
; lfe-crossover-freq = 0

; flat-volumes = no

; rescue-streams = yes

; rlimit-fsize = -1
; rlimit-data = -1
; rlimit-stack = -1
; rlimit-core = -1
; rlimit-as = -1
; rlimit-rss = -1
; rlimit-nproc = -1
; rlimit-nofile = 256
; rlimit-memlock = -1
; rlimit-locks = -1
; rlimit-sigpending = -1
; rlimit-msgqueue = -1
; rlimit-nice = 31
; rlimit-rtprio = 9
; rlimit-rttime = 200000

; default-sample-format = s16le
; default-sample-rate = 44100
default-sample-format = s24le
; default-sample-rate = 19200
; default-sample-format = float32le
default-sample-rate = 48000
; alternate-sample-rate = 48000
alternate-sample-rate = 96000
; default-sample-channels = 2
; default-channel-map = front-left,front-right

; default-fragments = 4
; default-fragment-size-msec = 25

; enable-deferred-volume = yes
; deferred-volume-safety-margin-usec = 8000
; deferred-volume-extra-delay-usec = 0

Please stop spreading misinformation.

Inxi shows that both PA and PW are running which is a normal situation for PA-machines with GNOME or KDE as those require PW for working with WebRTC and video.

Ok I’ll explain this to Bogdan also, no problem.

1 Like

I have posted comments about conflicting sound servers many times this year
Search results for 'mask pipewire @nikgnomic' - Manjaro Linux Forum

PipeWire developer has posted similar comments too

reddit.com/r/linux/PipeWire 0.3.42 [Software Release]
u/wtaymans

Also, since I would not need PulseAudio if I had PipeWire installed, would they conflict if I keep PulseAudio?

Only if you run them at the same time.

2 Likes

But what inxi indicates as running two servers at once is not it is in fact. Inxi just shows that both pulseaudio and pipewire process are running. But it’s perfectly ok since pipewire process is not a sound server actually. It’s video server used by DE for dealing with screen recording and so. PipeWire’s sound server process is called pipewire-pulse.

Thanks @LordTermor and @nikgnomic. I understand your concerns about correct infomation but I don’t understand how it helps me to improve sound quality.
@nikgnomic had already provided recommendations but this has not been the “gamechanger”.
Installing sof-firmware seems as a little improvement, but I have no idea, why? What else can I do to check and improve?
Thank you!