[SOLVED] Dsd2flac - converting multiple dff files

I recently created an ISO file from an SACD disc. I changed the name of the ISO file to SACD.iso and copied it to my Desktop.

Then, going into the Terminal, I typed cd Desktop and then ran the command sacd_extract -m -s -i"SACD.iso".

This “broke” the ISO file into its components. In this particular case there were 21 multi-channel dff components (tracks). (These play perfectly using Audacious.)

But I wished to convert those dff tracks to FLAC files (which are much smaller in size).

The only command with which I am familiar is *dsf2flac -i .dff which converts these files into multi-channel FLAC files.

My problem is that this command converts only one dff file at a time. This obviously is somewhat “clunky” and time-consuming, though everything works perfectly and the multi-channel FLAC files play just fine too.

I am certain that there must be a command to convert all 21 dff files together in one fell swoop.

Can anyone tell me what it would be?

Thanks to anyone who can help me.


Time to learn some basic shell scripting:

for f in *.dff; do dsf2flac -i "$f"; done

This will loop through each *.dff file in turn and run the dsf2flac command for each.


Well, that < dsf2flac -i “$f” > didn’t work. I get the message: “Sorry, only .dsf or .dff input files are supported and of course all of my files are .dsf files”

I tried replacing the “$f” with “$s” but that didn’t work either.

Would you please try again to write the exact command which will convert many .dsf multi-channel files all at once?

And please pardon me. I have absolutely no knowledge whatsoever of computer science; when I was young there was no such thing, at least that was available to me. I get whatever knowledge I do have right here from this, as well as other, forum. (I tried using DDG and G**gle to find the answer to this question yesterday but with no luck. That’s why I’ve asked here.)

I am able to copy and use such Terminal commands, without understanding them at all, as are told to me from others here as well as what I can find on the search engines but, as I stated, I could not find the answer to this one.

Thank you for trying to help me.


You can change the “dff” to “dsf”

Like this:

for f in *.dsf; do dsf2flac -i "$f"; done

Make sure you run that command from within the directory with the dsf files.


That would be news to anyone reading your initial post…

So yes - as dalto says, you can change the command to select *.dsf files rather than *.dff files.

This is not “computer science” - don’t make a lack of knowledge an excuse. Your computer, your files, your responsibility.


I have placed 21 .dsf files into my Desktop

I open the Terminal and type cd Desktop. Obviously I am in the correct directory.

Then I run this command dsf2flac -i “$f”

and it doesn’t work.

What’s wrong?


You can’t just run that part.

You need to run the whole thing:

for f in *.dsf; do dsf2flac -i "$f"; done
1 Like

THANK YOU! I didn’t realize that the whole thing had to be copied. It’s working perfectly right now as I’m typing this.

Naturally I’ll copy this command and keep it in my Documents folder so I’ll be able to use it in the future if necessary - and I won’t have to ask the question again.

Thanks to daito and jonathan for helping me with this problem. And please pardon my lack of knowledge. NOW, because of your help, I have some more knowledge and I now know how to convert these .dsf files much more quickly and easily.

Thank you both again very much.


1 Like

I’d also recommend you read something like this:

so you get an understanding of what the script does - then you can adapt it to new situations as they arise.