MPD with DSD-over-PCM (DoP) support 
[update: 14 July 2012]
Most of my work is included in MPD 0.17 released on 27 June 2012.
Use the latest git version (as of 13-July-12) to obtain support for song duration for DSF and DSDIFF DSD files.

My next patch will provide tag support, in the mean time you can use a slightly older version which includes both song duration and tag support for DSD:

MPD git from 02may12 with song duration and tags for DSD

[original version, for archive purposes only]
This version of mpd (linux only) has support for DSD-over-PCM as proposed by dCS.
It is built on a git checkout from the development version of mpd (0.17). It extracts stereo DSD data sends packed 
from DFF (Philips format) or DSF (Sony format) files and sends it in packed format at a rate of 176400 to a capable DAC.

You will need a DSD capable DAC like the Mytek Stereo192-DSD which supports the dCS spec to be able to use it.
In case of the Mytek you'll need either the snd-dice firewire sound driver [1] or a capable usb-to-spdif converter like the SOtM dX-USB HD.


The code is tested on Fedora 16/Vortexbox 2.0 (32-bit), Fedora 15/16/17 x86_64 and Debian Squeeze (ARM) on a Seagate Dockstar.


- Support for stereo DSD64 files in DSDIFF or DSF format (non compressed)
- Support for seeking (fast forward/reverse)
- Tagging support:
        - DFF: artist and title tag native to the format
        - DFF: ID3 tags as used by sacdextract (*)
        - DSF: ID3 tags
- Output in 32-bit or 24-bit sample format

(*) ID3 tags are not part of the DSDIFF specification.

Installation procedure for Vortexbox 2.0/Fedora 15/16 (32-bit).
The Fedora version requires additional libraries from rpmfusion.

Download my mpd build for Vortexbox 2/Fedora 15/16 i686: mpd-1.17.jk8.8-1.fc16.i686.rpm

Install the required additional libraries:

su -c 'yum install libcue libmodplug libmpcdec libbzip'

After that, install mpd, overwriting the existing mpd install:

su -c 'rpm -ivh mpd-1.17.jk8.8-1.fc16.i686.rpm --force'

Installation procedure for Fedora 15/16 (64-bit).
The Fedora version requires additional libraries from rpmfusion.

Download my mpd build for Fedora 15 x86_64: mpd-1.17.jk8.8-1.fc15.x86_64.rpm or Fedora 16 x86_64: mpd-1.17.jk8.8-1.fc16.x86_64.rpm
Install the additional required libraries:

su -c 'yum install libcue libid3tag libmad libmikmod libmms twolame zziplib paprefs ffmpeg-libs'

Install the mpd RPM:

su -c 'rpm -Uvh mpd-1.17.jk8.8-1.fc15.x86_64.rpm'

Installation procedure for Debian Squeeze (ARM).

Download my mpd build for Debian Squeeze (ARM): <to be added>

Add the following lines to your mpd configuration:
decoder {
        plugin           "dsdiff"
                                enabled "no"

decoder {
        plugin           "dsdiff_native"
                                enabled "yes"
                                dsdsampleformat "32"
                                tagsupport "id3pref"
The first line disables the (new) DSD2PCM decoder available in current developement version of MPD 0.17. This decoder supports DFF (Philips) format DSD files and decodes them 
to 352800 PCM. This plugin should be paired with sox to filter out the high frequency noise available in PCM converted from DSD!

dsdsampleformat selects the PCM output sampleformat. Can either be 32 or 24, the default is 32-bit. 
This is supported by most USB2 audio devices and the snd-dice firewire sound driver.

taggsupport options are:
- none
No tagging (default)

- id3only
only use id3 tags when available

- native
only use the tags  native to the file format
- DFF: only artist and title
- DSF: ID3
- id3pref
use id3 tags when available otherwise use native one

As a last step, restart mpd (as root): service mpd restart

(Re)scan your library

If you already have DFF files in your library, remove them, do a rescan and re-add them again. This way the tags in the DFF files will be used according to 
your configuration. DSF files were not supported before so will be added with the correct tags when you do a rescan.

The source - patches

I have released the source of my decoder is as a series of patches to mpd 0.17. They are posted on the MPD development mail list.

The source – source code

The patches need (major) rework to get accepted and are no longer compatible with the current git version of MPD. To be able to test and use the code I made available my complete development version.

mpd 0.17 sources with my DSD-over-USB/PCM code added

14-Jul-12 18:54:32 MPD with DSD-over-PCM – Jurgen Kramer