Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: DSDIFF Decoder (Read 142961 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

DSDIFF Decoder

I have released a component here which can decode .DFF files. Beware, DST encoded files play back at sub-realtime on most systems because the reference DST decoder really sucks. Oh, and it may be buggy on bad DST encoded files, I haven't completely rewritten the crappy decoder.

Here is some test material. I don't really know of any other free sources of .DFF files.

Updated to 1.1: Now resets the foobar2000 resampler on seek.

DSDIFF Decoder

Reply #1
w00t! Thank you SO much for developing this one!

- What methods/code are you using to convert the DSD to PCM? Has it got anything to do with the DSD-2-PCM converter?

- would you be able to add options for 176400 and 192000 output? And I assume it's 24-bit output too?

- Would DSF support be possible? DSF file specification is here - difference to DSDIFF is merely the header info, I think - you can rename DFF to DSF and it will still play in the WMP plugin. A good way to make make your own real sample DSF files would be using Sony's DSD Direct which can create DSF files from stereo 16/24-bit 44.1kHz WAV files. It's free software and is not restricted to sony computers so I think it's legal to share it - here is a copy of it.

- Support for .DSD file format? This is apparently the old, original DSD file format, supported by some opf the older SACD authoring programs applications before DSDIFF became the standard. I'm not sure if it has its own file header specifications like DSDIFF and whether it is different to straight "raw DSD" data like LukeS' sample but perhaps it's the same thing. :S Samples are at this thread.

- Support for .WSD possible? This is another DSD format supported by Korg's Audiogate and DSD recorders. See the WSD info at bottom of this page. I don't actually have a Korg so I don't know of any way to try out WSD files...maybe it's useless if no one even uses it 

- Lastly, how about DXD playback. If you use the Resampler (PPHS) DSP plugin you can actually play back DXD files in foobar. However it means you have to play every single different file in the one sampling rate that you choose. Would there be a way to somehow detect DXD WAV files (maybe DXD has different header info in the wav container?) and include them in the DSD decoder's resampler so that they can be played back without you having the overall foobar resampling everything?

Thanks once again!

DSDIFF Decoder

Reply #2
What methods/code are you using to convert the DSD to PCM? Has it got anything to do with the DSD-2-PCM converter?

I used SebastianG's stage 1 decimation filter to reduce the sample rate to 352800Hz, then I use foobar2000's resampler service to go the rest of the way. This results in the best quality, while maintaining some semblance of speed.

I did make one change to the filter, though. Since this DSD is most-significant-bit first, I changed the filter initialization accordingly.

would you be able to add options for 176400 and 192000 output? And I assume it's 24-bit output too?

The configuration page supports any rate between 6KHz and 192KHz. And it output 32-bit floating point.

Would DSF support be possible?
...
Support for .DSD file format?
...
Support for .WSD possible?

I'll look into it.

Lastly, how about DXD playback.

Unless the files are renamed to something other than .wav, then no, they'll always be handled by the standard .wav input. I'll look at a DXD file anyway, though.

DSDIFF Decoder

Reply #3
The configuration page supports any rate between 6KHz and 192KHz. And it output 32-bit floating point.

Oh ok. I can see how you can put it in manually. What you should do though, is add 176400 and 192000 to the drop-down list.

Quote
I'll look into it.

Thanks <3

Quote
Unless the files are renamed to something other than .wav, then no, they'll always be handled by the standard .wav input.

Wouldn't it be like DTS-WAV files and the DTS plugin though? detect header? Or maybe I'm not getting how it works with the sampler and order of detecting and then processing...

Quote
I'll look at a DXD file anyway, though.

Thanks. I love that 2L page

DSDIFF Decoder

Reply #4
Wouldn't it be like DTS-WAV files and the DTS plugin though? detect header? Or maybe I'm not getting how it works with the sampler and order of detecting and then processing...

Currently, the DTS-WAV input either requires you to rename the files to .dts or .dtswav, or use a DSP. Since DXD is merely PCM at a high sample rate, it should probably be up to a resampler DSP that only resamples material over a given sample rate.

DSDIFF Decoder

Reply #5
Currently, the DTS-WAV input either requires you to rename the files to .dts or .dtswav, or use a DSP.

Ah yes sorry I forgot. You need to employ the DTS decoder DSP. Which btw (I think you're the developer for that too? <3), DTS-WAV files (.WAV) have a very loud click when you start playing a track, which upon close listen sounds like a brief split second of undecoded dts hiss before it realises it's dts data and not pcm data. But DTS-FLAC files are perfect without the split second "chink" sound.

Any thoughts on that?

Quote
Since DXD is merely PCM at a high sample rate, it should probably be up to a resampler DSP that only resamples material over a given sample rate.

I thought it was a little more than that, though. As per this white paper (and other explanations upon googling), it uses a more relaxed anti-alisasing filter on top and independent of the higher sampling rate (which gives it a closer DSD-like pulse response as well as and frequency response, and would be a different (not sure to what degree) when comparing it to a "normal" 352.8kHz PCM file).

Yet, you can play it back as "normal" PCM if you simply bring the sampling rate back down to earth a little (and I guess, ignoring the intended relaxed anti-aliasing filter). Which makes me wonder about the strictness of the DXD format implementation and how you're supposed to play it back it in its (on a technical level) "pure" intended form with the DSD-like roll-off filter. I know the Sony Sound Reality chip supports "native" DXD playback...

But anyway, in terms of the difference in the file (that a possible foobar DXD DSP could detect), are there no header differences from say a "normal" 352.8kHz PCM WAV file?


DSDIFF Decoder

Reply #7
Type the value you want in. I only added presets up to 96KHz. I'll add 176400 and 192000 for the next release.

DSDIFF Decoder

Reply #8
Type the value you want in. I only added presets up to 96KHz. I'll add 176400 and 192000 for the next release.

Perfect, but please add the new values.

In 2 words, Are the dff are better than normal pcm 192KHz 24bit  ?

I have found the dff2wav.exe software to conver dff to pcm but it have created an output file at only 88KHz giving a dff at 2.5MHz

DSDIFF Decoder

Reply #9
I have found the dff2wav.exe software to conver dff to pcm but it have created an output file at only 88KHz giving a dff at 2.5MHz

The DSD stream from an normal SACD matches about the information of 88kHz/24bit in PCM (with ultrasonic distortion of course)
In theory, there is no difference between theory and practice. In practice there is.


DSDIFF Decoder

Reply #11
If someone is interested to the dff to wav software
----------------------------------------------------------------

check all the link inside this webpage
http://fpga.cool.coocan.jp/wordpress/index.php/2009/01/
you will find
dff2wav09b.zip


Hello audiosesignguide.
Is there any convertion tool that can convert any .dsf file into WAV or into .dff ?

Does anyone have such a FREE tool? (for the moment the commercial tools are too expensive...)

Thank you in advance.

Best regards,

hr_muadib

DSDIFF Decoder

Reply #12
If it helps, here's a compilation of all the software (I think it might be based on the audiogate converter?) that is found at http://fpga.cool.coocan.jp/wordpress/. That japanese guy seems to be doing some very interesting stuff with DSD files, including his own SACD player DSD output board.

dff2wav: http://fpga.cool.coocan.jp/electrart/dff2wav.exe

wsd2wav: http://fpga.cool.coocan.jp/electrart/wsd2wav.exe

wsd2wav1: http://fpga.cool.coocan.jp/electrart/wsd2wav1.zip

wsd2dsf: http://fpga.cool.coocan.jp/electrart/wsd2dsf.exe

WSD file format specifications: http://www.acoust.rise.waseda.ac.jp/1bitco...f/020917wsd.pdf

It would be interesting to compare the output files of dff2wav to the DSD2PCM-based converter in foobar. In fact I tried to do this, and, Kode54, how do you convert a DSD file to 24-bit PCM in foobar? I tried the foobar converter and it could only seem to produce a 16-bit output file (sampling rate was whatever I set the DSDIFF decoder to). I wonder how you could control it so you could allow 16, 24 or 32-bit PCM output...

Is there any convertion tool that can convert any .dsf file into WAV or into .dff ?

Does anyone have such a FREE tool? (for the moment the commercial tools are too expensive...)

Thank you in advance.

Best regards,

hr_muadib

kode54 is looking into adding DSF playback to foobar anyway. If/once that happens, you can then simply use foobar's convert operation to essentially convert it to a wav file if you need to.

As for DSF to DFF, that should be pretty simple actually, it looks like just a change of header info...One can even do it manually, I think. Audiogate can do it in a GUI environment, but it's far from free...perhaps some time we will have one of these great little free plugins/programs popping up at HA to do it...like the dbPoweramp DSD plugin...

DSDIFF Decoder

Reply #13

Quote
As for DSF to DFF, that should be pretty simple actually, it looks like just a change of header info...One can even do it manually, I think. Audiogate can do it in a GUI environment, but it's far from free...perhaps some time we will have one of these great little free plugins/programs popping up at HA to do it...like the dbPoweramp DSD plugin...


A DSF file is a DSDIFF file (content-wise) that is re-formatted as a WAV-RIFF structured file. Nothing more (or less)...

Best,

Graemme


DSDIFF Decoder

Reply #14

Quote
Since DXD is merely PCM at a high sample rate, it should probably be up to a resampler DSP that only resamples material over a given sample rate.


Quote
I thought it was a little more than that, though. As per this white paper (and other explanations upon googling), it uses a more relaxed anti-alisasing filter on top and independent of the higher sampling rate (which gives it a closer DSD-like pulse response as well as and frequency response, and would be a different (not sure to what degree) when comparing it to a "normal" 352.8kHz PCM file).


That first link that you quoted with regards to 'relaxed filtering' is referring to the hardware implementation of their ADC. As noted by the OP, DXD is merely a name given to the 8fs family of PCM sample rates, by Claude Cellier, the founder of Merging Technologies (Pyramix DSD DAW). The wordlength of a 'DXD' file can be from 16-24 bits fixed and 32 bits floating point. Any DXD file that I've ever seen, when written as a .WAV or BWF, is exactly the same as any other PCM WAV or BWF, with regards to structure. It's only 'difference' is the sampling rate.

Best,

Graemme

DSDIFF Decoder

Reply #15
ok guys call me stupd..."The configuration page supports any rate between 6KHz and 192KHz. And it output 32-bit floating point."

er where exactly is the dsdiff configuration page and/or how to i access it...when i play dsd dff files (downloaded and ones ive created or converted) they all play back at 882000 (88.2khz) and i did wonder if this could be changed  for 96khz 24bit or 192/24  of which if im playing back in foobar using audigy 2ZS is it REALLY playing back at 96khz 24bit or downsampling then upiing as i heard about creative  cards.


DSDIFF Decoder

Reply #16
I have released a component here which can decode .DFF files. Beware, DST encoded files play back at sub-realtime on most systems because the reference DST decoder really sucks. Oh, and it may be buggy on bad DST encoded files, I haven't completely rewritten the crappy decoder.

Here is some test material. I don't really know of any other free sources of .DFF files.

Updated to 1.1: Now resets the foobar2000 resampler on seek.



Dont know if this is anygood to anyone....

Weiss SARACON-DSD: http://www.weiss.ch/p2d/p2d.html

Sonic nexStage (Mac only): http://sonicstudio.net/products/dsd/dsdformac.html

DSDIFF Decoder

Reply #17
- Support for .WSD possible? This is another DSD format supported by Korg's Audiogate and DSD recorders. See the WSD info at bottom of this page. I don't actually have a Korg so I don't know of any way to try out WSD files...maybe it's useless if no one even uses it 
ive heard that audiogate is also mediaplayer

Moderation: Replaced a full quote with only the relevant part of the post (hopefully).

DSDIFF Decoder

Reply #18
How to run dff2wav.exe ?

DSDIFF Decoder

Reply #19
If it helps, here's a compilation of all the software (I think it might be based on the audiogate converter?) that is found at http://fpga.cool.coocan.jp/wordpress/. That japanese guy seems to be doing some very interesting stuff with DSD files, including his own SACD player DSD output board.

dff2wav: http://fpga.cool.coocan.jp/electrart/dff2wav.exe

wsd2wav: http://fpga.cool.coocan.jp/electrart/wsd2wav.exe

wsd2wav1: http://fpga.cool.coocan.jp/electrart/wsd2wav1.zip

wsd2dsf: http://fpga.cool.coocan.jp/electrart/wsd2dsf.exe

WSD file format specifications: http://www.acoust.rise.waseda.ac.jp/1bitco...f/020917wsd.pdf

It would be interesting to compare the output files of dff2wav to the DSD2PCM-based converter in foobar. In fact I tried to do this, and, Kode54, how do you convert a DSD file to 24-bit PCM in foobar? I tried the foobar converter and it could only seem to produce a 16-bit output file (sampling rate was whatever I set the DSDIFF decoder to). I wonder how you could control it so you could allow 16, 24 or 32-bit PCM output...

I was able to download that dff2wax.exe. But it's in japnese
Also I download the *.dff sample file from http://www.2l.no/hires/index.html

Now how to run that dff2wav.exe ?

I tried as c:\...\dff2wav.exe source.dff desti.wav ................ !!! Is this correct way ?
I got FILE CANNOT BE OPENED message.

Kindly reply ASAP, will be very thankful.

Regards,
Abhi

DSDIFF Decoder

Reply #20
my foobar says
"Failed to load DLL: foo_input_dsdiff.dll",
Reason: 找不到指定的程序。 

why?

DSDIFF Decoder

Reply #21
I am also interested in this conversion stuff.  I happen to be a linux user and am looking for playback options of dsd files on ubuntu.  If it would be helpful to anyone I can give some audio samples in the different formats.  I have a Korg MR1000.  I can give sample files of anything it can create. 

I would also be interested in helping with a software or playback hardware project if there are any being worked on right now.


DSDIFF Decoder

Reply #22
When I play multichannel dff files I get only stereo channels. Anyone knows what's wrong?

DSDIFF Decoder

Reply #23
I am also interested in this conversion stuff.  I happen to be a linux user and am looking for playback options of dsd files on ubuntu.  If it would be helpful to anyone I can give some audio samples in the different formats.  I have a Korg MR1000.  I can give sample files of anything it can create. 

I would also be interested in helping with a software or playback hardware project if there are any being worked on right now.

what sort of help would that be. technical, or just testing/feedback/moral support etc?

DSDIFF Decoder

Reply #24
i add foo_input_dsdiff.dll in C:\Program Files\foobar2000\components ,then play ONE  **.dff doc. display playback error: Decoding failure at 0:00.000 (Unsupported sample rate, no resampler present):.in preferences i have set in playback input - dsdiff decoder in 96k: output ds output 24 bit.do i make any mistake setting in foobar2000 1.1.5?please help me !!!