Question about USB DAC and pipewire

I have an IFI hip dac plugged in to my laptop with pipewire. I am seeing two output devices. First is Analog Output HD USB Audio — Analog Stereo Output. The other one is Digital Output (S/PDIF) HD USB Audio — Digital Stereo (IC958) Output. Both of these have sound. I’m wondering which is the correct choice to get the best possible sound from my DAC.

I’ve done some searches and there’s been some conflicting information. Some accepted solutions say that picking Digital Output bypasses the laptop’s built-in DAC and sends the digital signal to the external DAC directly without any processing, but I’m not sure if that’s correct. I’ve read the Pipewire FAQ (FAQ · Wiki · PipeWire / pipewire · GitLab) but it’s not much help, or maybe I just don’t get it since I’m new to Linux audio.

Tl;dr which of these two is the “correct” and better sounding option for a DAC connected through USB: Analog Output or Digital Output? Any help would be greatly appreciated.

I was about to start a similar thread. @colopatiron , did you figure out the answer?
I was similarly confused by web searches.

This DAC does not have a jack socket or optical input to connect to S/PDIF output from onboard audio
Specifications on vendor’s website show the device has only a digital input connection via USB that will always bypass the onboard audio device

Specifications show only 2 analog headphone outputs and no mention of any form of digital output
The Analog Output profile would be the correct terminology, but I would expect that if both profiles use the same same USB connection and headphone output connection there may be no difference in the signal path through the device and no difference in audio quality

PulseAudio and PipeWire both use the same configuration files for creating audio device profiles so switching sound servers would probably make no difference
But there might be some PulseAudio documentation and suggestions for reconfiguring/customising profiles that can be used in PipeWire configuration
The only difference is PulseAudio configuration is located in folder /usr/share/pulseaudio/alsa-mixer/ and PipeWire uses files from /usr/share/alsa-card-profile/mixer/paths

If you cannot perceive any difference between profiles it probably does not matter which one you use

Here is a screen cap of the situation.

Why are there two options if they are the same?

Here is a confusing bit from Ask Ubuntu
https://askubuntu.com/questions/538521/what-does-usb-dac-analog-output-mean?rq=1

A Digital to Analog Converter converts a digital data stream to an analog electrical signal that can be further converted to audio by analog equipment (amplifier + speakers/headphones)

The only confusing bit on askubuntu I can see is the 2nd attempt at an answer.
Comment of Nov 17, 2019 explains why this suggestion is incorrect

There is no such thing as “passing the digital stream to the computer sound card and then having the analog output go to USB”. USB is always digital, and built-in sound cards have no mechanism to route stuff through USB

This comment is consistent with my previous comment

Specifications on vendor’s website show the device has only a digital input connection via USB that will always bypass the onboard audio device

Tl;dr which of these two is the “correct” and better sounding option

It might be a false assumption that only one output can be correct
If both ouputs work and sound quality is no different, choosing which one to use which profile to use will make no difference to audio reproduction

I do not have audio-telepathic abilities to be able to hear audio in the exact same way as another person, so only the listener can decide what sounds best for them

1 Like

Pipewire faq has been updated. Analog is the correct answer. FAQ · Wiki · PipeWire / pipewire · GitLab

What are those *Analog Stereo* and *Digital Stereo (IEC958)* profile?

TL;DR: You want to use the Analog Profile, it will sound best. Digitial Profile is only used in specialized cases as you can read below.

The [Digital](https://alsa.opensrc.org/DigitalOut) Stereo Profile is meant to send uncompressed stereo and compressed surround formats such as AC3, DTS or Dolby Atmos digitally to a receiver to be decoded by the receiver. It bypasses part of the mixers in the hardware and makes the digital signal available for receiver with either a coaxial S/PDIF cable, an optical S/PDIF cable or an HDMI cable. If you do not have a receiver that can decode these streams, you should use the Analog Stereo profile to get better mixer controls.

If you select this profile, you should probably also select the codecs that the receiver can decode, see the advanced tab in pavucontrol. Uncompressed stereo PCM can always be sent over IEC958 but not all receivers support the other compressed formats.

Some hardware does not have a coaxial, optical or HDMI output but you still have the profile available. This is likely because hardware has the feature but is not made available. With the right model:vendor id (see with lsusb) it is possible to make a custom profile and remove the non-functional IEC958 profile.

Most hardware has the Digial output also connected to the DAC so that it will still produce output on the Analog outputs, usually with likely less optimal mixer settings (volume too low, less bass, ...).

Pipewire FAQ was updated to add the TL:DR comment day before my last comment

IMO PipeWire developers probably don’t have audio-telepathic abilities either :wink:

“It will sound best” seems like a diktat

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.