0

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.

  1. 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).
  2. soxr-vhq
  3. copy
  4. speex-float-1
  5. 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.

8
  • 1
    1) Assuming your goal is "it should sound identical to Windows", can you get information about what hardware settings Windows actually chooses during playback? 2) If you want to compare how different sample rates sound, prepare WAV files, disable Pulseaudio (pasuspender or pulseaudio --kill, and use ALSA for playback aplay. 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.
    – dirkt
    Aug 2, 2020 at 9:26
  • @dirkt Can the pulseaudio interpolation algarithm be configured? If so, is there a better choice for quality? In Windows, setting the refresh rate between 44.1kHz and the max of 192kHz shows a difference in perceivable sound quality with music played from the windows spotify client. There I perceive a noticeable lack of sound stage and detail.
    – rzjnzk
    Aug 15, 2020 at 16:12
  • I am not aware of any way to configure how Pulseaudio does interpolation. Given that Spotify does streaming, the first thing you'd need to find out what is going on under Windows is what kind of sample rate source Spotify provides. If you want to test, find some sources where you can control the source sample rate (e.g., appropriate WAV files). E.g. google for "WAV files listening test sample rates".
    – dirkt
    Aug 15, 2020 at 18:14
  • And looking at the spotify information, it looks like all spotify sources are 44.1 kHz. If this is correct, then anything you hear at 192 kHz is an artifact, produced by whatever processing is in between. No matter if positive or negative. For best fidelity, you should also use 44.1 kHz.
    – dirkt
    Aug 15, 2020 at 20:14
  • I understand now that this is apparently not a sample rate problem. After furious googling, I am now at my wit's end. I am updating the post.
    – rzjnzk
    Aug 17, 2020 at 22:25

1 Answer 1

-1

I cannot comment (yet) so as a reply: you may wish to try setting the output profile to one of the digital ones.

Currently your output above states that it is using an analog one

                device.profile.name = "analog-surround-40"
                device.profile.description = "Analog Surround 4.0"

Use whatever application you use to configure pulseaudio to change these (e.g. pavucontrol). This may shift your effective volume levels (usually down) so just in case, turn down the volume before you do so. Available profiles vary by device so you will need to check what your hardware supports.

If this does not solve the problem, could you please share more details as to the sound: e.g. if the noise involves low-level crackling when you use peripheral devices or the hard drive or if it is more of a regular pattern?

2
  • See the images I linked near the bottom of my question, that is what I see in pavucontrol.
    – rzjnzk
    Nov 2, 2020 at 7:45
  • I see, unfortunately that would have been the easiest "fix" for many devices. Still cannot comment above but here we go: Have you had a chance to listen with aplay (or other application to use ALSA directly)? ALSA uses its own configuration and you may run into that. I doubt that ALSA's sampling would make a difference but it would be nice to find out if the problem is in PA vs ALSA. Nov 2, 2020 at 8:20

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.