Jump to content
IGNORED

sacd_extract DSF output problem


psme

Recommended Posts

3 minutes ago, mindset said:

pop is gone if I include the zero padding in the sample count

 

In general, standard customization is not safe way. Because, very probably, that this modification in the file will forgotten and pops at other players may be caused.

 

Sometimes, our customers reports about errors, that caused by standard deviation.
If it is possible and reasonable, our software ignore these issues. But that case is undetectable by file even.

Such file may be edited and/or truncated.

 

Me seems, your previous method is more safe.

AuI ConverteR 48x44 - HD audio converter/optimizer for DAC of high resolution files

ISO, DSF, DFF (1-bit/D64/128/256/512/1024), wav, flac, aiff, alac,  safe CD ripper to PCM/DSF,

Seamless Album Conversion, AIFF, WAV, FLAC, DSF metadata editor, Mac & Windows
Offline conversion save energy and nature

Link to comment

I have created a pull request to the sacd-ripper github for the padding-less DSF generation option I mentioned earlier.  I see other people's pull requests from more than year ago without any action taken, so I believe mrwicked is no longer active in the project.  Those who are interested in the changes I made can find my fork in the sacd-ripper github, and compile the codes.  I have also pushed changes to add more ID3 tags from the TOC such as composer, album artist, and ISRC.  I also merged a fix for ID3 tagging bug somebody pushed.

 

 

Link to comment
  • 6 months later...

Reviving this thread... thank you mindset for your very nice fork of sacd_extract. I think I found a small bug with dsf_nopad option. At the end of the last track, the remainder of the buffer will be written out and zero-filled, so there will be a "pop" at the very end of the album. Can be fixed by simply dropping the remainder. I could not find a way to post an issue on github, so I was forced to come up with my own fix ?. Here's the diff -- I can confirm that at least for me this works. 

 

