DSD audio over USB: an XMOS Reference Design implementation

Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.
Hello all,

I just want to make happy the XMOS USB Audio 2.0 Reference Design owners by announcing
the implementation of the DSD audio over USB open standard (proposed by DCS).
DSD over USB standard bypasses the need for special drivers by using 176.4k/24b PCM samples
to encapsulate DSD data (more info in "Playback of DSD Audio over USB – A Suggested Open Standard")

Detailed info and the modified firmware can be found here:
https://www.xcore.com/projects/dsd-audio-over-usb

In a few words:
The board has test points for the I2S signals where you can easily "hijack" the signal
and route it to any external DAC. (it has an on-board DAC that is not DSD friendly)
The implementation outputs DSD signals on the I2S pins with the following mapping:

1. Bit Clock - SCLK

2. Left channel DSD data - LRCK

3. Right channel DSD data - DAC DATA

It has been tested by fellow diyAudio member adelias with a properly modified version of mpd
in combination with a Sabre32 DAC and it works (and sounds) great.

It accepts all sampling rates and changes DSD/I2S on the fly!
In Sabre32 DAC the same pins accept I2S & DSD, so the DAC also changes between I2S and DSD on the fly.

The only serious drawback is that everything at 176.4kHz sampling rate is treated as DSD,
essentially loosing the ability to playback 176.4kHz PCM files. This is temporary until DCS
finalizes the standard. Until then do not try to playback normal PCM files at 176.4kHz!

Enjoy listening DSD audio!
 
What does "encapsulate data" mean? I hope that it is straight DSD, not converted to PCM "on the fly".

There is no conversion happening. The PCM 176.4k/24b format is being used as a "carrier".
The true DSD data are being transferred but for reasons explained quite well in the DCS' standard,
a special "header" (10101010) is added in the MSB of each 24b sample and is removed by the USB
device before sending the actual DSD data (the rest 16bits) to the DAC.

A look at DCS' document "Playback of DSD Audio over USB – A Suggested Open Standard"
will enlighten you.
 
Cool... I love the DSD recordings sound and I have a bunch of SACD's.
But playing straight DSD files was limited to my computer sound card, Foobar2000 and the associated plug-in. Which is done by converting to PCM.

Now, I have to mention that a DSD capable DAC will not decode the eventual DSD programs compressed with Direct Stream Transfer (DST). That should be done in the XMOS, based on MPEG-4 DST (that was published as ISO/IEC 14496-5:2001/Amd.10:2007).
 
Now, I have to mention that a DSD capable DAC will not decode the eventual DSD programs compressed with Direct Stream Transfer (DST). That should be done in the XMOS, based on MPEG-4 DST (that was published as ISO/IEC 14496-5:2001/Amd.10:2007).

The DST compression should be handled at the playback application and not in the USB device,
for various reasons and irrespective of the DSD to USB implementation.
Jackal's link plugin is an example that does DST decoding in the application.
 
Regarding compatible playback software, here is the link for the mpd with a modified DSD module by Jurgen Kramer.
It is tested and works great!

mpd with DSD over USB support

In case you want to test the firmware without the need of special playback software, use the test file that is mentioned in the project page.
The test file is also a good example for testing how it sounds through a non DSD over USB aware device.
 
Last edited:
Thanks sp502. DSD-over-USB output with Music Player Daemon is what I have been waiting for.
I see that "taggsupport" options are listed as:

- 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


In terms of tagging our DSD files, I presume that the "native" tags are those created by Korg AudioGate?

And since ID3 tags are non-standard for DSD, what's the best way to add ID3 tags - Foobar with the SACD-plugin?
 
dsd tags

Thanks sp502. DSD-over-USB output with Music Player Daemon is what I have been waiting for.
I see that "taggsupport" options are listed as:

- 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


In terms of tagging our DSD files, I presume that the "native" tags are those created by Korg AudioGate?

And since ID3 tags are non-standard for DSD, what's the best way to add ID3 tags - Foobar with the SACD-plugin?
DFF files (DSDIFF format from Philips) only support Artist and Title. Files created with sacdextract will have an ID3 tag added as well. The DSF (Sony) format supports ID3 tags. Basically native means it will use the tags format which is native to the format.

It seems AudioGate does support ID3 for DSF files.
 
May I have your attention, please?
The moment you've all be waiting for…
Delivered as promised!

DSD audio over USB open standard version 1.0

Fully compatible firmware for the XMOS USB Audio 2.0 Reference Design.
It accepts all sampling rates and changes DSD/I2S on the fly, even at 176.4kHz!
Works flawlessly.

Tested extensively by my good friend adelias with our modified version of mpd,
that supports standard v1.0, in combination with a Sabre32 DAC.

Regarding compatible playback software, I don't know any that supports standard v1.0 yet
(except our own modified version of mpd).
In case you want to test the firmware without the need of special playback software,
use the test file that is mentioned in the project page.
The test file is also a good example for testing how it sounds through a non DSD over USB aware device.

Detailed info and the modified firmware can be found here:
https://www.xcore.com/projects/dsd-audio-over-usb

Enjoy listening DSD audio! :cool:
 
Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.