Deffy converts .DFF files (either containing DSD or DST) to .DSF files.
Deffy can also:
o Split .DFF files (DSD and DST - uncompressed and compressed) into separate tracks (manually or with a cue sheet).
o Glue separate .DFF files together, into one file.
o Strip a .DFF file from its compression (keep it a .DFF file but turn the DST into DSD).
o Reverse the channels in two channel .DFF files.
Deffy is freeware, fully functional, and does not contain adware, spyware or other nuicances.
About converting to DSF
The conversion is lossless (no PCM steps involved).
Any metadata in the .DFF file is copied directly to the .DSF file.
A bit annoyed by the lack of conversion software for these file types (either not working on DSD, or not working on DST, or asking money for what's really a very simple conversion) as per usual I decided to build it myself (and spread the love for free).
A very short explanation as to what DSD / DST / DFF / DSF means:
Direct Stream Digital (DSD) comes in two flavors (when limiting it to files on a computer): .DFF (Philips) or .DSF (Sony). The Philips files contain either DSD or DST (Direct Stream Transfer - lossless compressed DSD... so note that this is still DSD). The Sony files (.DSF) always contain DSD (uncompressed). You see how they're rather similar. If a Philips file is uncompressed it's almost a Sony file! The data is arranged a bit differently and the headers in the files differ a bit, but the bytes that make up the music are exactly the same (just mixed up differently). Music players that can handle DSD usually can play both file types (.DFF and .DSF).
.DFF = Philips file type.
.DSF = Sony file type.
DSD content is in both.
If DSD is compressed (only in the Philips file) it's called DST.
The Sony files do not do compression.
Now why would you prefer Sony files over Philips files? The Philips files do have the advantage (if they contain compressed DSD they're a lot smaller): the answer is that you can't store metadata in a .DFF file. You can in a .DSF file (aaah... but is this actually true or is this some vague digital urban legend?)
Actually... this metadata-problem isn't the .DFF file itself, because it's not difficult to glue a metadata (ID3) chunk to the end of it (or insert it somewhere in the middle), even if it's not in the official specs. DFF allows non-compliant chunks to be added to the file. So it's not the storing or the writing: it's the reading. The programs out there don't seem to want to read it (probably because then they also have to write it). Which is a shame, cause the compressed .DFF files are usually around 50% smaller (compared to their bloated .DSF cousins). Then again... I believe DST only works for DSD64, so if you have higher resolution files, the advantage of compression drops away.
So from a user perspective it's true: you can't find easy software to edit metadata in a .DFF file (or add it). And even if you could, there's not many useable programs out there for archiving or playing the files (programs which actually read the metadata), apart from Foobar. But from a technical point of view it's not true (proven by Foobar): you can write metadata to a .DFF file (text, images, the whole ID3 spec). No problem. They play just as fine with that extra chunk.
So where does that leave Deffy? Well simple: if Deffy encounters an ID3 metadata chunk in the .DFF file, the chunk is copied as a whole to the end of the .DSF file (where it belongs, according to the DSF specs), so it's readable and doesn't get lost (and yes, in my experience with .DFF files I experimented with, when building Deffy, they all had metadata embedded).
About splitting DFF files
Well, that was a bit of a similar story: I ran into a huge .DFF file (with a cue sheet), that played fine in Foobar, but was impossible to break into separate tracks. When searching for software I didn't get far: paid options, software with too many options, complicated conversions via PCM and back... come on, it's just a split, how difficult can it be! So again I decided to try myself. An attempt that also led to the discovery of some pretty embarrassing bugs in Deffy (as a result you got version 1.1.4 and version 1.1.5, when the splitting wasn't finished yet), not my finest hour.
However, splitting was the objective, so now, since version 2.0.0, you can split .DFF files into separate tracks. Mind you, it is all still a bit experimental. The .DFF split is not really complicated (well, splitting compressed .DFF files wasn't a peach to get right), but I have little material to experiment with (especially the format of the cue sheet might present problems).
For an explanation on how to split, see here
Deffy can split .DFF files that contain DSD (uncompressed) or DST (compressed DSD). If you split a compressed .DFF, the resulting .DFF pieces will also be compressed and contain DST. The shortest piece you can create (time wise) is 1 second. I could have gone smaller, as short as 1/75 second, which is the minimum possible length of a .DFF file, but that seemed a bit silly, so I capped it to 1 second. If the .DFF file that is split contains an ID3 chunk, the chunk will be copied to all the separate pieces. Note though that Deffy does not read the ID3 information. If you split without a cue sheet, and the Title / Artist fields are filled in by Deffy, when the Split window opens, that is information taken from the official .DFF DIIN chunk (and within that one the DIAR and DITI chunks). If those chunks do not exist in the .DFF, the Title / Artist edits will be left empty in the Split window (even if the .DFF file contains an ID3 chunk) and you will have to fill them in yourself. Deffy does not create an ID3 chunk in the split pieces if there was no ID3 chunk in the original file that was split. This means if you fill in the edits yourself, you might not see that information back in other programs.
After splitting and if all goes to plan, you end up with the tracks you requested: all full blown .DFF files, with exactly the same bytes as the ones in the big original (no conversion steps to PCM - even compressed DFF files stay compressed). Much like taking a scissors and cutting the big file into pieces. The process is basically just that. It involves some calculations into the music bytes (to resolve the time stamps and get to the right location within the music) and writing the right headers per track, so that they're all individually recognized as .DFF file. Of course, after that you can then convert them all to .DSF, if you so desire.
As written before: I have very little material to experiment with where the splitting is concerned (enough DFF files, but hardly any cue sheets). If you run into trouble on the cue sheet reading, you can send it to me here on firstname.lastname@example.org
, and I'll try to fix Deffy so that it can read your cue sheet properly (provided it complies to some basic standards).
About glueing DFF files
Okay, this one was just for fun. I honestly don't see a big use for glueing, but well, after the splitting I realized glueing was also a possibility. It's not a very complicated process, but there are a few catches and considerations: the files need to have similar properties. You can't glue DSD (uncompressed) together with DST (compressed - unless you use the 'Stripping' option and remove the compression first, see next paragraph). Nor can the samplerate differ (e.g. DSD64 can not be glued to a DSD128), or the number of channels (2 channels can't glue to 4 channels). Only if those properties are all similar, glueing is a go.Be aware though that not all seams can be glued satisfactory. If the separate pieces don't end in silence or the glued on part doesn't start with silence (and even then), you might hear artifacts like plops or clicks (most of the time really faint, but still noticable). This has very much to do with the nature of the 1-bit sampling and is not something I can fix. It works perfectly when the tracks belonged together previously (glueing back split pieces that were once one bigger piece), but otherwise it's a bit of a gamble and your dff mix-tape might sound ploppy on some seams.
For an explanation on how to glue, see here
After glueing and if all goes to plan, you end up with the separate files all glued together in one new file, with exactly the same music bytes as the ones in the smaller pieces (no conversion steps to PCM).
About stripping DFF files
That's how this works: one thing leads to another. Because glueing is cool and all, but what if you really want to glue a DST .DFF file (compressed) together with a DSD .DFF file (not compressed)? Can't be done if the compressed file doesn't change. It's only possible if you remove the compression from the DST file and turn it into DSD (an uncompressed .DFF file). Of course, another option would be to implement all this functionality also for .DSF files. Well, maybe in the future, but for now I'm not completely done with .DFF files. In the meantime it was easier to implement what I call 'stripping': remove the compression and turn a DST .DFF file into a DSD .DFF file.
The procudure in Deffy is simple: blue select your compressed .DFF file(s) after loading them and click the 'Strip selected files' button (in fact you can also select uncompressed files with it... they will be skipped automatically). The original won't be overwritten. You will get a new .DFF file with '_DSD' added to the file name. Deffy writes the stripped .DFF files to the same directory as the original (in a subdirectory called 'Stripped') or will ask you where to write them, depending on a setting that can be changed through 'Settings...'.
Be aware: removal of compression is not reversable. Your original compressed .DFF file will not be touched by Deffy and will remain compressed, but if you delete that original, the uncompressed .DFF file can not be compressed again (at least not by Deffy - ever).
About reversing channels in two channel .DFF files
Not sure if anyone is ever going to need this one, but since we can I thought it was nice to also do. However, Deffy can, but only on DSD files (uncompressed) and only if the file contains two channels (not more). Reversing channels on DST (compressed DSD) seems impossible (I haven't actually tried, but based on the assumption the music is compressed without regard for the position of the channels in the data - anything else seems silly - it would be impossible to switch channels in the compressed data). If you do feel the need to reverse channels on a compressed .DFF file, you can first strip the file of its compression (see previous paragraph about stripping).
The procudure in Deffy to reverse channels: blue select your uncompressed .DFF file(s) after loading them and click the 'Reverse channels' button (in fact you can also select compressed files with it... they will be skipped automatically). The original won't be overwritten. You will get a new .DFF file with '_RC' added to the file name (Reversed Channels). Deffy writes the reversed .DFF files to the same directory as the original (in a subdirectory called 'Reversed') or will ask you where to write them, depending on a setting that can be changed through 'Settings...'. Contrary to the stripping (see previous paragraph), reversed files can be reversed back. If you reverse a reversed file, you will end up with the orginal (the left and right channels where they were originally).
Is Deffy free? Yes! And what are the limitations?
Deffy converts compressed and uncompressed .DFF files to .DSF files. Deffy can also split a .DFF file into separate tracks (all their own .DFF file), glue separate .DFF files together into one .DFF file, strip the compression away (turn DST into DSD) or reverse the channels in 2-channel files (left becomes right and v.v.). None of the functionality alters the music bytes (no conversions to PCM). Deffy is free (without adware, spyware, reduced functionality, inserted silence or other nuisances... seriously... fully functional and totally free!). Note that the program was tested mainly with stereo files.
I did run a few multichannel DFF files to test, but I have no way of playing the resulting DSF files back (the way they are meant to be played back: in a mulitchannel setup). So no guarantees if you go beyond 2 channels. The multichannel files I tested did play fine when played back in stereo.
I didn't bother at all to test an Edit Master. Basically you can create such a .DFF when you rip a SACD (or SACD-ISO) as a whole. It's one .DFF file that contains the complete content of the SACD.
Most likely (almost certainly) Deffy will not work with those (either crash, stall, freeze or produce garbage)
. Edit: in the meantime I did try, and much to my surprise, Deffy converted the file without problems. You end up with one big .DSF file that contains all tracks. I don't see the value in it, but well... nice to know it works, without me having to put in extra effort...
Speedwise the conversion of uncompressed DSD is very fast, but converting (or stripping) compressed DSD (DST) isn't. There's some parallel processing going on in Deffy via multiple threads (a maximum of 10 files processed simultaniously), but unpacking DST isn't the fastest.
This software uses original code from Philips, which is freely available, to unpack DST (when converting compressed files). Copyright notices - as per request in the source code - are in the 'About'.
What if I regret my conversion?
Well, that's a funny one. Deffy doesn't destroy your original .DFF file, just writes a new .DSF file. But Deffy can't do .DSF to .DFF (only .DFF to .DSF). So if you throw away your original .DFF file after the conversion, Deffy can't help you. It wouldn't be too difficult to build (same stuff but reversed), but here's the conundrum: the compression algorithm made public by Philips is one way. At least, I couldn't find the 'compress' routine (I also didn't search for it very extensively). Only the 'decompress' was readily available. And reverse engineering this stuff? I'd rather not (I'm not that smart... it would take me ages, if at all). Don't throw away your compressed .DFF files if you're not sure... (for uncompressed files it really doesn't matter).
In general: this software comes without guarantees. Holding on to your .DFF files until you've at least listened to the .DSF conversions (and made sure they're okay) is always the smarter thing to do. Also keep in mind that new software usually needs to go through a few iterations to get the more serious bugs out.