Linux HiFi Audio settings for Pulseaudio

While Wind*ws was pretty straight forward to setup for good audio quality, Linux left some things to be desired.

My Fiio K3 just acts like a USB-to-optical bridge.
It supports various modes:

Bit depth: 16, 32, DSD256
Rates: 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000

Sadly, there are limitations placed on the optical and coaxial Outputs:
Optical goes up to 96kHz / no DSD
Coaxial up to 192kHz / DSD64

To guarantee that my setup does not have a ground loop, I use optical between the Fiio K3 and my DAC: S.M.S.L. SU-8.

By default, my DAC was showing 44.1kHz sampling rate.

Let’s edit the pulse audio config at /etc/pulse/daemon.conf

# pre-edit (commented out with semicolons)
; default-sample-format = s16le
; default-sample-rate = 44100
; alternate-sample-rate = 44100

# after editing
default-sample-format = s32le
default-sample-rate = 96000
alternate-sample-rate = 44100

I keep the alternate sampling rate the same, as a fallback option. I also set up a higher bit depth as well.

As a last step, restart the pulseaudio daemon by killing it:

pulseaudio --kill

That will probably hang a couple applications. Alternatively, reboot or log out and back in.

96kHz is a good middleground. Most songs in my collection are 44100/48000 anyway. At least on Wind*ws I had some problems with Cyberpunk not liking 384kHz.

roman's lab

Technology and Engineering Blog


bliss

By Roman Hayn
22 July 2023

[~] ls
-r-x Linux
-r-x Audio