DSD audio over USB
Posted: Wed Feb 01, 2012 5:34 pm
Version: 1.1
Status: Beta
License: Custom Licence
Download: /files/project_builds/DSD over USB v1.1.zip
The project implements the open standard proposed by DCS for the playback of DSD encoded audio over USB without the need of special driver as presented by Andreas Koch (Playback Designs), Andy McHarg (dCS), and Rob Robinson (Channel D) in release version 1.0.
The DSD audio data are encapsulated in 176.4kHz/24bit PCM samples with an alternating set of "headers" that enables the compatible devices to recognize the DSD signal and the incompatible ones to output a low volume harmless noise.
More info in DCS' document "Playback of DSD Audio over USB – A Suggested Open Standard" and Positive Feedback issue 59 article "Announcing the DSD Open Standard Movement".
The project is implemented on the USB Audio 2.0 Ref Design (XS1-L1) two channel interface and it is based on the original 3.3 source code provided by XMOS.
The XS1-L1 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
Current State:
It accepts all sampling rates and changes DSD/I2S on the fly. (tested with a Sabre32 DAC[the same pins accept I2S & DSD] - works fine)
At 176.4kHz sampling rate the output is set to PCM or DSD based on the first 8 bits of each set of stereo samples as described in the standard version 1.0.
By default it is set on PCM output and only if 32 consecutive DSD-marked samples are detected it switches to DSD output. (tested with in-house modified mpd - works fine)
SPDIF output and ADC Inputs are disabled - only I2S output is functional. (resources reservation)
DSD output is clocked at 2822400 bits per sec.
Compiled using XDE 11.2.0 (use this or more recent version to upload binary to the device)
It accepts 32bit integer samples.
It accepts 384kHz PCM. (352.8kHz are not supported due to hardware limitations)
Extra features available on custom firmware*:
22.5792MHz clock instead of 11.2896MHz
352.8kHz support
SPDIF output up to 192kHz (176.4kHz included)
DoP v1.1 support
DSD128 output clocked at 5644800 bits per sec.
DSD128 support using 352.8kHz DoP v1.1 encapsulation.
DSD indicator pin.
Separate DSD - I2S signal pins.
*contact the author for details & licensing
Compatible playback software:
1. none seamless DSD playback (version 1.0 compatible) application at release time.
2. any application that playbacks wav files, with a properly transcribed dsd file to 176.4k/24 wav file according to the standard. (tested - works fine - Test File std v1.0. Use this tool DSDtoPCM encapsulate Tool v1.1.)
WARNING: Requires bitperfect output (no volume adjustment, signal processing, resampling etc)!
Updates:
1. There are many applications available nowadays (free & commercial) for all major operating systems.
2. New version of DSDtoPCM encapsulate Tool corrects few bugs and adds support for DSD128 files (encapsulated @352.8k/24b)
Licensing:
The provided binary file may be redistributed and used only in non-profit and non-commercial applications, and with the proper acknowledgement to the present project.
-Restrictions-
a)The author reserves all rights not expressly granted.
b)You may not modify the binary file.
c)You may not profit from any use of the binary file.
d)You may not decompile or reverse engineer the binary file.
For any other usage and the detailed license contact the author.
ToDo:
1. Test with standard v1.0 compatible applications whenever they are released...
2. Optimize code (if possible)
Updates:
1. Done. No problem found.
2. Done. Room for further improvement and more features addition.
*Special thanks to the beta tester N.D.*
Warning:
Before using it read carefully all the description. Usage beyond the specified may have undesirable effects.
Video:
Images:
Status: Beta
License: Custom Licence
Download: /files/project_builds/DSD over USB v1.1.zip
The project implements the open standard proposed by DCS for the playback of DSD encoded audio over USB without the need of special driver as presented by Andreas Koch (Playback Designs), Andy McHarg (dCS), and Rob Robinson (Channel D) in release version 1.0.
The DSD audio data are encapsulated in 176.4kHz/24bit PCM samples with an alternating set of "headers" that enables the compatible devices to recognize the DSD signal and the incompatible ones to output a low volume harmless noise.
More info in DCS' document "Playback of DSD Audio over USB – A Suggested Open Standard" and Positive Feedback issue 59 article "Announcing the DSD Open Standard Movement".
The project is implemented on the USB Audio 2.0 Ref Design (XS1-L1) two channel interface and it is based on the original 3.3 source code provided by XMOS.
The XS1-L1 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
Current State:
It accepts all sampling rates and changes DSD/I2S on the fly. (tested with a Sabre32 DAC[the same pins accept I2S & DSD] - works fine)
At 176.4kHz sampling rate the output is set to PCM or DSD based on the first 8 bits of each set of stereo samples as described in the standard version 1.0.
By default it is set on PCM output and only if 32 consecutive DSD-marked samples are detected it switches to DSD output. (tested with in-house modified mpd - works fine)
SPDIF output and ADC Inputs are disabled - only I2S output is functional. (resources reservation)
DSD output is clocked at 2822400 bits per sec.
Compiled using XDE 11.2.0 (use this or more recent version to upload binary to the device)
It accepts 32bit integer samples.
It accepts 384kHz PCM. (352.8kHz are not supported due to hardware limitations)
Extra features available on custom firmware*:
22.5792MHz clock instead of 11.2896MHz
352.8kHz support
SPDIF output up to 192kHz (176.4kHz included)
DoP v1.1 support
DSD128 output clocked at 5644800 bits per sec.
DSD128 support using 352.8kHz DoP v1.1 encapsulation.
DSD indicator pin.
Separate DSD - I2S signal pins.
*contact the author for details & licensing
Compatible playback software:
1. none seamless DSD playback (version 1.0 compatible) application at release time.
2. any application that playbacks wav files, with a properly transcribed dsd file to 176.4k/24 wav file according to the standard. (tested - works fine - Test File std v1.0. Use this tool DSDtoPCM encapsulate Tool v1.1.)
WARNING: Requires bitperfect output (no volume adjustment, signal processing, resampling etc)!
Updates:
1. There are many applications available nowadays (free & commercial) for all major operating systems.
2. New version of DSDtoPCM encapsulate Tool corrects few bugs and adds support for DSD128 files (encapsulated @352.8k/24b)
Licensing:
The provided binary file may be redistributed and used only in non-profit and non-commercial applications, and with the proper acknowledgement to the present project.
-Restrictions-
a)The author reserves all rights not expressly granted.
b)You may not modify the binary file.
c)You may not profit from any use of the binary file.
d)You may not decompile or reverse engineer the binary file.
For any other usage and the detailed license contact the author.
ToDo:
1. Test with standard v1.0 compatible applications whenever they are released...
2. Optimize code (if possible)
Updates:
1. Done. No problem found.
2. Done. Room for further improvement and more features addition.
*Special thanks to the beta tester N.D.*
Warning:
Before using it read carefully all the description. Usage beyond the specified may have undesirable effects.
Video:
Images: