SACD Files on the Oppo 103 and 203

QuadraphonicQuad

Help Support QuadraphonicQuad:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.

atrocity

2K Club - QQ Super Nova
Since 2002/2003
Joined
Jun 14, 2002
Messages
2,226
Location
Sacramento, California
Pretty much any time someone talks about media players, my first question is "Is it truly gapless?" Hey, I listen to a lot of Pink Floyd, so it really matters.

Anyway, as much as I love the Oppo players, it's been frustrating that gapless DSD playback is not possible with single-song files. It only works if everything that needs to flow is in a single large file.

Related to that, I thought I would pass along something I learned over the course of dealing with multi-disc albums yesterday and today. I've been using a DSD-aware fork of SoX to concatenate multi-disc sets into single files which are then broken into tracks via cue sheets. There's been some real frustration because, while the files themselves can always be played directly, sometimes the cue sheets would work and sometimes not. At first I thought it was due to file size as the ones that didn't work were larger than the ones that did. It turns out that's sort of the answer, but only sort of.

Oppo (and they're not the only ones) have taken a strict approach to interpreting cue sheets, even though that approach is counter-productive in cases like this. Specifically, because cue sheets were originally designed for use when burning audio CDs on computers, they were never intended to deal with files that had tracks starting as late as 100 minutes in. Of course, if you've got a single file with, say, both discs of "Bruce Springsteen and the E Street Band Live in New York City", that's a real problem. Although I could play the giant DSF file perfectly, any attempt to access it via cue sheet would result in the Oppo claiming that it couldn't find the file. (An inaccurate error message, but whatever.)

After much back and forth with Oppo technical support (very nice, responsive people) and much close inspection of cue sheets that worked vs. ones that didn't, I finally noticed that the ones that didn't work all had tracks beginning at or after 100 minutes in. When I deleted those >100 minute track points but changed nothing else, everything worked. Of course, that meant I could no longer access those later tracks individually.

The workaround--which I would have immediately grasped were I not a complete moron--is to remember that cue sheets used for burning CDs can refer to multiple files. So my obsessive chasing of gapless playback that caused me to automatically and thoughtlessly create whole-album files of multi-disc SACDs and then write code to calculate the track points for what had been discs 2 and above was counterproductive and just made more work. It's much easier--and actually works--if you create one file per disc, then create a cue sheet that references the multiple files, e.g.:

Code:
PERFORMER "Dr. Whosit and the Scumpigs"
TITLE "Go Away"
FILE "Go Away disc 1.dsf" WAVE
  TRACK 01 AUDIO
    TITLE "It Really Stinks in Here"
    INDEX 01 00:00:00
  TRACK 02 AUDIO
    TITLE "What Are You Wearing?"
    INDEX 01 05:40:07
  TRACK 03 AUDIO
    TITLE "My Face Breaks Mirrors"
    INDEX 01 11:56:17
FILE "Go Away disc 2.dsf" WAVE
  TRACK 04 AUDIO
    TITLE "The Dirtiest Song Ever"
    INDEX 01 00:00:00
  TRACK 05 AUDIO
    TITLE "Talentless Hack"
    INDEX 01 05:40:07
  TRACK 06 AUDIO
    TITLE "Atrocity Is an Idiot"
    INDEX 01 11:56:17

It's entirely possible that everyone else figured this out a long time ago, but I thought I'd post it here Just In Case.
 
I had issues with long (time) cue sheets a few years back and fixed the problem by using hours:minutes:seconds. It seems the cue reader (Foobar) could understand a 2 digit ‘minutes’ field but once over 99 it failed the format test. Changing to hh:mm:ss fixed it.
 
I had issues with long (time) cue sheets a few years back and fixed the problem by using hours:minutes:seconds. It seems the cue reader (Foobar) could understand a 2 digit ‘minutes’ field but once over 99 it failed the format test. Changing to hh:mm:ss fixed it.

Everytime you resolve one of these problems I experience 2 distinct emotions..I'm impressed and I feel inadequate...geeze...I look back on my formative years and all the time I wasted on recreational drugs and porn...it's a skillset that doesn't transition to contemporary times....I guess it could have been worse...I mean I could have been setting fires and killing household pets...oh well:unsure:...

Anyway...another great post and information for the forum(y)
 
Last edited:
I had issues with long (time) cue sheets a few years back and fixed the problem by using hours:minutes:seconds. It seems the cue reader (Foobar) could understand a 2 digit ‘minutes’ field but once over 99 it failed the format test. Changing to hh:mm:ss fixed it.

Foobar2000 seems to now be comfortable with >2 digit minutes. In fact, that was one reason the Oppo was frustrating me so much: I'd edit the cue sheet in W*nd*ws and open it up in Foobar, which would happily play along. But then the Oppo would claim the file didn't exist. In the example you cite, I wonder how Foobar2000 was able to distinguish between your usage of hh:mm:ss and the standard mm:ss:ff (frames).

The fundamental issue is that cue sheets were initially built for a specific single purpose but have since become useful elsewhere. My final note from Oppo mentioned (politely) that I wasn't adhering to the Red Book standard. They were 100% right while also completely missing the point. Realistically, the multi-file cue sheets that create long, long "albums" are also in violation since there's no way one could actually use one to burn a CD.

Anyway, I'm really not trying to criticize Oppo--what I was trying to do was so much more work that I needed programming help. Keeping multiple single-disc files makes the process much, much simpler.
 
By the way, this is my cheat sheet for running sacd_extract from the Linux command line, just in case it helps anyone else. Obviously, you would replace IP addresses, file names and path to sacd_extract to suit your own situation. I believe the options for the W*nd*ws version are identical, you'd just need to change the reference to the executable.

I know there's a GUI, but I find the command line more flexible. Also, having it "canned" like this means I can't forget to tick or untick various boxes as appropriate. And I think there are some options here (like just creating a cue sheet and exiting) that aren't available through the GUI.

Code:
# Stereo Tracks
/home/administrator/SACD_Extract/sacd_extract --2ch-tracks --output-dsf --convert-dst --export-cue --input 192.168.1.148:2002 --print

# Multi Tracks
/home/administrator/SACD_Extract/sacd_extract --mch-tracks --output-dsf --convert-dst --export-cue --input 192.168.1.148:2002 --print

# Multi edit master
/home/administrator/SACD_Extract/sacd_extract --mch-tracks --output-dsdiff-em --convert-dst --export-cue --input 192.168.1.148:2002 --print

# ISO
/home/administrator/SACD_Extract/sacd_extract --output-iso --input 192.168.1.148:2002 --print

# Multi Tracks from ISO
/home/administrator/SACD_Extract/sacd_extract --mch-tracks --output-dsf --convert-dst --export-cue --input "Hugo Montenegro - In Wonderland.iso" --print

# Stereo Tracks from ISO
/home/administrator/SACD_Extract/sacd_extract --2ch-tracks --output-dsf --convert-dst --export-cue --input "/mnt/WD8TBNAS03/DSD Multichannel/Blue Oyster Cult/Secret Treaties/Blue Oyster Cult - Secret Treaties.iso" --print

# Just a cue sheet for the multichannel tracks
/home/administrator/SACD_Extract/sacd_extract --export-cue --mch-tracks --input 192.168.1.148:2002
 
Thanks!

Was just about to start the process of using the GUI and then cancel to generate the cue sheet. Could easily end up with some hefty extra files.

Apparently the creator of the GUI is called Jesus! :)
 

You're welcome!
Was just about to start the process of using the GUI and then cancel to generate the cue sheet. Could easily end up with some hefty extra files.

It's funny you'd say that, I had been doing the same thing until it occurred to me to see if the command line could do it more elegantly. I also just yesterday realized that it's important to specify --mch-tracks or --2ch-tracks even when just snagging a cue sheet. Last night I was working with the second disc of the SACD version of "Tommy" and got in trouble because the stereo cue sheet (which you get by default if you don't specify) referred to more tracks than exist on the surround layer.
 
Back
Top