daneren2005 / Subsonic

Home of the DSub Android client fork
GNU General Public License v3.0
583 stars 162 forks source link

DSF and DFF files make DSub confused. #1062

Open DutchComputerKid opened 3 years ago

DutchComputerKid commented 3 years ago

DSub is unable to play Super Audio CD format tracks, but downloading the tracks to use in another app becomes really weird.

DSub will report percentages that go all over the place, and the bigger the track the wierder it gets. A 400MB track finishes downloading at -360%. Others sometimes finishing at 26% ot even lower, almost always going into the negatives.

DSub also deletes tracks at random, even when "Permanently Cache" is chosen. Downloading an album does not finish most of the time because when it finishes some tracks randomly dissapear and not longer show the 'cached' icon.

DFF, the same format but without metadata goes straight to 100% and gets stuck. These do not seem to download at all.

To replicate this issue, there are how-to-guides how to make SACD/DSF streamable on Sub, but tl;dr:

  1. In Subsonic, Go to Settings > General and add the DSF format to "Music Files".
  2. Simply do a re-scan afterwards and it will add the tracks with album art and metadata.
  3. Then open DSub and try to download an album in DSF format.
SteveDinn commented 3 years ago

Are any of your tracks getting transcoded by your subsonic server? I always thought that the percentage being off was because d-sub can't know the size of the transcoded file, it can only know the size of the original. I see this when my FLAC Library gets transcoded to Opus.

My percentage never really gets past 20%, and I figured that my Opus files are around 20% the size of my FLAC files.

DutchComputerKid commented 3 years ago

Nope, there are no transcodes whatsoever. Everything is played native, only thing would be m4a but seen how foobar does the playback that's not an issue. Library size does not matter for me and my friends :P

jeffgt14 commented 3 years ago

Percentages are usually off but I have great success with DSF in the wavpack container. I'm actually transcoding through my server to PCM flac using wvunpack but you might be able to download the full DSF file successfully in DSub if you use the wavpack container. Should be able to have metadata that way too.

DutchComputerKid commented 3 years ago

But if that were the case then why not just only host PCM stuff, if it's just going to get converted anyway? Kinda defeats the entire purpose of DSD streaming doesn't it?

jeffgt14 commented 3 years ago

I'm just saying you don't have to convert to PCM, just download the DSD .wv file like you're currently doing with .DSF. For me, covering to PCM works when streaming so I can keep the source DSD file when listening at home.

DutchComputerKid commented 3 years ago

just download the DSD .wv file like you're currently doing with .DSF.

DSF is not an archive? They're the track files for Super Audio CD, DFF is Philips and DSF is Sony. The Sony variant supports metadata right out of the box. They're splitted tracks from an ISO/disc copy.

jeffgt14 commented 3 years ago

"The latest Wavpack version 5.x changes this situation making it now possible to losslessly compress (ie. the compression is reversible without any loss) DSF and DFF files for free by up to 60% depending on source file and compression rate used. The resulting .wv file will play as 24/352 PCM in any Wavpack compliant media players and as “native” DSD in Foobar with SACD plugin 1.04 or later or MPD (Music Player Daemon."

DSF and DFF are essentially like WAV files whereas wavpack is like FLAC. At the end of the day, I'm not sure what app you are using to play your DSF/DFF files but it would have to also support Wavpack DSD decoding which I'm not sure what app does (Neutron maybe). Wavpack should honestly be given better app support because it's great for containing DSD files. I use DeadBeef in Linux and it's great.

DutchComputerKid commented 3 years ago

DSF and DFF are essentially like WAV files whereas wavpack is like FLAC.

What? The codec used is Direct Stream Digital, not Pulse Code Modulation like WAV or FLAC or anything else. Its DSD... What are you trying to do!?

And I don't want to use WavPack, that just messes things up, I have a DSD DAC so everyone stays native.

jeffgt14 commented 3 years ago

(-‸ლ) I'm clearly incapable of explaining anything. WavPack (.wv) can be used as a container for either PCM or DSD depending on the options you select. It can losslessly compress DSF/DFF DSD files similar to how FLAC can losslessly compress WAV PCM files.

I do not know for sure if using WavPack over DSF/DFF to contain your DSD files will allow DSub to download successfully as I transcode it server side to PCM FLAC prior to streaming. I'm just trying to offer a possible solution for DSub to download if it's currently having issues downloading DSF/DFF natively.