Jump to content
IGNORED

How do you store DFF ( untagged ) files?


rodrigaj

Recommended Posts

I am using Windows 8.1 and I tried what I could to make things clear.

 

AuI Converter does the DFF to DSF conversion really via dff2wav, so it goes through PCM and therefore it is not what we are searching for.

 

I tried the HFX Converter Light. Input were DFF files extracted from SACD ISO with sacd_extract.

 

The result was dialog box containing:

 

---------------------------

"H:\DSDIFF\RAINBOW - RISING\02 - RAINBOW - RUN WITH THE WOLF.dff" is not standard DFF,

 

it cannot be converted!

 

Maybe you have changed the DFF File with Jriver!

 

Check: W1A1CA

---------------------------

 

The DFF files were never used in JRiver.

 

Then I tried a DFF file, downloaded from the 2L website High Resolution Music DOWNLOAD services .:. FLAC in free TEST BENCH. The HFX Converter converted the file by creating a new one with DSF extension and similar size. So it seems HFX Converter is unable to convert DFF files, created with sacd_extract tool. I tried it with more SACD ISO files with the same result.

 

The conversion of 2L file took some time in the HFX Converter. I was not able to tell, if the DSD content was really only repackaged without modifying the content, because I don't know the difference between the DFF and DSF formats. It seems a binary representation of DSD content is not the same in DFF and DSF files, because the binary comparison tool ECMerge I used showed only very small sequences of matches. The DFF and DSF files seemed to be rather totally different (although similar in size).

 

Then I tried Korg Audiogate (an old version) and it converted the same 2L file much much faster. Further I tried the DFF file, created by sacd_extract, which HFX converter previously refused to convert. Audiogate did it quickly without any troubles.

 

The last thing I did was binary comparison of conversion results, taken form these two tools. It showed me only small differences at the beginning and the end of the files, otherwise the content of these two DSF files is identical. So I have a result: If Audiogate makes the DFF to DSF conversion without modifying the DSD content (only repackaging), then HFX converter does it too (only slower). There are some small differences in the header and footer of the DSF files, but not in the body. Sorrowly the HFX converter refused to convert DFF files, generated by sacd_extract.

i7 11850H + RTX A2000 Win11 HQPlayer ► Topping HS02 ► 2x iFi iSilencer ► SMSL D300 ► DIY headamp DHA1 ► HiFiMan HE-500
Link to comment
How did you do the comparison?

 

Miska, I wrote: "The last thing I did was binary comparison of conversion results, taken form these two tools."

I did comparison of two DSF files, not DFF and DSF.

The compared DSF files were created from the same DFF file, but the 1st using HFX Converter and the 2nd using Audiogate. There were few small differences only in header and footer, otherwise the 400 MB files have exactly the same body. That confirmed that not only Audiogate, but also HFX doesn't go through PCM and makes direct DFF to DSF conversion (something like repackaging).

 

The two formats have vastly different data layout, so there shouldn't be any part in the raw file where there is significant match.

 

Thanks for this explanation! It confirms my observation, when I compared DFF and DSF pair. I wrote previously: "It seems a binary representation of DSD content is not the same in DFF and DSF files, because the binary comparison tool ECMerge I used showed only very small sequences of matches. The DFF and DSF files seemed to be rather totally different (although similar in size)."

 

Miska, could you please create that cmd line tool also for Windows environment? It could be integrated into Explorer context menu, so it's usage could be convenient for all.

i7 11850H + RTX A2000 Win11 HQPlayer ► Topping HS02 ► 2x iFi iSilencer ► SMSL D300 ► DIY headamp DHA1 ► HiFiMan HE-500
Link to comment

Foobar is able to tag DFF files too.

 

It is also possible to store metadata externally in CUE sheets.

CUE sheets are widely supported, so using them brings wide level of compatibility with many software players and portable players.

i7 11850H + RTX A2000 Win11 HQPlayer ► Topping HS02 ► 2x iFi iSilencer ► SMSL D300 ► DIY headamp DHA1 ► HiFiMan HE-500
Link to comment
I just finished the command line conversion tool. I'll make a build today for Linux, OS X and Windows and put it up for download.

 

Thanks Miska, I am ready to test it on Windows OS.

i7 11850H + RTX A2000 Win11 HQPlayer ► Topping HS02 ► 2x iFi iSilencer ► SMSL D300 ► DIY headamp DHA1 ► HiFiMan HE-500
Link to comment
Cool!

Hopefully someone will put it into a useful i. e. GUI - dedicated for dummys like me ... ;-)

 

I can try to integrate it to Windows Explorer context menu (right mouse button click on a file or selected set of files). This type of solution is easy, because it doesn't require to design application GUI.

i7 11850H + RTX A2000 Win11 HQPlayer ► Topping HS02 ► 2x iFi iSilencer ► SMSL D300 ► DIY headamp DHA1 ► HiFiMan HE-500
Link to comment

