Jump to content
IGNORED

How do you store DFF ( untagged ) files?


rodrigaj

Recommended Posts

We need to find a good DFF to DSF conversion utility. Anybody? I tried the HFX light converter but got nowhere; it kept telling me the folders I was accessing were write-protected, which they absolutely weren't.

 

I have such as a command line utility (currently only Linux, but OS X would be easy). Although now it does upsampling at the same time. But I could make a bit-perfect version of it. Stereo is easy, keeping multi-channel channel mappings correct could require some additional work.

 

If you can convince me I could make such bit-perfect conversion utility. :)

 

 

P.S. HQPlayer supports ID3v2 tags also in DFF files (and WAV), but it's not standard so I don't know if any tool writes such. (I think someone reported JRiver's tagging of either format to work, but can't remember anymore which one)

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment
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.

 

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

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment
The compared DSF files were created from the same DFF file, but the 1st using HFX Converter and the 2nd using Audiogate.

 

OK, this is what I wanted to confirm. :)

 

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.

 

Code itself is cross-platform and works on Windows too. Only real difference are the build files used to produce the binaries. OS X being unix-style system like Linux makes it easy to same thing for both. Windows always needs different treatment... But it's not anything major.

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment
I had tested my *.dff files - tagged with Foobar - with HQPlayer, and reported that it had worked.

 

Thank you, that was it! :)

 

But one has always to remember that this isn't a standardized feature, so it can get lost/crippled any time ...

 

Exactly, that's why I'd always recommend using DSF which supports ID3v2 tags by the spec. It is also more straightforward format for multichannel.

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment
So how do you convert Quad DSD DFF files to DSF?

 

You mean DSD256? Both formats have sampling rate as 32-bit integer (in Hz), so any rate that can presented within 2^32 value space in integer Hz works just fine. From 1 Hz to 4.3 GHz.

 

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.

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment
  • 2 weeks later...
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.

 

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

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

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

 

I mean content of the ID3 tag, it is binary data encoded in certain way, see here:

Developer Information - ID3.org

 

I believe CPAN could have the needed tools for perl... (you were using perl if I understood correctly?)

Implementations - ID3.org

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment
That what it should be, cause the only the header should change, the rest of the file remains unaltered. If the DFF to DSF conversion takes several minutes, it may go through a conversion process (like Jriver - currently).

 

No, all the data needs to be reshuffled, because the data organization is completely different in the two formats...

 

So it needs to read all the source data, reshuffle it and write it out to another file. So for the 4:45 track it neads to read 200 MB from the disk, rearrange and write 200 MB to the disk. The time varies based on the HDD speed and the OS' caching capabilities. It is not so much speed optimized now and works on fairly small blocks of data (~15 ms). Code originates from my own internal testing tool, so speed was not the development criteria for it...

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment

I uploaded dff2dsf v.1.1.0 update here:

Signalyst

 

Now the same conversion takes 0.8 seconds on my old Linux desktop machine. I also added a check for DST compressed content so it should gracefully exit when such is discovered (with return value 2). However I don't have any DST compressed files to test with, so it's just a guess.

 

So conversion should be now faster. I did MD5 comparison of the resulting file to the previous version with identical results, but I would request others to also make sure I didn't introduce new bugs while making the conversion faster...

 

There is now also 32-bit Linux binary included.

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment
Jussi, dff2dsf.exe still crashes in the case of DST input file. I sent a link to a DST file to your mail.

I sent you another mail related to the 'id3v2 blob' topic.

 

Thanks! I'll check it out and also the ID3 tag. I'll try to put both fix for the crash and tag writing support and make a new build today.

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment
OK, how does Audiogate 3 work on the conversion dff to dsf so quickly? For an album it takes maybe less than than 10s, in fact it takes more time to setup than execution.

 

I don't know. Did you try out the new version? I made the processing chunk 16x larger, now it's about 200 ms of data. I can bump it to 1 second or something like that if it feels there would be still an improvement in speed.

 

How much time it takes for you with the new version?

 

The 0.8 seconds it takes for me for the 200 MB track means there's already disk I/O exceeding 400 megabytes per second. On my Core i3 Windows laptop it took couple of seconds to convert the same file over a gigabit ethernet.

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment

3) in ALL cases it says to extract/unzip "to same folder as used in step 1 ". Don't extract all the Bogi (edit: I mean Miska) versions, just the one you need (i.e click on Win32, don't unzip the parent folder).

 

IMO, easiest way is

1) Double click the ZIP

2) Double click on the win32 folder

3) Drag-and-drop the dff2dsf.exe where ever needed... (or use Ctlr-C and Ctrl-V)

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment

I just released dff2dsf v1.2.0 with support for (optionally) writing out given ID3v2 tag data to the output DSF file while writing it out.

 

I also made the processing buffer larger again. Now the speed increase on Linux was just 0.02 seconds for me (on 200 MB file), but on Windows the difference could be larger.

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment
Previouslly you most probably extracted other ISO files, not that one which now caused your troubles. The issue with sacd_extract <outdir> parameter si not systematic. It occurs only with ISO's where artist or album names are very long strings.

 

Without small extra hassle, combined full path name of a file can be max 255 characters on Windows.

 

On Windows, dff2dsf support file paths up to 32768 characters long.

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

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