Skip to main content
Topic: DSDIFF Decoder (Read 119775 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

DSDIFF Decoder

Reply #50
Hi kode54,
I came from DIYAudio.
Now I'm making fully DSD playback system
and, now trying to write WAV PCM TO DSD converter.
There is the link on the bottom, for Wav2DSFconverter01(2).cpp.txt
I'm stacking at 7th order noise shaper IIR filter.
If anyone knows how to implement IIR filter in C, Please Help

DSDIFF Decoder

Reply #51
Oh no, please let that project die quickly, lest we get swamped with fake PS3 rips. Also
- DSD format is not public domain
- DSD/DST has no compression advantage over FLAC
- PCM to DSD conversion is a lossy process
- for high end audio, MLP (DVD-Audio) at 24/96/5.1 or even 24/192/2.0 is a much better choice

DSDIFF Decoder

Reply #52
Today I got some dff files from shady sources; the source is not relevant for discussion.

I noticed one strange thing; when playing back the song, everything is OK, sound is good; but when I try to convert it to wavpack (set to 32 bit, 88.2 kHz, normal compression), I get quite a bit of audible errors and distortions in the resulting file. I've tried the Korg AudioGate, and the errors aren't there. but I yet have to test this.
When I scan the file in foobar, it reports that the end of file is not where it is reported. And that is all.

What to do? Where to search for errors?

DSDIFF Decoder

Reply #53
Korg AudioGate decoded the files perfectly, without any glitch.
I would say that the problem seems to be internal, after decoding, when piping output to wavpack.
Oh well. I will try to see where the problem lies...

DSDIFF Decoder

Reply #54
Maybe the built-in WavPack preset doesn't know that WavPack supports floating point input. Or maybe whatever quality preset you're using doesn't support that. Perhaps hybrid lossless?

DSDIFF Decoder

Reply #55
but when I try to convert it to wavpack (set to 32 bit, 88.2 kHz, normal compression), I get quite a bit of audible errors and distortions in the resulting file.

Why 32 bit? The normal conversion would be 24bit/88.2kHz (or 176.4kHz).

DSDIFF Decoder

Reply #56
DSDIFF files created via the TASCAM DV-RA1000HD  don't play back correctly in Foobar2000.

We think it's because the Compression Chunk is an odd length, and the foo_input_dsdiff plugin isn't jumping over the pad byte correctly.
(see DSDIFF 1.5 spec, page 9:

Since ripped SACDs are almost always going to be DST Encoded (and hence have an even length chunk which doesn't need a pad byte), I doubt this code has ever seen an uncompressed dff file.

Any chance of fixing this?

Send me a message if you want a sample file.

DSDIFF Decoder

Reply #57
Hi kode54,

Great plugin  thanks much
One problem i have one small problem. On some tracks that are mastered a bit louder, i can see some clipping. i set the sample rate to 176400, and output 24 bit. Could the clipping be generated by the resampling process itself?
Would you be willing to provide a "preamp" like control, so that the DSD stream can be slightly attenuated by 1~2db, before the resampling process so that clipping may be avoided?
Also, the ability to select what resampler the component uses would be grate! i much prefer the SoX resampler

DSDIFF Decoder

Reply #58
The resampler produces floating point output, so it won't clip if you apply a gain level to the tracks, or use a DSP that applies limiting.

DSDIFF Decoder

Reply #59
The resampler produces floating point output, so it won't clip if you apply a gain level to the tracks, or use a DSP that applies limiting.

Big thank you for the fast answer, should have done this from the start, instead of PM

Could you please elaborate a bit on that?
How do i apply gain? the classic way? over foobar? i would like a DSD targeted solution.
i don't use gain at all in foobar, and it would be quite the bother to change the gain settings every time i listen to a dff file, as i also have vinyl rips in the high quality folder. not to mention the rest of the 16/44.1 material...

Limiting, on the other hand is useless... soft limiting like the advanced limiter kind of compresses things, and hard limiting, would be like shutting my eyes while whispering "it's not clipping"... the clipping will still be there.

Seems dff files do not support storing gain info... so i can't create a special case for dff files. also, would it not be better if the gain setting would be done before PCM conversion? or due to the fact that the system works with 32 float, this becomes irrelevant?

About the resampler.
I have sox mod 0.7.6. i did load it and set it to 96k. i went to the components folder of foobar, and removed the f00_dsp_std.dll. when i try to play a dff file, i now get this:
"Decoding failure at 0:00.000 (Unsupported sample rate, no resampler present):"
Can i make the component realise that sox is there? do i need a specific version, or a do i need to tick a box somewhere?
I would like to use sox as resampler, because over time, it has given me the most pleasing results, and seeing that the downsampling is done from such i high sample rate, i'd prefer the one i think is best

DSDIFF Decoder

Reply #60
Only regular (not mod or mod2 versions) SoX resampler plugin can be used by other components.
(btw, the current version is 0.8.2)

DSDIFF Decoder

Reply #61
Incidentally, you should be able to have both regular and mod versions installed, and only use mod versions in your DSP chain.

Also, if you have both the standard DSP array and regular SoX resampler installed, SoX will take priority when any other component requests a resampler, due to priority levels in the resampler services. Well, assuming that the component requested at least a level 0 of quality, I think.

DSDIFF Decoder

Reply #62
Damn you people are fast with your replies

thanks a bunch for letting me know about the new version. updated right away. big THANK YOU for the component.
yes, with the regular sox installed, and the the dsp_std removed DFFs sing again

i have one question for you since you are... here
i was doing something quite stupid, thank god i started poking around - just recently started listening to sacds.
apparently my stagedac does not support 176400  i had set up sox mod as the only plugin in my dsp chain to safeguard this. it would let all frequencies my dac supports go by untouched, and resample everything else at 192k. so i was listening to dsd transcoded to 176400 pcm, and then upsampled to 192... stupid me...
what i would like from you is a bit of advice. should i downsample dsd to 88200 so it's symmetrical, or 192k? i would go symmetrical by ear, but i never downsampled so 2mhz before

thanks for the priority tip, going to make a short experiment to make sure, and if all goes well, everyone goes back to the components folder.
about the gain thing though... the fact you did not say anything leads me to understand that the gain settings in the properties->playback dialogue are all i can use...
that true? does foobar have anything else i can use to automate the process of applying gain to dff files only?

Thanks to both of you for the support!

DSDIFF Decoder

Reply #63
You can downsample with this component to any arbitrary sample rate. The SACD input component may or may not support arbitrary rates.

No, this component does not have a gain setting. You may set a ReplayGain offset level for untagged files, and that will reduce their volume. Or you can use the Advanced Limiter DSP. Since these files aren't taggable, you can't exactly ReplayGain scan them.

DSDIFF Decoder

Reply #64
You can downsample with this component to any arbitrary sample rate. The SACD input component may or may not support arbitrary rates.

I was asking what would give the "best" sonic result. should i be using symmetric values although they are small (88200), or go for the higher 192k.

So foobar replay gain is the only chance i have... sad...
suppose there is no chance you could make the component use the gain part of foobar internally, like you did with the sox resampler? or would that be too much of a hassle?

DSDIFF Decoder

Reply #66
you could make the component use the gain part of foobar internally

But what's the point in this?

point would be to only apply gain to .dff files only.
i try as much as i can to get bit perfect to my dac. unless i make a stupid mistake like the one i described above... but those i fix in a day or 2... takes me some time to notice.
the idea was to apply an attenuation of ~1db to all .dff files. and only the .dff files. since i can't tag them, the easiest possible way would be for the component to offer the possibility to "clean" it's output.
I realise though that this component is made for free, so i can not impose... i can just bitch about it here, and if the developer sees fit, the thing will get implemented. if not... well... i tried

though i think i am not the only one using this component. and the fact that you get clipping is a problem. as i try to get bit perfect, i don't use replaygain at all. and i do have vinyl rips, and normal redbook disks.
it would be a real bother to change replay gain settings every time i switch input file format... but then again, that may be just me...

DSDIFF Decoder

Reply #67
Hello again,
Let me start off with best wishes for the new year!

Now, i'm taking the silent treatment here as a definite no to implementing the above discussed things. too bad...

So, i'm trying to find other solutions... are there any cabinets these .dff files could be put in? or any sort of file where i can store the replay gain info for these tracks?
The plan would be to store info on the dff files, and not scan the rest of my collection
Some songs can be saved by 1.5db attenuation, but others... for example i have Hotel California over here, and on a sharp attack, the peak clips for ~30 consecutive samples. i'm thinking it will go much higher than even 3db can save. so it would be best to be able to use something like apply gain and prevent clipping according to peak... but you need to know where the peak is for that one

i read that dsf files support idv3 tags. but i can not play dsf files in foobar. guessing the component can not decode those?

Any insight?

DSDIFF Decoder

Reply #68
Try foo_input_sacd

DSDIFF Decoder

Reply #69
Try foo_input_sacd

Thanks, this one seems to consider the clipping problem.
And idea what resampler it uses?
[Seems it was made to decode iso files only though... bummer... need more storage ]
scratch the above comment. i deleted foo_input_dsdiff.dll and i can still play dff files. hello

DSDIFF Decoder

Reply #70
Hi guys,
I'm new about foobar and DSD playback.
I've some general question:

1) This add on works always like a converter to PCM format? and then the PCM signal is sent via HDMI to compatible receivers?

2) This add on is a quality paragonable to an OPPO 103 in DSD playback?

3) There is a simple configuration guide for FOOBAR+DSD Addon ?

many thanks to all.

DSDIFF Decoder

Reply #71
May DSDIFF Decoder also play DSF format? 

Re: DSDIFF Decoder

Reply #72
Don't know what resampling method author have used when he created this plugin, but it seems like there's a clipping problem.
While sacd-decoder doesn't have this problem. Sorry for my English.

Re: DSDIFF Decoder

Reply #73
There's no such thing as clipping when it comes to floating point samples. There is no technical limitation to stop a downsampled DSD signal from clipping in PCM form, since high intersample peaks can cause the downsampled signal to clip. The only way a DSD downsampler would avoid hitting greater peaks is for it to be performing signed saturation of samples that would otherwise clip, which it shouldn't need to do when processing in floating point.

SimplePortal 1.0.0 RC1 © 2008-2019