Thanks, Jussi!

 

I'm trying on my Win7 desktop machine but keep getting "handle is invalid".

 

I found that the 2nd command line parameter must be full pathname including drive letter, otherwise "handle is invalid" is reported.

 

When I used full pathname, the conversion run successfully on Win8.1 and the resulting DSF file is playable in Foobar.

i7 11850H + RTX A2000 Win11 HQPlayer ► Topping HS02 ► 2x iFi iSilencer ► SMSL D300 ► DIY headamp DHA1 ► HiFiMan HE-500
Link to comment

You can find my context menu interface for DFF2DSD in the attachment.

I tested it on Win8.1 and Win7. Hopefully it will work for you too.

 

Very shortly, simply extract both the DFF2DSD tool (Miska's link above) and the attached zip file to the same folder on your computer. Then navigate to that directory in Windows Explorer and double click AddContextMenuItem.bat. Then you can right click any DFF file in Windows Explorer on your computer and choose 'DFF to DSF'.

 

The attached zip file contains readme file with more detailed instructions including context menu removal and uninstallation.

 

If you have issues, questions or suggestions to the interface, please let me know.

DFF2DSF_context_menu_Win7_Win8.zip

i7 11850H + RTX A2000 Win11 HQPlayer ► Topping HS02 ► 2x iFi iSilencer ► SMSL D300 ► DIY headamp DHA1 ► HiFiMan HE-500
Link to comment

The .bat script writes to registry, so you need admin privilegies. I forgot to point to that. Probably you need to right click the .bat file and select "Run as Administrator".

 

The .bat script has to create registry key and some entries below HKEY_LOCAL_MACHINE\Software\Classes\dff_auto_file\shell\DFF2DSD like on the attached picture.

DFF2DSF_context_menu_registry.PNG

i7 11850H + RTX A2000 Win11 HQPlayer ► Topping HS02 ► 2x iFi iSilencer ► SMSL D300 ► DIY headamp DHA1 ► HiFiMan HE-500
Link to comment

When you right click AddContextMenuItem.bat and select "Run as Administrator", the .bat script runs very short time (less than a second). If it run successfully, it should bring this visible result:

- New file dff2dsf.bat has to be created in the same folder. Was the file dff2dsf.bat created on your PC? What's its content?

- Now when you right click any DFF file (in any folder) of your PC, new context menu item (like on the picture) should appear. Did you observe such a new item? Only for DFF files.

DFF_context_menu.jpg

i7 11850H + RTX A2000 Win11 HQPlayer ► Topping HS02 ► 2x iFi iSilencer ► SMSL D300 ► DIY headamp DHA1 ► HiFiMan HE-500
Link to comment

If you wish to run dff2dsf.exe directly from command line without my context menu interface, you should give it two command line parameters like on my example (I used DFF2DSF v1.0.1 for this example):

 

h:\DSDIFF\RAINBOW - RISING>dff2dsf.exe "03 - RAINBOW - STARSTRUCK.dff" "03 - RAINBOW - STARSTRUCK.dsf"

DFF2DSF v1.0.1

Copyright © 2014 Jussi Laako / Signalyst. All rights reserved.

 

h:\DSDIFF\RAINBOW - RISING>

 

The file "03 - RAINBOW - STARSTRUCK.dsf" was created in the same directory as "03 - RAINBOW - STARSTRUCK.dff".

i7 11850H + RTX A2000 Win11 HQPlayer ► Topping HS02 ► 2x iFi iSilencer ► SMSL D300 ► DIY headamp DHA1 ► HiFiMan HE-500
Link to comment

The batch file dff2dsf.bat was created correctly, the content is as I expected.

 

For me it functions also this way: I can drag a DFF file and drop it on dff2dsf.bat. DSF file is successfully created. Maybe you need to refresh your Windows Explorer by pressing F5 to see the newly created file.

 

Alternatively, you can yet try to call dff2dsf.bat from command line, it requires only one parameter (the DFF file):

 

h:\DSDIFF\RAINBOW - RISING>dff2dsf.bat "03 - RAINBOW - STARSTRUCK.dff"

 

h:\DSDIFF\RAINBOW - RISING>"h:\DSDIFF\RAINBOW - RISING\dff2dsf.exe" "03 - RAINBOW - STARSTRUCK.dff" "h:\DSDIFF\RAINBOW - RISING\03 - RAINBOW - STARSTRUCK.dsf"

DFF2DSF v1.0.1

Copyright © 2014 Jussi Laako / Signalyst. All rights reserved.

 

h:\DSDIFF\RAINBOW - RISING>

 

Please try to do the same. In your case go to command line window, change directory to E:\musictest, run

 

dff2dsf.bat <your_DFF_file>

 

and copy here your output from the command line window.

i7 11850H + RTX A2000 Win11 HQPlayer ► Topping HS02 ► 2x iFi iSilencer ► SMSL D300 ► DIY headamp DHA1 ► HiFiMan HE-500
Link to comment

My difficulty is that I use highly customized Windows OS at home as well as at work and I have set to run all in Administrator context. So I never need to do "Run as Administrator". I tested it now on a fresh (non-customized) Win7 installation and I discovered one issue in my script.

 

Ted, please do the following, it will help to verify the issue on your computer:

 

Open Command Prompt window, run

[color=#0000ff]reg query HKEY_LOCAL_MACHINE\SOFTWARE\Classes\dff_auto_file\shell\DFFtoDSF\command[/color]

and check the output.

I assume it will be something like

(Default) REG_SZ "C:\Windows\system32\dff2dsf.bat" "%1"

which is wrong. If you got other output, please let me know.

 

Open the script AddContextMenuItem.bat in a text editor and substitute the line

set PWD=%CD:\=\\%

with two lines

set PWD=%~dp0

set PWD=%PWD:\=\\%

and save the file.

Right-click AddContextMenuItem.bat in Windows Explorer and choose 'Run as Administrator'.

 

Run again

[color=#0000ff]reg query HKEY_LOCAL_MACHINE\SOFTWARE\Classes\dff_auto_file\shell\DFFtoDSF\command[/color]

If your output is

(Default) REG_SZ "E:\musictest\dff2dsf.bat" "%1"

then most probably your problem is fixed. Try the 'DFF to DSF' context menu, if it runs as expected.

i7 11850H + RTX A2000 Win11 HQPlayer ► Topping HS02 ► 2x iFi iSilencer ► SMSL D300 ► DIY headamp DHA1 ► HiFiMan HE-500
Link to comment

The current solution can be used for multiple files, but it would run paralelly, so it is not suitable for more than few files.

 

I am thinking about renaming the current menu item to 'DFF to DSF - this file' and adding yet one item 'DFF to DSF - this directory'.

Invoking the 'directory' item on a single DFF file would start sequential conversion process for that directory (for example one music album). It could skip already existing DSF files, if any.

i7 11850H + RTX A2000 Win11 HQPlayer ► Topping HS02 ► 2x iFi iSilencer ► SMSL D300 ► DIY headamp DHA1 ► HiFiMan HE-500
Link to comment

I attached the DFF to DSF context menu v1.0.1, changes are:

- AddContextMenuItem.bat, RemoveContextMenuItem.bat: If permissions are insufficient, user is asked to start the script using 'Run as administrator'

- AddContextMenuItem.bat: Corrected detection of installation directory if 'Run as administrator' was used to start the script

- readme.txt: AddContextMenuItem.bat and RemoveContextMenuItem.bat have to be started using 'Run as administrator'

 

Let me know if it works for you.

DFF2DSF_context_menu_Win7_Win8_v1.0.1.zip

i7 11850H + RTX A2000 Win11 HQPlayer ► Topping HS02 ► 2x iFi iSilencer ► SMSL D300 ► DIY headamp DHA1 ► HiFiMan HE-500
Link to comment

Miska, it's nothing urgent, but if you would yet modify the DFF2DSF tool, could you add some easy check for DST format and normal exit for that case? Now the tool crashes in the case of DFF containing compressed DST data (at least on Win8.1), it opens a system dialog.

i7 11850H + RTX A2000 Win11 HQPlayer ► Topping HS02 ► 2x iFi iSilencer ► SMSL D300 ► DIY headamp DHA1 ► HiFiMan HE-500
Link to comment

I have created a tool ISO2DSF:

 

- input: SACD ISO file

 

- outputs:

a) DSF tracks

b) CUE sheet for Foobar2000 and other players with CUE support

c) TXT file with metadata for easy tagging in MP3TAG

 

