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).
Execute 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, S32_LE
and 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 -v
flag: 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.