I use the Behringer Uphoria UMC404HD audio interface headphone output to listen to Spotify on my high-end headphones.
The interface is capable of 192000Hz
.
After a Debian installation and tweaking some pulse audio settings I can't seem to get audio detail comparable to on Windows.
The audio sounds grainy, harsh, and unbalanced, and as though I am wearing cheap headphones, not high-end.
I am also experiencing crackling during audio playback, but more notably, when notification sound plays, or rather, at the beginning and end of audio playback.
Contents of ~/.config/pulse/daemon.conf
flat-volumes = no
high-priority = yes
default-sample-format = float32le
default-sample-rate = 48000
alternate-sample-rate = 44100
avoid-resampling = true
default-fragment-size-msec = 25
resample-method = speex-float-10
enable-lfe-remixing = yes
nice-level = -11
daemonize = no
default-sample-channels = 2
default-channel-map = front-left,front-right
default-fragments = 5
default-fragment-size-msec = 2
Current pulseaudio configuration dump. pulseaudio --dump-conf
.
### Read from configuration file: /home/rzjnzk/.config/pulse//daemon.conf ###
daemonize = no
fail = yes
high-priority = yes
nice-level = -11
realtime-scheduling = yes
realtime-priority = 5
allow-module-loading = yes
allow-exit = yes
use-pid-file = yes
system-instance = no
local-server-type = user
cpu-limit = no
enable-shm = yes
flat-volumes = no
lock-memory = no
exit-idle-time = 20
scache-idle-time = 20
dl-search-path = /usr/lib/pulse-12.2/modules
default-script-file = /etc/pulse/default.pa
load-default-script-file = yes
log-target =
log-level = notice
resample-method = speex-float-10
avoid-resampling = no
enable-remixing = yes
remixing-use-all-sink-channels = yes
enable-lfe-remixing = yes
lfe-crossover-freq = 0
default-sample-format = float32le
default-sample-rate = 48000
alternate-sample-rate = 44100
default-sample-channels = 2
default-channel-map = front-left,front-right
default-fragments = 5
default-fragment-size-msec = 2
enable-deferred-volume = yes
deferred-volume-safety-margin-usec = 8000
deferred-volume-extra-delay-usec = 0
shm-size-bytes = 0
log-meta = no
log-time = no
log-backtrace = 0
rlimit-fsize = -1
rlimit-data = -1
rlimit-stack = -1
rlimit-core = -1
rlimit-rss = -1
rlimit-as = -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
Available resample methods: pulseaudio --dump-resample-methods
.
trivial
speex-float-0
speex-float-1
speex-float-2
speex-float-3
speex-float-4
speex-float-5
speex-float-6
speex-float-7
speex-float-8
speex-float-9
speex-float-10
speex-fixed-0
speex-fixed-1
speex-fixed-2
speex-fixed-3
speex-fixed-4
speex-fixed-5
speex-fixed-6
speex-fixed-7
speex-fixed-8
speex-fixed-9
speex-fixed-10
ffmpeg
auto
copy
peaks
soxr-mq
soxr-hq
soxr-vhq
Resampling methods ordered from apparent best quality to apparent worst quality. This is a completely subjective, and possibly inaccurate list.
- speex-float-10 (crackling is minimal if not gone with constant output, though changing Spotify's volume causes momentary crackling. Sound quality is still lacking).
- soxr-vhq
- copy
- speex-float-1
- src-sinc-best-quality
The command pacmd list-sinks
outputs the following with Spotify [my main music application] in use.
5 sink(s) available.
index: 0
name: <jack_out>
driver: <module-jack-sink.c>
flags: DECIBEL_VOLUME LATENCY
state: IDLE
suspend cause: (none)
priority: 0
volume: front-left: 65536 / 100% / 0.00 dB, front-right: 65536 / 100% / 0.00 dB, rear-left: 65536 / 100% / 0.00 dB, rear-right: 65536 / 100% / 0.00 dB, front-center: 65536 / 100% / 0.00 dB, lfe: 65536 / 100% / 0.00 dB
balance 0.00
base volume: 65536 / 100% / 0.00 dB
volume steps: 65537
muted: no
current latency: 56.77 ms
max request: 24 KiB
max rewind: 0 KiB
monitor source: 0
sample spec: float32le 6ch 48000Hz
channel map: front-left,front-right,rear-left,rear-right,front-center,lfe
Surround 5.1
used by: 0
linked by: 1
fixed latency: 42.67 ms
module: 5
properties:
device.api = "jack"
device.description = "Jack sink (PulseAudio JACK Sink)"
jack.client_name = "PulseAudio JACK Sink"
device.icon_name = "audio-card"
index: 1
name: <alsa_output.pci-0000_01_00.1.hdmi-stereo>
driver: <module-alsa-card.c>
flags: HARDWARE DECIBEL_VOLUME LATENCY
state: IDLE
suspend cause: (none)
priority: 9030
volume: front-left: 65536 / 100% / 0.00 dB, front-right: 65536 / 100% / 0.00 dB
balance 0.00
base volume: 65536 / 100% / 0.00 dB
volume steps: 65537
muted: no
current latency: 10.00 ms
max request: 3 KiB
max rewind: 3 KiB
monitor source: 2
sample spec: s32le 2ch 48000Hz
channel map: front-left,front-right
Stereo
used by: 0
linked by: 1
fixed latency: 10.00 ms
card: 0 <alsa_card.pci-0000_01_00.1>
module: 8
properties:
alsa.resolution_bits = "32"
device.api = "alsa"
device.class = "sound"
alsa.class = "generic"
alsa.subclass = "generic-mix"
alsa.name = "HDMI 0"
alsa.id = "HDMI 0"
alsa.subdevice = "0"
alsa.subdevice_name = "subdevice #0"
alsa.device = "3"
alsa.card = "2"
alsa.card_name = "HDA NVidia"
alsa.long_card_name = "HDA NVidia at 0xef080000 irq 17"
alsa.driver_name = "snd_hda_intel"
device.bus_path = "pci-0000:01:00.1"
sysfs.path = "/devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card2"
device.bus = "pci"
device.vendor.id = "10de"
device.vendor.name = "NVIDIA Corporation"
device.product.id = "10ef"
device.product.name = "GP102 HDMI Audio Controller"
device.string = "hdmi:2"
device.buffering.buffer_size = "3840"
device.buffering.fragment_size = "768"
device.access_mode = "mmap"
device.profile.name = "hdmi-stereo"
device.profile.description = "Digital Stereo (HDMI)"
device.description = "GP102 HDMI Audio Controller Digital Stereo (HDMI)"
alsa.mixer_name = "Nvidia GPU 82 HDMI/DP"
alsa.components = "HDA:10de0082,14583752,00100100"
module-udev-detect.discovered = "1"
device.icon_name = "audio-card-pci"
ports:
hdmi-output-0: HDMI / DisplayPort (priority 5900, latency offset 0 usec, available: yes)
properties:
device.icon_name = "video-display"
device.product.name = "VG27A
"
active port: <hdmi-output-0>
* index: 2
name: <alsa_output.usb-BEHRINGER_UMC404HD_192k-00.analog-surround-40>
driver: <module-alsa-card.c>
flags: HARDWARE DECIBEL_VOLUME LATENCY
state: RUNNING
suspend cause: (none)
priority: 9049
volume: front-left: 65536 / 100% / 0.00 dB, front-right: 65536 / 100% / 0.00 dB, rear-left: 65536 / 100% / 0.00 dB, rear-right: 65536 / 100% / 0.00 dB
balance 0.00
base volume: 65536 / 100% / 0.00 dB
volume steps: 65537
muted: no
current latency: 10.58 ms
max request: 7 KiB
max rewind: 7 KiB
monitor source: 3
sample spec: s32le 4ch 48000Hz
channel map: front-left,front-right,rear-left,rear-right
Surround 4.0
used by: 1
linked by: 3
fixed latency: 10.00 ms
card: 1 <alsa_card.usb-BEHRINGER_UMC404HD_192k-00>
module: 9
properties:
alsa.resolution_bits = "32"
device.api = "alsa"
device.class = "sound"
alsa.class = "generic"
alsa.subclass = "generic-mix"
alsa.name = "USB Audio"
alsa.id = "USB Audio"
alsa.subdevice = "0"
alsa.subdevice_name = "subdevice #0"
alsa.device = "0"
alsa.card = "1"
alsa.card_name = "UMC404HD 192k"
alsa.long_card_name = "BEHRINGER UMC404HD 192k at usb-0000:00:14.0-3, high speed"
alsa.driver_name = "snd_usb_audio"
device.bus_path = "pci-0000:00:14.0-usb-0:3:1.0"
sysfs.path = "/devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3:1.0/sound/card1"
udev.id = "usb-BEHRINGER_UMC404HD_192k-00"
device.bus = "usb"
device.vendor.id = "1397"
device.vendor.name = "BEHRINGER International GmbH"
device.product.id = "0509"
device.product.name = "UMC404HD 192k"
device.serial = "BEHRINGER_UMC404HD_192k"
device.string = "surround40:1"
device.buffering.buffer_size = "7680"
device.buffering.fragment_size = "1536"
device.access_mode = "mmap"
device.profile.name = "analog-surround-40"
device.profile.description = "Analog Surround 4.0"
device.description = "UMC404HD 192k Analog Surround 4.0"
alsa.mixer_name = "USB Mixer"
alsa.components = "USB1397:0509"
module-udev-detect.discovered = "1"
device.icon_name = "audio-card-usb"
ports:
analog-output: Analog Output (priority 9900, latency offset 0 usec, available: unknown)
properties:
active port: <analog-output>
index: 3
name: <PulseEffects_apps>
driver: <module-null-sink.c>
flags: DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY
state: RUNNING
suspend cause: (none)
priority: 9000
volume: front-left: 65536 / 100% / 0.00 dB, front-right: 65536 / 100% / 0.00 dB
balance 0.00
base volume: 65536 / 100% / 0.00 dB
volume steps: 65537
muted: no
current latency: 3.33 ms
max request: 3 KiB
max rewind: 3 KiB
monitor source: 5
sample spec: float32le 2ch 48000Hz
channel map: front-left,front-right
Stereo
used by: 1
linked by: 4
configured latency: 10.00 ms; range is 0.50 .. 2000.00 ms
module: 25
properties:
device.description = "PulseEffects(apps)"
device.class = "sound"
device.icon_name = "audio-card"
index: 4
name: <PulseEffects_mic>
driver: <module-null-sink.c>
flags: DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY
state: IDLE
suspend cause: (none)
priority: 9000
volume: front-left: 65536 / 100% / 0.00 dB, front-right: 65536 / 100% / 0.00 dB
balance 0.00
base volume: 65536 / 100% / 0.00 dB
volume steps: 65537
muted: no
current latency: 39.24 ms
max request: 15 KiB
max rewind: 15 KiB
monitor source: 6
sample spec: float32le 2ch 48000Hz
channel map: front-left,front-right
Stereo
used by: 0
linked by: 1
configured latency: 40.00 ms; range is 0.50 .. 2000.00 ms
module: 27
properties:
device.description = "PulseEffects(mic)"
device.class = "sound"
device.icon_name = "audio-card"
I have opened Pulseaudio settings and ensure the volume bar for Spotify and other audio does not exceed 100%.
I have PulseEffects installed and have minor EQ settings match what I used with Equaliser APO
on Windows 10.
Some photos of pulseeffects settings, alsamixer, and the audio device profile: https://photos.app.goo.gl/QdhHyYYWY3ZGoY8N6.
UPDATE: 2020-11-2 7:52 am UTC
I compared a FLAC file by playing it though VLC on both windows and Linux, the sound difference is still there.
pasuspender
orpulseaudio --kill
, and use ALSA for playbackaplay
. While you are at it, check ALSA mixer settings (alsamixer
). 3) Just because it can do 192 kHz doesn't mean 192 kHz is the best setting, because now quality depends on the Pulseaudio interpolation algorithm. Which may not be very good.