DSF tracks are created in 2 steps:

1) sacd_extract to DFF tracks

2) DFF2DSF from Miska

 

ISO2DSF can be started from Windows Explorer context menu by right-clicking a SACD ISO file.

Alternatively, it can be started by dragging ISO file and dropping it to the tool or it's shortcut placed anywhere. Suitable place for such a shortcut is for example Desktop or Start Menu toolbar.

ISO2DSF can be also started from command line with ISO file as the only parameter.

 

The tool is written in Perl and uses no OS specific code, so it could function in OS X as well as Linux. sacd_extract and DFF2DSF are available for more OS platforms.

 

Are you interested?

i7 11850H + RTX A2000 Win11 HQPlayer ► Topping HS02 ► 2x iFi iSilencer ► SMSL D300 ► DIY headamp DHA1 ► HiFiMan HE-500
Link to comment

I will yet write a short guide with installation, usage and uninstallation instuctions, then I will release it for Windows.

 

I attached 2 pictures. The first shows an example results after finishing the script. The second shows easy way how to apply tags in MP3TAG.

 

MP3TAG_after.PNG

ISO2DSF_finished.PNG

MP3TAG_before.PNG

i7 11850H + RTX A2000 Win11 HQPlayer ► Topping HS02 ► 2x iFi iSilencer ► SMSL D300 ► DIY headamp DHA1 ► HiFiMan HE-500
Link to comment

