Playing DSD files can be a tricky task, especially on Linux. Some guides just straight up don't work or have issues with your distro's setup or require a decent amount of knowledge, but iit doesn't have to be that hard.
PipeWire actually has the capability for that built right in and it's quite easy to use.
This guide only touches on native DSD playback. If your hardware is not capable of DSD playback or DSD features are not available with your install, this won't work for you.
pw-play is a commandline tool for playing music files directly and is comes with a standard PipeWire installation.
To play PCM music you just open a terminal and type:
$ pw-play file.wav # WAV files only
for a DSD file we then just need to add the
-d param and that was it:
$ pw-play -d file.dsf # DSF files only
Once the music is playing you can also try to mess with some additional params, like
-v for verbose output with all the technical details.
All the params can be found in the docs at docs.pipewire.org (the tool is actually called pw-cat, pw-play is just a different name which calls pw-cat in playback mode, so that's why the name is different).
aplay -l and figure out which number your sound card is.
Now enter this number in the following command:
$ cat /proc/asound/card0/stream0 # ^ change this number
The output should look something like this:
Playback: Status: Stop Interface 1 Altset 1 Format: S32_LE Channels: 2 ( . . . ) Interface 1 Altset 2 Format: S16_LE Channels: 2 ( . . . ) Interface 1 Altset 3 Format: SPECIAL DSD_U32_BE Channels: 2 Endpoint: 0x01 (1 OUT) (ASYNC) Rates: 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000 Data packet interval: 125 us Bits: 32 DSD raw: DOP=0, bitrev=0 Channel map: FL FR Sync Endpoint: 0x81 (1 IN) Sync EP Interface: 1 Sync EP Altset: 3 Implicit Feedback Mode: No
There are multiple options listed here,
S16_LE for example describe PCM audio with 32 and with 16 bits. What you want to look for is
DSD_U32_BE. If you see it listed as a format like with mine, then it your DAC supports DSD playback and is also compatible.
Some Q&A style fixes I found out myself while discovering this tool include:
There is nothing on my screen
pw-play is a command line tool that won't give you any response by default. If you'd like to see what happens, try using it with the
pw-play -vd file.dsf.
I don't hear any sound
The tool likes to sometimes not work on the first try. Try quitting with
Ctrl + C and launching it again, you should have no issues from here on after.
How do I change the playback device?
It'll use whatever your default is at the time. Just use the audio settings in whatever GUI you are using and rerun the command.