$ diff dsf.c dsf.c.orig                                                                                                                         
192,193c192
<     if(ft->dsf_nopad){
<       if (ft->track < sb_handle->area[ft->area].area_toc->track_count - 1){
---
>     if(ft->dsf_nopad && ft->track < sb_handle->area[ft->area].area_toc->track_count - 1){
198d196
<       }

 

Link to comment

Zero padding of the last track is actually intentional even with the no-padding option.  The DSF standard specifies each frame of each channel to be 4096 bytes in size and unused bytes to be zero filled.  Not zero padding will eliminate the pop noise but is technically incompliant, so I decided not to do that.

 

Link to comment

I think that the proposed solution is compliant in the sense that each frame is 4KB. The only difference is that the last frame of the last track gets dropped. According to your earlier calculation, that could be up to 11ms. I found that acceptable since to me the pop is actually quite unpleasant and in practice I did not encounter any audible differences so far with my solution.

Link to comment

That means the last frame will not be 4096 bytes/channel in size.  I don't see any sign of exception for the last frame in the DSF specification, so my understanding is the even the last frame must be 4096 bytes in size, and needs to be zero-filled for unused samples.  I do understand that the proposal eliminates pop noise at the end of the last track(that's the case with my player, too), but prefer not to release something incompliant with the standard.  Some players may not even play the DSF file if it's incompliant depending on what kind of error checks they do.

Link to comment

It doesn't mean that. Your solution divides each track in n x 4K frames, then inserts a leftover in the beginning of the next track. Then, since that cannot be done after the last track, you output that frame (which is by definition < 4K) and it has to be 0-padded and cause the pop in non-compliant players (which happens to be mine). I also have the last song divided into n x 4K frames, the only difference in my proposal is that that very last frame gets dropped. By dropped, I mean that it is discarded, deleted, missing from the final output. I'm just saying I cannot hear the difference from the original, therefore prefer not hearing the pop to hearing it.

Link to comment

I see.  I was misunderstanding your proposal.  I thought you were proposing to just skip zero padding for the last track, but I believe you are proposing to drop the entire last frame if it's not exactly 4096 bytes.  You are right, it will eliminate the pop while keeping the file DSF standard compliant, but it will technically result in incomplete rip somebody will complain about.   It is unfortunate that there are non-compliant players (even SONY, owner of the DSF format!), but I prefer not to bend the program for them too much especially when it results in data loss.

 

Just out of curiosity, do you mind sharing the name of your player?

Link to comment

I use kodi 18.0. dsf playback is considered experimental there, but it works. Developers over there are aware of the issue and there is a bug open. Unfortunately that is obviously not a priority for them, so who knows how long before that gets fixed. I will try to look into the code to see if I can figure it out by myself, but the codebase is fairly complex.

 

Link to comment
  • 1 year later...

I'm a newcomer here. So I wonder if I can put my problem here.

 

I can't get DSF or DIFF file from some of my SACDs.

I can get an ISO file from the SACDs. But I can't get DSD files (DSF/DFF) by using ISO2DSD.

There is no error messages on ISO2DSD but the operation just stops.

For example, the last message is ;

Processing [Piano Lang Lang Orchestra of Mariinsky Thetre Con - Rachmaninov Piano Concerto No.2 Rhapsody on a Theme of P (2)/01 - Piano Lang Lang Orchestra of the Mariinsky Theatre Con - 1st movement [Piano Concerto No.2].dsf](1/29)..

 

I also tried to get DSF files using sacd_extract directly from the disc but I couldn't.

 

It might be a known issue. But could not find the information about it..

I hope someone knows how to escape this problem and get DSF or DFF files from this kind of SACDs.

 

Link to comment
5 hours ago, KappaKappa said:

I'm a newcomer here. So I wonder if I can put my problem here.

 

I can't get DSF or DIFF file from some of my SACDs.

I can get an ISO file from the SACDs. But I can't get DSD files (DSF/DFF) by using ISO2DSD.

There is no error messages on ISO2DSD but the operation just stops.

For example, the last message is ;

Processing [Piano Lang Lang Orchestra of Mariinsky Thetre Con - Rachmaninov Piano Concerto No.2 Rhapsody on a Theme of P (2)/01 - Piano Lang Lang Orchestra of the Mariinsky Theatre Con - 1st movement [Piano Concerto No.2].dsf](1/29)..

 

I also tried to get DSF files using sacd_extract directly from the disc but I couldn't.

 

It might be a known issue. But could not find the information about it..

I hope someone knows how to escape this problem and get DSF or DFF files from this kind of SACDs.

 

Oh, the filename is far too long, if you use Windows. IIRC Windows had a limit of 160 characters including the full path, any more and gags.

The data is embedded in the ISO like that? Seems odd. Is there a suffix command with sacd extract to use only 8.3 c h characters?

AS Profile Equipment List        Say NO to MQA

Link to comment
3 hours ago, One and a half said:

Oh, the filename is far too long, if you use Windows. IIRC Windows had a limit of 160 characters including the full path, any more and gags.

The data is embedded in the ISO like that? Seems odd. Is there a suffix command with sacd extract to use only 8.3 c h characters?

Thanks for your comment.

Yes, the file name is very long. But some DSF files which I successfuly got have also long name. I can't find the diference.

There seems no options to handle the files with the shorten name in sacd_extract. Umm

Link to comment
  • 2 weeks later...
  • 2 weeks later...
On 3/28/2020 at 9:32 AM, EugenF said:

Hello everyone!

 

I build an improved sacd_extract client app (for Windows and Linux, not Mac, sorry, maybe later ) with lots of new features (long filenames, wide chars in filename, pauses removal, concatenation of dsf tracks, fully metadata in ID3V2.3/ID3V2.4 UTF-8 tags,  etc) which can solve lots of dsf output problems.

 

It is fully compatible with SACDExtractGui or Sonore/ISO2DSD.

 

Uploaded the release-candidate version of sacd_extract ver 0.3.9.3-63 (now it has version control based on commit hash in github):

 

https://github.com/EuFlo/sacd-ripper/releases/tag/0.3.9.3

or

https://github.com/EuFlo/sacd-ripper/releases/download/0.3.9.3/sacd_extract-0.3.9.3-63-win64.zip

 

Stay safe!!!

Please take good care of your health!

Cool. I added version 9 downloads for Windows and Linux. You may have to refresh your browser to see the new downloads.

Link to comment
On 3/28/2020 at 2:32 PM, EugenF said:

Hello everyone!

 

I build an improved sacd_extract client app (for Windows and Linux, not Mac, sorry, maybe later ) with lots of new features (long filenames, wide chars in filename, pauses removal, concatenation of dsf tracks, fully metadata in ID3V2.3/ID3V2.4 UTF-8 tags,  etc) which can solve lots of dsf output problems.

 

It is fully compatible with SACDExtractGui or Sonore/ISO2DSD.

 

Uploaded the release-candidate version of sacd_extract ver 0.3.9.3-63 (now it has version control based on commit hash in github):

 

https://github.com/EuFlo/sacd-ripper/releases/tag/0.3.9.3

or

https://github.com/EuFlo/sacd-ripper/releases/download/0.3.9.3/sacd_extract-0.3.9.3-63-win64.zip

 

Stay safe!!!

Please take good care of your health!

I can't compile sacd_extract on arm64.

setmind had made sure that it could also be compiled on arm64

 

https://github.com/setmind/sacd-ripper

Link to comment

Awaiting mac version, patiently ...

macmini M1>ethernet / elgar iso tran(2.5kVa, .0005pfd)>consonance pw-3 boards>ghent ethernet(et linkway cat8 jssg360)>etherRegen(js-2)>ghent ethernet(et linkway cat8 jssg360) >ultraRendu (clones lpsu>lps1.2)>curious regen link>rme adi-2 dac(js-2)>cawsey cables>naquadria sp2 passive pre> 1.naquadria lucien mkII.5 power>elac fs249be + elac 4pi plus.2> 2.perreaux9000b(mods)>2x naquadria 12” passive subs.

Link to comment
  • 1 month later...

Just found this thread.  I don't know if it's particular to this topic.  But, I've been simply wondering if there's a strait forward way to separate a DSF file containing several songs with an  accompanying cue sheet to separate DSF files without going to PCM in the process?

Link to comment
On 3/28/2020 at 9:32 AM, EugenF said:

Hello everyone!

 

I build an improved sacd_extract client app (for Windows and Linux, not Mac, sorry, maybe later ) with lots of new features (long filenames, wide chars in filename, pauses removal, concatenation of dsf tracks, fully metadata in ID3V2.3/ID3V2.4 UTF-8 tags,  etc) which can solve lots of dsf output problems.

 

It is fully compatible with SACDExtractGui or Sonore/ISO2DSD.

 

Uploaded the release-candidate version of sacd_extract ver 0.3.9.3-63 (now it has version control based on commit hash in github):

 

https://github.com/EuFlo/sacd-ripper/releases/tag/0.3.9.3

or

https://github.com/EuFlo/sacd-ripper/releases/download/0.3.9.3/sacd_extract-0.3.9.3-63-win64.zip

 

Stay safe!!!

Please take good care of your health!

Thanks.  I'll give it a look.

Link to comment
  • 2 weeks later...
  • 2 weeks later...

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