I am running only Windows OS, so I am not able to test it under Ubuntu.

ISO2DSF is written in Perl as OS platform independent code. If anyone would like to maintain ISO2DSF release on other platform than Windows, I can send him my source code. But it has some prerequisites and conditions:

- DFF2DSF and sacd_extract binaries have to be available for that platform

- He will test ISO2DSF and make platform specific adaptions, if necessary. Perl installation and basic knowledge of programming in Perl is required for that.

- He will create an installation archive or package for that platform.

- He will create a short installation/usage/uninstallation guide for that platform.

i7 11850H + RTX A2000 Win11 HQPlayer ► Topping HS02 ► 2x iFi iSilencer ► SMSL D300 ► DIY headamp DHA1 ► HiFiMan HE-500
Link to comment

Hi Ted, thank you for testing ISO2DSF. I will address the isues you found.

 

* no auto context

 

It happens only if you have set some other program as default program for ISO file type. It is explained also in the PDF guide. You can change the default program in the 'Open with' -> 'Choose default program ...' dialog.

 

* let users know they need to set the MPSTag format string the first time. The MP3Tag text to file is nice once set up.

 

The Command Prompt window shows this message few lines before the final 'Press any key...': "Use this format string in MP3TAG: %artist% | %album% | %track% | %title%"

 

I will add this yet to the PDF guide text. The guide already now contains picture with the format string.

 

I am not able to find if the format string was already set in MP3TAG. If anyone has some more concerte idea for improvement, please let me know.

 

* I would like to remove the cue sheet function (I don't use it) as I then need to delete it each time (JRiver will see a cue sheet and announce/show the album redundantly). Maybe make that toggle on and off with the config file (like prompts and channel mode)

 

Good idea, I will make it configurale via config file. Maybe also the MP3TAG feature.

 

* maybe it's me but I like to see progress so I simply look in the created folder (since the dos window shows no real progress until a state changes)

 

I will display the sacd_extract output in the Command Prompt window, so the progres swill be visible. I can also display information about finish of dff2dsf for each track.

 

* some ISOs are not being extracted, but rather sent through in 1-2 seconds as if they were successful, with simply a cue file created. These same ISOs are successfully extracted via Jesus's GUI.

* some ISOs are creating nested subfolders (artist, then artist album). That is a pain but can be dealt with.

* some ISOs subfolders do not contain cue or text files when finished (even though dos prompt/messages are the same, of course).

 

It's harder for me to address these issues when I don't have the ISOs to reproduce it. It seems to be related to different ways how metadata is stored in SACD ISOs.

 

Please run sacd_extract to generate CUE sheets for stereo tracks (-C and -2 switches) and send me these CUE sheets, at least one for each of the last 3 issues. ISO2DSF retrieves metadata information from these CUE files and then deletes them. I hope it could help also in the case when DSF tracks were not generated, it seems the command line for sacd_extract was not correctly created. I am using the last parameter for output folder and most probably that causes the issue (maybe some unexpected character in album title or artist name). I will PM you my email, it may be more convenient for you to send me these CUE sheets via mail than to upload them.

i7 11850H + RTX A2000 Win11 HQPlayer ► Topping HS02 ► 2x iFi iSilencer ► SMSL D300 ► DIY headamp DHA1 ► HiFiMan HE-500
Link to comment

If anyone is able to compile metadsf for Windows please let me know.

https://github.com/pekingduck/metadsf/blob/master/README.md

I asked the metadsf author for help but till now I didn't succeed to compile it.

metadsf - a command line tagging tool for DSF (DSD) files

If I would have a command line tool (or Perl library) available to tag DSF files, the tagging could be incorporated directly to ISO2DSF code.

i7 11850H + RTX A2000 Win11 HQPlayer ► Topping HS02 ► 2x iFi iSilencer ► SMSL D300 ► DIY headamp DHA1 ► HiFiMan HE-500
Link to comment
Could you output an ID3v2 blob? I could see my code how easy it would be to add support for copying ID3v2 tag from a second file into output DSF...

 

What's the ID3v2 blob? Google didn't help me ... Something like empty audio file with IDv3 tags?

i7 11850H + RTX A2000 Win11 HQPlayer ► Topping HS02 ► 2x iFi iSilencer ► SMSL D300 ► DIY headamp DHA1 ► HiFiMan HE-500
Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now



×
×
  • Create New...