Sound Quality Issues

Hello. I’m having some sound quality issues with all sounds from my build. Headphones are fine, as they worked great with windows before I switched over to Ubuntu Mate. To be specific, there are audio cutouts (like static or as if I was using a bad pair of headphones) at certain frequencies, particularly bass frequencies and high-quality piano tones. It’s very noticeable in listening to music. Apologies if I’m not using the right terminology.

A note that may be useful: The problem was much worse upon first install, sound quality was absolutely awful until I did some digging and found a way to alter the pulseaudio configs. For reference, here are the modified configs, attached, and the original config.

If anyone is having/has had similar problems, I would appreciate the advice.

Original:

> # This file is part of PulseAudio.
> #
> # PulseAudio is free software; you can redistribute it and/or modify
> # it under the terms of the GNU Lesser General Public License as published by
> # the Free Software Foundation; either version 2 of the License, or
> # (at your option) any later version.
> #
> # PulseAudio is distributed in the hope that it will be useful, but
> # WITHOUT ANY WARRANTY; without even the implied warranty of
> # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
> # General Public License for more details.
> #
> # You should have received a copy of the GNU Lesser General Public License
> # along with PulseAudio; if not, see http://www.gnu.org/licenses/.

> ## Configuration file for the PulseAudio daemon. See pulse-daemon.conf(5) for
> ## more information. Default values are commented out. Use either ; or # for
> ## commenting.

> ; 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
> ; enable-lfe-remixing = no
> ; lfe-crossover-freq = 0

> flat-volumes = no

> ; 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 = 1
> ; deferred-volume-extra-delay-usec = 0

Current:

> # This file is part of PulseAudio.
> #
> # PulseAudio is free software; you can redistribute it and/or modify
> # it under the terms of the GNU Lesser General Public License as published by
> # the Free Software Foundation; either version 2 of the License, or
> # (at your option) any later version.
> #
> # PulseAudio is distributed in the hope that it will be useful, but
> # WITHOUT ANY WARRANTY; without even the implied warranty of
> # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
> # General Public License for more details.
> #
> # You should have received a copy of the GNU Lesser General Public License
> # along with PulseAudio; if not, see http://www.gnu.org/licenses/.

> ## Configuration file for the PulseAudio daemon. See pulse-daemon.conf(5) for
> ## more information. Default values are commented out. Use either ; or # for
> ## commenting.

> ; 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 = 9

> ; 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 = soxr-vhq
> ; avoid-resampling = false
> ; enable-remixing = yes
> ; remixing-use-all-sink-channels = yes
> ; enable-lfe-remixing = yes
> ; lfe-crossover-freq = 0

> flat-volumes = no

> ; 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 = float32le
> ; default-sample-rate = 48000
> ; alternate-sample-rate = 48000
> ; default-sample-channels = 2
> ; default-channel-map = front-left,front-right

> ; default-fragments = 2
> ; default-fragment-size-msec = 125

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

Suggest you copy file to home folder before changing settings

cp /etc/daemon.conf ~/.config/pulse/daemon.conf

Then edit only new file ~/.config/pulse/daemon.conf
If changes to settings cause problems with audio, just need to delete new file and reboot to be back on default settings


Only 2 active settings in both files:
  • flat-volumes = no
  • deferred-volume-safety-margin-usec = 1

Default values are commented out. Use either ; or # for commenting.

remove semicolon “;” at start of line to uncomment and activate change of setting