These days, MP3 is the king of music file formats. This is great for portable players with headphones of normal (or even decent) quality. However, once the equipment starts scaling up in quality, it is possible to start hearing the results of the lossy compression MP3 involves. Disk space is abundant at very very low price points, and for non-portable collections, we can do better than MP3 for sure. Ripping CD audio to FLAC is a great way to preserve the quality of CD audio to its fullest extent. But what if we want to get the best of the best recording? We need something that has a higher sample rate and preferably more bits (meaning less quantization error). Some standards would be 24-bit with either 88.2khz, 96khz or 192khz sample rates. With this amount of resolution, we push almost any possible issues well outside the audible range for humans, meaning this audio should sound great on any existing (or future) sound system. Another benefit is that the audio engineers aren't pressured to use various techniques like compression and EQ to make the sound better on low-end hardware. The mastering is generally very pure and unaltered from the original recording as much as possible.
SACD came out to address this demand around the turn of the century. The problem with SACD is that nothing plays it - even Sony's own PS3 dropped support for it in recent versions. Having files in a commonly playable format is much better than having a disc that doesn't play in almost anything. This presents a problem in general though since there are very very few ways to get the DSD (the file format used on SACD) material off of the disc because of copy protection. There are various websites where one can buy high-definition music files (such as HDTracks), but the selection is limited, and you have to buy all the music again if you already have the SACDs. There are some expensive mastering workstations that will rip SACDs, but a far more cost-effective solution is an old hacked PS3.
Step 1: Step 1: The PS3
The original PS3 could play SACDs, and many of the thick bulky models can do so. A good list is available here (I also screenshotted it here):
If you can find one that has a firmware previous to 3.55 (or any custom firmware, also called a CFW), it can be made to run the sacd-ripper software we'll be using later in the process. If you cannot find this hardware, the rest of the process is currently impossible since the original firmware after 3.55 hasn't been compromised. This could change at some point, but don't get your hopes up.
Once you have the PS3 in-hand, you'll have to install a custom firmware on it. I used the REBUG 3.55.4 REX edition available here:
I'll leave that process as an exercise to the reader. I'm going to assume from here on out that you're running a 3.55 CFW on your PS3.
Step 2: Step 2: Software
I have a linux server in my house, and I used it to build sacd-ripper using the PS3 toolchain (just get the precompiled toolchain - don't try to build it yourself). sacd-ripper can be found here:
Building is a bit of a pain, but it will build once you get everything happy with regard to the toolchain - see the README for details on the build process.
You'll also need sacd_extract in the same project, which is available under tools. Use cmake to build this.
Next you'll need to install wine on your linux server. While that's going, head over and get foobar2000 for Windows. Next, get the sacddecoder plugin:
Next you'll need FLAC for Windows:
Install foobar2000 with wine as well as FLAC. Now, go into foobar's preferences and install the sacddecoder plugin (unzip it first). Now you're ready to encode from DSD audio (DSF files) to FLAC!
Step 3: Rip an SACD
Now you just have to rip an SACD. Connect your PS3 to your home LAN. Start the sacd-ripper software (that you installed on your PS3 using the instructions in the README), choose server mode, and insert an SACD. Fool around with the options to sacd_extract on your computer a bit, and get it talking to the IP of the PS3. Once you understand the options, go ahead and rip an SACD ISO out of the PS3. You'll end up with a complete ISO after around an hour.
Step 4: Convert to DSF filesLet's use sacd_extract again, this time on the ISO, to grab the first track as a DSF file (assuming our ISO is called sacd.iso):
sacd_extract -i sacd.iso -2 -s -t 1 -c 01.dsf
This should get you a rather large file (my 5-minute track was around 200MB).
Step 5: Set up foobar2000
Now drop that bad boy (the DSF file) into foobar2000 (make sure to restart foobar after installing the plugin) and go into the main preferences area. Go to Tools -> SACD. The image shows my settings, but you can tweak these how you want. I find 88.2khz sample rate to be good enough. Hit OK.
Step 6: Convert to FLAC
Open the DSF file with foobar2000. You might get an error - don't worry about it, I think it's related to not being able to play the file through wine's audio stuff. Right click the file, and choose convert. Choose the FLAC audio codec with a compression level of your choosing (I used 5). Go ahead and convert it, then try playing it (I used Cog on my Mac to play mine). Open the new FLAC file with foobar2000 and check out the properties of the file. You should see something similar to mine in the image.