WHAT'S DEFFY?

Deffy converts .DFF files (either containing DSD or DST) to .DSF files or converts .DSF files to .DFF files.

Deffy can also:

o Split .DFF files (DSD and DST - uncompressed and compressed) into separate tracks (manually or with a cue sheet).
o Split .DSF files 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.
o Show the title / artist fields in a DFF (when present).
o Show the comments in a DFF (when present).
o Flip a DSF file from 8-bit per sample to 1-bit per sample and v.v.
o Validate DSF files with logging.

None of this functionality involves PCM steps.

Deffy is freeware for Windows 10 and 11, fully functional, and does not contain adware, spyware or other nuisances. However do note that the licence agreement excludes the use of Deffy for commercial purposes.


About converting DFF to DSF

The conversion is lossless (no PCM steps involved).

Any metadata in the .DFF file is copied directly to the .DSF file.


About converting DSF to DFF

The conversion is lossless (no PCM steps involved).

Any metadata in the .DSF file is copied directly to the .DFF file.


Why?

A bit annoyed by the lack of conversion software for these file types (either not working on DSD but translating to PCM and back, 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).

To recap:
.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.


Metadata?

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 (no it doesn't... I recently got my hands on some software that can compress DSD to DST, and a DSD128 compressed fine - extremely slow, but more than 50% compression) so if you have higher resolution files, the advantage of compression drops away (not true, it only becomes more interesting...).

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: 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).

Since version 4.0.0 of Deffy, you can also convert .DSF files to .DFF files and similar applies: ID3 metadata is copied as a whole from the .DSF file to the .DFF file.


About splitting DFF or DSF 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). Since version 4.0.0 Deffy can also split .DSF files. If you split a compressed .DFF files, 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 or .DSF 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. This is even more true for a .DSF file that you want to split, since those files do not have separate Title / Artist fields embedded. 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 (and in split .DSF files these fields are only used for the filename of the separate tracks).

After splitting and if all goes to plan, you end up with the tracks you requested: all full blown .DFF files (or .DSF 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 or .DSF file.

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 ememsoftware@gmail.com, 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).

Currently glueing is not implemented for .DSF files.


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, since version 4.0.0 of Deffy I'm getting close. 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 procedure 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 - currently).


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 since gaining some more knowledge about DST, I learned that the music bytes are not in fact compressed as one big block... the compression is channel based. So even reversing compressed data should be possible? I'll give it a try soon...). If you do feel the urgent need to reverse channels on a compressed .DFF file, you can first strip the file of its compression (see previous paragraph about stripping).

The procedure 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).

Currently reversing channels is not implemented for .DSF files.


About flipping a 1-bit DSF to 8-bits DSF or v.v.

DSF files have a specific setting that tells your DAC how to read the music bytes. Sony had a bad day when they named this setting '1-bit per sample' or '8-bits per sample'. Which is rather confusing, because DSD is always 1-bit per sample. 8-bits per sample just doesn't make any sense in DSD. This setting actually tells your DAC how the music bytes and their bits should be read: from left to right (1-bit setting) or from right to left (8-bits setting).

Deffy normally writes DSF files with the 8-bits setting, because that's the fastest when converting from DFF (the DFF bytes are read from right to left, so when transferring the music bytes, Deffy can just write them as they are... with the 1-bit setting every byte needs to be reversed). However, since I do not know for sure if every DAC out there knows how to deal with these two settings, I've added the option to write 1-bit DSF, since version 4.5 (see Settings). Then I realised it might also be interesting if you can flip an existing DSF from one setting to the other, hence this new option (since version 4.6) for DSF files (DFF files do not have this choice).

Advise is to not use this option if your hardware does not have problems with your current DSF files (or with the files Deffy produces). Try flipping (or change the conversion to 1-bit via Settings) only if conversions on the default setting do not work out or if you have DSF files that just won't play properly. When a DAC thinks an 8-bit file is a 1-bit file (or v.v.) and reads the bytes the wrong way, you'd typically still be able to make out the music, but it will be covered under a layer of very obvious hissing.

