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: DSD, WavPack and Foobar SACD Decoder  (Read 8550 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

DSD, WavPack and Foobar SACD Decoder

Hello,

I'm new in the forum. I'm not sure if this topic must be here or in the WavPack forum. I'm putting both, if not correct, please, be free to join them.

I have found a strange behavior in Foobar in the recognition and playing of DSD files in Wavpack according to the order in which the SACD decoder is found in the decoding list.
The starting point is an SACD ISO file which is displayed and reproduced correctly;



From this ISO, with sacd_extract I've got a dff file and a cuesheet file that play correctly:



And finally, these dff+cue files are compressed with wavpack, resulting in a single wv file with embebed cuesheet:

wavpack prueba.dff --allow-huge-tags -w Cuesheet=@prueba.cue

The first problem occurs when adding this wv file to the Foobar library. If in the decoding list we have SACD first, when adding the file (and rescanning the library), the file is shown like this and with the following properties:







As you can see, the file is played as a DSD64 file without tracks, although a cuesheet appears in the properties, it does not run during playback, and the file's metadata are not imported either.

However, if we down the SACD decoder in the decoding list and add the wv file back to the library, the following happens:





As shown in the image, in this case the wv file has been added to the library with all the metadata and the embedded cuesheet, playing the tracks correctly and being able to change the track correctly. However, in this case the file is not reproduced as a DSD file but as 24-bit PCM and 352800 Hz (data that confirms the display in my DAC).

But if at this point the SACD decoder is raised to the upper level, a curious thing occurs:



In this case, we apparently have the ideal situation: a DSD wavpack file with embedded tracks that plays well as DSD (my DAC also recognizes it as DSD64). But also in this case we find a new error: every time we change the track, it shows that the selected track is apparently playing, but in reality what it sounds is always the file from the beginning (that is, track 1). It seems that it is not able to locate the jump to its correct position and always returns to the beginning of the file, that is, as if it were a file without an embedded cue.

I'm not sure if the problem is in the wavpack or in the SACD decoder. The fact is that if the SACD decoder is able to play a dff+cue file without problem, it should be the same with a DSD wavpack with embedded cue. Then the problem could be in how the wavpack file is recognized in Foobar?.

Re: DSD, WavPack and Foobar SACD Decoder

Reply #1
Maybe  to look at what's said in the picture.

 

Re: DSD, WavPack and Foobar SACD Decoder

Reply #2
Maybe  to look at what's said in the picture.
........
"For WavPack playback in DSD mode move "Super Audio CD Decoder" upper than "foobar2000 WavPack Decoder" on
File->Preferences->Playback->Decoding page"
Yes. That is precisely what I'm saying: In that case "Super Audio CD Decoder" don't recognize metada and tracks in the embebed cue.

Please, read all what I've written.

Re: DSD, WavPack and Foobar SACD Decoder

Reply #3
The fact is that if the SACD decoder is able to play a dff+cue file without problem, it should be the same with a DSD wavpack with embedded cue.

Why? Maybe this plugin (foo_input_sacd) knows nothing about embedded cuesheets. Can it properly recognize a dsf file with embedded cuesheet?

Re: DSD, WavPack and Foobar SACD Decoder

Reply #4
The fact is that if the SACD decoder is able to play a dff+cue file without problem, it should be the same with a DSD wavpack with embedded cue.

Why? Maybe this plugin (foo_input_sacd) knows nothing about embedded cuesheets.
Probably. That's right. That's exactly what I'm asking. And, in this case, there is a strange behavior because the tracks are shown. But, obviously, they are not handled correctly.
That's why I have the doubt if the problem is WavPack or SACD plugin. Because it would be nice to have a complete solution. I beleive.

My doubt is if the plugin has support for embedded cue or that wavpack does not show this embedded cue correctly with DSD files.

In the case that the plugging doesn't support it, if it is able to recognize a cue file correctly, it should not be too much trouble to make an update that reads the embedded cue, I think. But I can be wrong, of course.


Re: DSD, WavPack and Foobar SACD Decoder

Reply #6
DSDIFF files and SACD ISO files - which are targeted by the sacd_decoder - have no support for tags. That's why the author developed an xml tagging scheme. Traditional tags and certainly embedded cuesheets are not supported and there is no need for that since tagging already is handled transparently and works well. When you move the sacd_decoder to top it will only recognize its own taggings scheme. When you move the Wavpack decoder to top, it will read your tags but probably not process any information from the DSD domain. I don't think there will be much demand from the SACD community to combine those features and add added levels of complexity (and potential for errors).


Re: DSD, WavPack and Foobar SACD Decoder

Reply #8
DSDIFF files and SACD ISO files - which are targeted by the sacd_decoder - have no support for tags. That's why the author developed an xml tagging scheme. Traditional tags and certainly embedded cuesheets are not supported and there is no need for that since tagging already is handled transparently and works well. When you move the sacd_decoder to top it will only recognize its own taggings scheme. When you move the Wavpack decoder to top, it will read your tags but probably not process any information from the DSD domain. I don't think there will be much demand from the SACD community to combine those features and add added levels of complexity (and potential for errors).
Hi Sandrine. Yes, you are right. But I think that there are several advantages in the use of Wavpack for DSD files when you store one file per album instead of tracks. First, music and metadata are in the same file and it's not necessary an external xml xcheme. Second, usually, SACD iso files contains stereo and multichannel layouts of the same music, and not everyone needs these two layouts, and third, DSD files are huge files and Wavpack is an effective lossless compressor for DSD files.

I'm not an Wavpack holligan. My PCM library is stored in flac with embedded cuesheets and I'm very happy with this simple and efective solution. It would be great have a similar solution with DSD files, and Wavpack solution is very near of the target.

Regards,
Ignacio

Re: DSD, WavPack and Foobar SACD Decoder

Reply #9
I haven't tried it yet... is it possible to convert a complete layer from a SACD ISO to single wavpack with embedded cuesheets as tags from within foobar2000? In the converter I can select to convert to single image but without cuesheet as far as I can see.

Also, how can I see that there's really DSD within the WAVPACK? foobar2k shows the file playing as PCM. Can you please share your conversion parameters?

Re: DSD, WavPack and Foobar SACD Decoder

Reply #10
It is not possible to convert SACD ISO and dsf/dff files to WavpackDSD with fb2k's converter. But fb2k can be used to embed cuesheet.

Re: DSD, WavPack and Foobar SACD Decoder

Reply #11
Hi,

I downloaded today the new SACD version, namely 1.1.2.
There is a new item in the SACD menu, saying “DoP for Converter”.
Any idea what it does?

Thanks in advance.

Re: DSD, WavPack and Foobar SACD Decoder

Reply #12
It is not possible to convert SACD ISO and dsf/dff files to WavpackDSD with fb2k's converter. But fb2k can be used to embed cuesheet.

Damn. So the conversion from ISO to WAVPACK would be a painfully long and inconvenient process. First mount the ISO somehow, then extract DSDIFF, then use BatchConverter to convert to WAVPACK and finally embed cuesheets. I'm hoping the programmer of the SACD plug-in can come up with a more convient solution that will allow to do all of this from within foobar2000.

Re: DSD, WavPack and Foobar SACD Decoder

Reply #13
There is a new item in the SACD menu, saying “DoP for Converter”.
Any idea what it does?
When box is checked it allows to save DSD files to DoP FLAC, WAV, MP3, etc. when converting, resulting files will not play in PCM only players.

Re: DSD, WavPack and Foobar SACD Decoder

Reply #14
So the conversion from ISO to WAVPACK would be a painfully long and inconvenient process.
It can be done in one step with sacd_extract.exe, wavpack.exe and bat file.
Create bat file
Code: [Select]
"D:\0__CODECS\sacd_extract_0.3.8_WIN32\sacd_extract.exe" -2 -e -c -C -i%1 "%~n1"
"D:\0__CODECS\LOSSLESS\Wavpack\wavpack.exe" --allow-huge-tags -hh -w "Cuesheet=@%~n1.cue" "%~n1.dff" "%~dp1%~n1.wv"
If you want multichannel, use -m instead of -2
Copy it to folder with SACD ISO, then drag-n-drop ISO to bat file, command-line window will appear, wait. You will get 3 files in the same folder: dff, cue and WavpackDSD with embedded cue.
With foo_run you can run this bat file on selected ISO right from inside of fb2k.

Re: DSD, WavPack and Foobar SACD Decoder

Reply #15
Forgot to mention, that bat must be slightly modified to run from foo_run
Code: [Select]
cd /d "%~dp1"
"D:\0__CODECS\sacd_extract_0.3.8_WIN32\sacd_extract.exe" -2 -e -c -C -i%1 "%~n1"
"D:\0__CODECS\LOSSLESS\Wavpack\wavpack.exe" --allow-huge-tags -hh -w "Cuesheet=@%~n1.cue" "%~n1.dff" "%~dp1%~n1.wv"

Re: DSD, WavPack and Foobar SACD Decoder

Reply #16
Thanks, that's certainly handy. But all of that actually has nothing to with fb2k anymore, it's calling external functions of other programs. In that case, there are some free graphical tools which are nice to use like ISO2DSD and BatchEncoder.