Hi,
I wanted to thank the contributors to this thread. I've learned a few new things
as a result of your generosity. One is the relatively recent addition of the
avoid_resampling configuration option of PulseAudio. I've tried it and seems
to work well.
I have seen some posts on other forums suggesting the complete removal of
PulseAudio in order to achieve bit perfect playback. That's not what's going
on here, fortunately.
PulseAudio does its job well, which is to mux a multitude of audio sources
together. When performing critical listening, it is almost invariably precisely
one audio source to the exclusion of all others.
On the distributions I've tried, many of the software packages that collectively
implement a given desktop environment often list PulseAudio as a dependent
package. Thus removing PulseAudio pretty much means gutting some of the
desktop environments. Fortunately, there's no reason to do this.
What I've been doing for quite a few years is using audio players that provide
for the ability to send the audio output directly to the DAC via ALSA, bypassing
PulseAudio. There are several discussed in this topic thread. Some of which
are new to me. My journey is much like others here. Amarok, then Clementine
then DeadBeef, with a few others auditioned at the transitional junctures.
Independent of player choice. What I do is let all of the usual audio sources
flow into the PulseAudio audio bus, as is largely done by default. I leave
PulseAudio with its output directed at an audio sink that I do not use for critical
listening. I then either lower the volume or mute PulseAudio and its current
audio sink. Basically using PulseAudio in a manner analogous to /dev/null,
or if you prefer, a default graveyard for all audio sources that I don't want to hear.
The audio player with which I am performing critical listening goes directly to
the intended DAC via ALSA. It is important to note that PulseAudio does
present its own ALSA interface. An aplay -L command on the Fedora system
on which I'm typing this message shows "pulse" and "default" as selectable
ALSA devices that are in fact audio inputs to PulseAudio. So, don't select those,
as you'll end up back where you started.
So, I find the simple solution is to use a player that is ALSA friendly. Use it for
your critical listening. Let PulseAudio continue to be the default audio muxer
for system sounds and other applications. Then mute PulseAudio while its
output is directed at some audio sink other than the one used for critical
listening. The only complexity is curating a list of favored audio players that
make it convenient to select the desired audio sink.
Appologies for stating the obvious and repeating what others have already said.
I just wanted to summarize because some users new to GNU/Linux might be
given the false impression that the topic of achieving quality audio playback on
GNU/Linux is difficult.