The procedure in Deffy to flip a DSF: blue select your .DSF file(s) after loading them and click the 'Flip bytes of selected files...' button. First you will see a short explanation asking if you want to proceed. If you click 'Yes', the original file won't be overwritten. You will get a new .DSF file with '_TO8' or '_TO1' added to the file name (from 1 TO 8 or from 8 TO 1). Deffy writes the .DSF files to the same directory as the original (in a subdirectory called 'Flipped') or will ask you where to write them, depending on a setting that can be changed through 'Settings...'.


Is Deffy free? Yes! And what are the limitations?

Deffy is free (without adware, spyware, reduced functionality, inserted silence or other nuisances... seriously... fully functional and totally free!). However do note that the licence agreement excludes the use of Deffy for commercial purposes.

Multichannel

Deffy was mainly tested with stereo (2 channel) 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.

Edit Master

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...

Speed

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.


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. And although Deffy can also do .DSF to .DFF (since version 4.0.0) - so Deffy can get your .DFF file back if you throw away your original .DFF file after the conversion - be aware: the compression algorithm I'm using is one way (it can only decode, not encode). Quite recently I did bump into the compression code for encoding, hinting at the possiblity I could make Deffy two way. However, till that day comes, the short of it: don't throw away your compressed .DFF files... Deffy can not produce compressed .DFF files, not yet anyway... (for uncompressed files it really doesn't matter).

In general: this software comes without guarantees. Holding on to your .DFF files (or .DSF files) until you've at least listened to the 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.


SCREENSHOTS



After startup... (version 4.0.0 - note the two new buttons on top, to switch from working with .DFF files to .DSF files and v.v.)








After loading a bunch of DFF files... you can multiselect in the Open File dialog and you can load files from different folders or you can drag & drop them... then click on either 'Convert all to same folder' or 'Convert all ask where...' (version 4.0.0 - similar procedure for .DSF files after clicking on 'do DSF files')








During the multi-threaded conversion... (version 4.0.0)








After conversion... all done! Select 'Reset list: all' if you want to use any other functionality on the files... (version 4.0.0)







For an explanation on splitting DFF or DSF files (with screenshots) have a look here.





For an explanation on glueing DFF files (with screenshots) have a look here.


DOWNLOAD

Deffy 64-bit version 4.6.1.

Deffy 32-bit version 4.6.1.



Close a running Deffy before installing the new version, else installation will fail.


Since this software is mainstream nor downloaded a lot, your browser, OS and virus scanner will make it difficult for you to install Deffy. Since you have no reason to trust me or my website, my advice is to follow the instructions if you decide to ignore the initial Windows 10 warning. For what it's worth: the software doesn't contain malware, spyware, adware or vague third party installers through sneaky check boxes like browser bars etc., and apart from the virus scanner on my own PC, this website is also under the watchful eye of a virus scanner, through the hosting of it.


[For people interested in my development struggles there's now 'Inside', where I ramble a bit about the issues I encounter.]




Release 4.6.1 at 12 October 2024


Release notes

o Fixes the parsing of cue files tripping over REM statements between tracks.
o Fixes a calculation error in the splitting of .DFF files containing DST (compressed DSD), which led to overshooting the tracks if the time stamps of the tracks were not set to 0 frames (the last number in the time stamp). For splitting uncompressed .DFF or .DSF files there was no such problem.




Release 4.6.0 at 11 July 2024

Version 4.6 implements a new option for DSF files called 'Flip bytes of selected files...'. DSF files have a specific setting that tells your DAC how to read the music bytes called '1-bit per sample' or '8-bits per sample'. Which is rather confusing, because DSD is always 1-bit per sample. This setting tells your DAC how the music bytes and their bits should be read: from left to right (1-bit setting) or from right to left (8-bits setting).

Deffy normally writes DSF files with the 8-bits setting, because that's the fastest when converting from DFF (the DFF bytes are read from right to left, so when transferring the music bytes, Deffy can just write them as they are... with the 1-bit setting every byte needs to be reversed). However, since I do not know for sure if every DAC out there knows how to deal with these two settings, I've added the option to write 1-bit DSF, since version 4.5 (see Settings). Then I realised it might also be interesting if you can flip an existing DSF from one setting to the other, hence this new option for .DSF files (.DFF files do not have this choice).

Advise is to not use this option if your hardware does not have problems with your current .DSF files (or with the files Deffy produces). Try flipping (or change the conversion to 1-bit via Settings) only if conversions on the default setting do not work out or if you have .DSF files that just won't play properly. When a DAC thinks an 8-bit file is a 1-bit file (or v.v.) and reads the bytes the wrong way, you'd typically still be able to make out the music, but it will be covered under a layer of very obvious hissing.

The procedure in Deffy to flip a DSF: blue select your .DSF file(s) after loading them and click the 'Flip bytes of selected files...' button. First you will see a short explanation asking if you want to proceed. If you click 'Yes', the original file won't be overwritten. You will get a new .DSF file with '_TO8' or '_TO1' added to the file name (from 1 TO 8 or from 8 TO 1). Deffy writes the .DSF files to the same directory as the original (in a subdirectory called 'Flipped') or will ask you where to write them, depending on a setting that can be changed through 'Settings...'.


Properties for DFF files

Also new in this version: an option in the right click menu for .DFF files called 'Properties...'. With this option you can have a look at the Title / Artist fields of the DFF and inspect if it holds any comments. The DFF format can hold more information than a DSF can (apart from ID3) but I'm not aware of any software out there that can actually show you. Note that this information gets lost when you convert to DSF.


Windows 11 bug?

In Settings also a new option to switch off the grid lines in the main lists of Deffy. This option became more or less a must, after an update of Windows 11 on my system. Suddenly Windows started painting black boxes around selected items. I'm not sure if this is a bug on my system or intentional on the part of MS. I can't seem to get rid of them. If you have that problem too on Windows 11, the grid lines interfere with the bottom of that black box surrounding the selection. Without the grid lines it looks a little bit more logical.


Release notes 4.6.0

o Implements new option for DSF files to change them from '8-bits per sample' to '1-bit per sample' and v.v. (note that despite the confusing naming by Sony, .DSF files are always 1-bit per sample, even if their setting is '8-bits per sample').
o Adds new option for .DFF files (right click menu) called 'Properties...' to view the Title / Artist and Comment chunks in the selected DFF.
o New setting to turn off the grid lines in the main lists of Deffy.




Release 4.5.3 at 6 July 2024

o Fixes a bug in converting of DFF files. This bug could in rare cases lead to a wrong file size in the header of the resulting DSF and as a consequence it would either not play or not show ID3 (if present).


Release 4.5.2 at 5 July 2024

o Fixes a bug in converting and stripping of DFF files if they contained CRC chunks (these chunks are optional and only sometimes found in compressed .DFF files). Previous bug fix, also to do with CRC blocks, did work, but the detection of the CRC blocks failed on some DFF files. Then you would again end up with only half a file written.


Release 4.5.1 at 3 July 2024

o Fixes a bug in converting and stripping of DFF files if they contained CRC chunks (these chunks are optional and only sometimes found in compressed .DFF files). These files would end up half the size and on some players not play at all.


Release 4.5.0 at 30 June 2024

Version 4.5 comes with a new DST implementation, which provides more feedback about any problems encountered during conversion from DST to DSD. It can also handle DST on higher sample rates than DST64 (the previous implementation contained a bug preventing higher sample rates from being decoded - you would freeze or crash and the written file would be half the size). See settings on when to show you the log file that's created during such conversion. Default it is set to only show up when errors were encountered. Mind you, most of the time DST conversion errors are catastrophic and will lead to much nastiness in the audio. So a log is nice, but you really do not want it reporting any errors.

Also new in this version: a setting to write 1-bit DSF files in stead of the 8-bits Deffy normally produces. If your DAC has problems playing the DSF files Deffy produces, try this setting. For audio quality it makes no difference (provided your DAC can handle both). It only tells the DAC how to interpret the music bytes: if they should be read from right to left per byte (8-bits) or from left to right per byte (1-bit). Note that the naming ('1-bit or 8-bits per sample') is a misnomer. Sony had a bad day there, because 8-bits per sample is nonsense: DSD is always 1-bit per sample. They should have given this setting a different name (and preferably not have made it a choice at all but just fix it either way). But my gripes with Sony aside, some hardware implementations might not expect the 8-bits setting and still play the file as if it was 1-bit - or possibly v.v. (which then leads to a lot of hissing mixed in with the music), even though the 8-bits setting is fully compliant with the DSF specs. The 1-bit setting takes a little bit more time per conversion.

Note that the DSF-validation still does not allow you to repair 1-bit files, since Deffy never produced those before this version. The repair option was due to a bug that no longer exists, so there is no need to change this pickiness.

When splitting, you can now choose to either load the split pieces in the main window or load them in the main window and convert them immediately (e.g. convert split pieces from a .DFF file directly to DSF).

These new Split settings can be set to on or off default, through new options in Settings.


Release notes 4.5.0

o Implements new DST to DSD conversion.
o New implementation of DST fixes a bug that would prevent higher sample rates (DST128 and higher) to be properly decoded.
o New implementation of DST can present logging (see Settings or right click menu 'Show DST log...').
o When converting to DSF you can now choose to write 1-bit files in stead of the 8-bits Deffy normally writes (see Settings and explanation above).
o New Splitting options: to load the split files immediately in the main window or to load them and convert them immediately.
o New Splitting options can be default turned on or off (see Settings).
o Improves the Splitting, where the time settings for tracks did not allow for a last second cut (basically setting the minutes one too short, even if there were many seconds left in the following minute). Now, when e.g. a track's duration is 3.27 (3 minutes and 27 seconds), you can set the time of the last track to 3.26. Previously only 2.59 was possible. However, to avoid mishaps then on the frames, that are not adjusted to the exact length, the frames drop down will shut down if you select that almost last second.
o Fixes the setting that determines if the folder with the processed file is opened. Turning that option off would not reflect in the settings (the check mark would stay on) despite the functionality really being off.




Release 4.0.4 at 14 June 2024

o Fixes a bug in the splitting of uncompressed .DFF files: the resulting tracks had a wrong byte count in the opening chunk and would not play, unless converted to DSF (bug introduced in version 4.0.0).


Release 4.0.3 at 9 June 2024

o Fixes a memory bug in the stripping of compressed .DFF files: the stripping could sometimes hang at 100% or crash the application at that point. The stripped .DFF file was written correctly and was not affected by this bug.


Release 4.0.1 & 4.0.2 at 6 June 2024

o Fixes the DSF to DFF conversion not writing the right size for the Channel chunk if the DSF was a multi channel file (e.g. 3 or more channels)... this would lead to an unplayable .DFF file.
o Fixes the DSF to DFF conversion not writing the right size for the Compression chunk if the DSF was a multi channel file. This had no severe consequences and was caused by previous fix.
o Fixes the new right click option 'Show in Explorer': it was only working on .DSF files.


Release 4.0.0 at 31 May 2024

Version 4.0.0 introduces DSF to DFF conversion, DSF splitting and DSF validation.

Due to the validation addition I noticed Deffy writes a wrong sample data size for DFFs converted to DSF, which had to do with some padding confusement. That bug is fixed. This incorrect value has no consequences for playing the DSF files. DACs do not seem to care about this value. That's also how this bug slipped through, since I never noticed anything negative in playback. However, if it does bother you - and if the file permits - Deffy can correct this value, so you don't have to redo your .DFF files. I advise against using this option if you're unsure if the DSF was produced by Deffy.

For a more extensive explanation on this issue with screenshots, see here.


The (sometimes) trouble with ID3

I was a bit surprised when I started working on Deffy that in several DFFs I found an ID3 chunk. This chunk is not in the official specs. It is allowed for a DFF to contain non-compliant chunks and DACs or software players are supposed to work around them, but this chunk seemed rather established. I do not know who introduced it, but it was most likely 'invented' by the people behind SACD extraction software (would be my guess).

In most DFFs that ID3 chunk is situated at the end of the file, which seems totally logical. I didn't check this explicitly, simply assumed (assumptions!) that this was always the case. Until quite recently, when I discovered a compressed DFF that, according to Deffy, contained an ID3 chunk, but when playing the DFF in Foobar, no ID3 showed up. After stripping the file (removing the compression) and playing that stripped DFF in Foobar, the ID3 did show up! What was going on here?

It turned out the ID3 chunk in the original DFF was situated in the middle of all the chunks in the file, before the actual music. Foobar clearly doesn't like this and most likely throws it out. In contrast, in the stripped file, Deffy writes the ID3 chunk at the end. That made Foobar happy and that's why the ID3 did show up in the stripped DFF.

But then I realised - since when stripping the part in front of the music gets copied as a whole (including that middle ID3 chunk) - that the stripped file now contained two identical ID3 chunks! Theoretically that should not be a problem (remember how DACs and software are supposed to ignore non-compliant chunks?), and the file played fine, but it didn't sit well with me.

The solution to this problem - for now - is to have Deffy no longer write the ID3 chunk at the end when it encounters an ID3 chunk in the middle. The problem occurs in the original DFF that wasn't produced by me or Deffy, so I do not feel obliged to 'repair' these DFFs (comments in the DFF file seem to indicate the file was extracted from SACD somewhere around 2010, with a very early version of a certain extraction software - I assume (!) this problem is fixed by now).

For DFFs that have the ID3 chunk at the end of the file, there's no issue.

But this solution isn't the nicest, since the ID3 will now also not show up in the stripped DFF (e.g. in Foobar). It's still in the file (somewhere) but these stripped files will now act the same as the original. Similar problem by the way for splitting the DFF, so also there the same solution: no more double ID3 chunks. To solve this properly I would have to remove the ID3 chunk from the middle, making the code for splitting and stripping a lot more complicated. I'm not excluding I will try in a future version, but for now the current solution will have to do.

To test if your DFF has a 'middle' ID3 chunk, load it in Deffy and if it finds an ID3 chunk, play the file in Foobar. If the ID3 isn't shown in the details in Foobar, you most likely have a 'middle' ID3 chunk. Note that other players might show it correctly.


Release notes 4.0.0

On DFS files

o Introduces DSF to DFF conversion.
o Introduces DSF splitting (similar to DFF splitting, but now also for DSF files).
o Introduces validation for DSF files. Please note that validation is way more strict than the basic check that's performed when you first load the file (which usually leads to a 'File is okay and ready for action...'). If the 'File is okay' you can convert it and split it without problems, even if Validation finds something to nag about. See also the link in the next point.
o Fixes DFF conversion to DSF writing a wrong sample data size in the DSF... this wrong value had no consequences for playback of the DSFs and can be corrected in this new release (directly in the .DSF files). See here for a more extensive explanation.
o Implements option to correct a wrong sample data size value in .DSF files (see previous point).

On DFF files

o Fix: when splitting or stripping a DFF, not all the available chunks were copied over to the individual pieces or to the stripped DFF (mainly the optional Comment and Marker chunks got left out). The Comment chunks are now properly copied into the split pieces and into the stripped file. The Marker chunks usually indicate track times and are useless in split pieces: they are only copied into the stripped file. Note that in a conversion to DSF these chunks get lost, since they do not exist in a DSF.
o Fix: when splitting a DFF, the available Artist and Title chunks were not always read properly and would then not show up in the Split window.
o Fix: when stripping a DFF, the description in the Compression chunk still claimed 'DST Encoded'. That has now changed to 'no encoding'. That text is not fully compliant... it should be 'non compressed', but due to the nature of the stripping I had only 11 characters to work with. This description has no effect on playback and is just a text field, which (according to Philips) 'can be used by applications to display a message when the needed decompression routine [defined in the CompressionType - red] is not available'.
o When splitting or stripping a DFF that contains an ID3 chunk in the middle of the DFF (and not at the end), Deffy will no longer write a similar chunk at the end. This prevents double ID3 chunks - downside is that in some software players you might not see that 'middle' ID3 chunk back.

Other

o Small addition to the Split window: if your track names already contain a track number (e.g. via a cue sheet) you can now set the 'Filename of the split pieces' to a track title without an automatically added track number (last option in the first drop down).
o Right click menu now has a 'Show in Explorer...' option to show the selected file in its folder.
o Fix: files with Unicode characters in the name (e.g. Chinese or Japanese script) would not open in the linked application on double click.




Release 3.0.0 at 21 May 2023
o Adds the ability to strip .DFF files from DST to DSD (remove the compression).
o Adds the ability to reverse channels in a two channel uncompressed .DFF file (L <-> R).
o Adds option (through 'Settings') to set a designated Save folder.
o Adds double click option to open the selected .DFF file (if you have .dff linked to e.g. Foobar, it will play in that application). This was added already in 2.5.0 but not mentioned in the release notes.
o When selecting 'to same folder' a subfolder is now created to keep the produced files separate from the originals.
o Changes the user interface: the functionality is now placed on the left.
o Changes the Deffy icon.
o Fixes the information column not showing the correct output for some functionality.


Release 2.5.0 at 11 May 2023
o Adds the ability to glue .DFF files together into one new file... scroll up to read more about this new feature of Deffy or have a look here...
o Adds a right click menu.
o Improves file error handling when the files being processed or loaded cannot be read.
o Fixes a lacking cleanup function for the second and third part of the file name of split pieces... worst case this could lead to a write error on splitting, if any of the inputs used held characters that are not allowed in file names.
o Fixes a crash when closing Deffy on any of the functionality still running.


Release 2.0.2 at 6 May 2023
o Fixes 'Cancel' not working when splitting files.
o Removes an incorrect warning when validating tracks in the Split window.
o Adds an 'How to split' link in the About window.


Release 2.0.1 at 2 May 2023
o Fixes a possible range error / access violation on .DFF files with a DIAR / DITI chunk, when loading the file...


Release 2.0.0 at 29 April 2023
o Adds the ability to split .DFF files (any .DFF, containing DSD or DST) into separate tracks (all .DFF files - no conversion to PCM)... scroll up to read more about this new feature of Deffy or have a look here...


Release 1.1.5 at 26 April 2023
o Fixes a bug that prevented Deffy from processing DSD128 and higher correctly... since the samplerate was set too low for these files (still at DSD64) the resulting DSF would play two times (DSD128) or four times (DSD256) slower than they were supposed to.


Release 1.1.4 at 14 April 2023
o Fixes a bug that prevented Deffy from processing DFF files larger than 2GB.


Release 1.1.3 at 25 January 2023
o Implements a fix for .dff files that have a trailing zero added in the name field of the CMPR chunk, but do not count that byte as part of the record. That extra uncounted byte caused Deffy to trip. The misbehaving .dff file was provided to me by a user of TASCAM recording equipment. If you experienced errors in Deffy, where it is complaining about not finding DSD or DST and questions the validity of the .dff file, try this release.


Release 1.1.2 at 25 January 2022
o Adds option to drag .dff files directly into the application (drag & drop).


Release 1.1.1 at 17 January 2022
o Adds 'ID3' column, to indicate if the DFF file contains an ID3 chunk (metadata).
o Fixes a small graphical issue: the 'reset list: cancelled' button would not disable after use.


Release 1.1.0 at 9 January 2022
o Adds window to change some of the settings.
o Adds option to immediately convert after loading the files.
o Adds option to change the number of threads used [in the new settings].


Release 1.0.5 at 3 January 2022
o Adds better error handling when opening and creating files.
o Makes it impossible to load a file twice (unless from different folders).
o Adds threaded support (a maximum of 5 files are converted simultaniously on separate threads).


Release 1.0.2 & 1.0.3 at 31 December 2021
o Fixes a faint plopping sound that could occur at the very end of the DSF file.


Release 1.0.1 at 31 December 2021
o Fixes files with Unicode filenames (e.g. Chinese or Japanese characters) not saving properly.


Release 1.0.0 at 31 December 2021





... Deffy is freeware and does not contain adware or spyware...

Deffy icon created by Freepik - Flaticon / Coloring by mymymyohmy.com




OTHER SOFTWARE