Menu

#173 dsd to pcm support

open
None
5
2012-10-14
2011-11-15
No

Sebastian Gesemann wrote a c based code to convert dsd (dsdiff) to pcm at 24/352.4. I contacted Sebastian and request to be able to use and distribute the code he said sure. I can provide the exchange between us as needed. I then had a friend modify the code to parse the dsd data and make the same conversion without the header information. Can we add dsd to pcm support directly to SoX with this code? I can provide the code as needed.
Thanks
JR

Discussion

  • terual

    terual - 2012-10-10

    Sebastian Gesemann release his DSD2PCM code under the simplified DSB license here: https://code.google.com/p/dsd2pcm/

    The license probably simplifies using his code. The first stage of his code converts the raw DSD stream to 352.8 kHz PCM 32-bits floating-point and this is probably the only part which should be used.

    The most used fileformats which contain DSD streams are DSDIFF (see http://www.sonicstudio.com/pdf/dsd/DSDIFF_1.5_Spec.pdf\) which has the .dff extension from Philips and the simpler DSF fileformat from Sony (see http://www.dsd-format.sony.net/data/DSFFileFormatSpec_E.zip\) which has a .dsf extension.

     
  • robs

    robs - 2012-10-10

    > The first stage of his code converts the raw DSD stream to 352.8 kHz PCM 32-bits
    > floating-point and this is probably the only part which should be used.

    I don't think we need it: sox's existing downsampler should be sufficient and may even be more efficient as it's FFT-based.

    > The most used fileformats which contain DSD streams are DSDIFF...

    Yes, so this is the main work that's needed, to write a reader for the container files. I'm not sure that it warrants the effort though (DSD seems something of a failed experiment), but if someone wants to submit a patch for it, I'm sure it could be added.

     
  • terual

    terual - 2012-10-12

    I have read on the sox-devel list that Ulrich Klauer was woking on DSDIFF support. Could he comment on this feature request?

    And if all that is neccesary to convert a 1-bit stream to PCM is already in SoX, what would then be the command to convert a raw DSD stream to PCM?

     
  • Anonymous

    Anonymous - 2012-10-12

    A lot has changed since my initial request. There is currently a USB format named DoP that allows one to stream DSD to a external DAC from a computer. This has prompted capable DACs to come to market in a very short time and more to follow. DSD is not a failed format though, but rather a format associated with a failed devilvery mechanizm named SACD. There is plenty of high resolution content available on SACD and there is a vialble way to rip SACD content to DSDIFF and or DSF. However, until more DSD DACs are avalable the converter is needed to get the content down to usable bit/sample rates. Anyway, back to the real issues. DSDIFF support would be great and DSF support would be even better. DSF is now preferred because it has support for id3 metadata.

     
  • Ulrich Klauer

    Ulrich Klauer - 2012-10-14
    • assigned_to: nobody --> uklauer
     
  • Ulrich Klauer

    Ulrich Klauer - 2012-10-14

    My proof-of-concept hack from, uh, slightly more than a year ago does exactly what robs said, i.e. it reads each DSD bit as one sample (with a sample rate of 2.8 MHz) and leaves it to the rate effect to do all resampling, which works very well. It is also possible to use, e.g., the spectrogram effect on the un-resampled DSD audio and see all that noise in the higher frequency bands. :)

    Unfortunately, I haven't found the time yet to continue working on a DSDIFF (or DSF) parser, nor to tidy up the code for "raw" DSD reading to make it suitable for release. I'll try to make at least the latter happen in the next time.

     
  • Anonymous

    Anonymous - 2012-10-15

    I have some code that parses the DSD file. Do you want it?

     

Log in to post a comment.