Skip to content

Instantly share code, notes, and snippets.

@willsthompson
Last active November 1, 2024 21:31
Show Gist options
  • Save willsthompson/a4ececdee9cbc4e369eb923e136a8243 to your computer and use it in GitHub Desktop.
Save willsthompson/a4ececdee9cbc4e369eb923e136a8243 to your computer and use it in GitHub Desktop.
SACD Ripping Guide

SACD Ripping

Prerequisites

  1. Firmware-compatible Bluray/SACD player. See threads below:

  2. AutoScript files. These will root the player and allow raw read access over a network.

  3. SACD ripping software

    • Everything centers around one command line-based ripping app, sacd-ripper (forked from the original PS3-based ripper).
    • There are two Java-based GUIs built on top of this tool:
      1. From the same author of the fork, SACDExtractGUI. (Note: I couldn't get this GUI to successfully run the app on macOS 10.15.2)
      2. Sonore ISO2DSD
    • Ripper will extract DFF or DSD files, or generate an ISO (for archiving)
  4. DFF/DSF postprocessing tools. These will convert from DSD to PCM.

    • dsd2flac command line tool
    • Sonore DSD2FLAC GUI (which uses dsd2flac)
    • ffmpeg (DSD-to-PCM output quality unclear)
    • DSD Master, a commercial macOS app (from the makers of BitPerfect). Claims to be higher quality, with more accurate normalization.

Steps

  1. Connect Bluray player to local network, and note its IP address.
  2. Enable player "Quick Start" mode. *
  3. Copy AutoScript folder to FAT16/32-formatted USB drive. AutoScript should be the only directory in the root of the drive.
  4. Insert USB drive into the port on the Bluray player. This should cause it to eject the disk tray.
  5. Insert SACD into tray, and power off the player (without closing the tray). The player should close the tray, enter sleep mode, and AutoScript will gain root access.*
  6. Wait while player flashes "OFF", and remove USB drive.*
  7. Rip to DSF/ISO with ripping tool using the IP address of the Bluray player, which should be accessable over the network (firewalls notwithstanding).*
  8. Use DSF tool to convert to FLAC (or other PCM format).
  9. Apply additional postproccessing to signal/container.*

Notes

  1. Sleep mode is only required with Sony brand units. See: https://hifihaven.org/index.php?threads/rip-sacd-with-a-blu-ray-player.3652/post-69340
  2. Recent versions of macOS restrict access to unsigned apps, including the GUI and command line tools. It may not be obvious that the command line tool is being restricted because it is run by the GUI. Right click on the sacd_extract file, select Open, and allow the exception for the file.
  3. Quadraphonic SACDs will probably encode quadraphonic recordings as 5.1 with empty Center and LFE channels. It may be preferable to encode the PCM audio container without the empty channels (i.e. so your amp has the option to use the sub). Drop the two empty channels using an ffmpeg filter:
    for i in *.flac; do ffmpeg -i "$i" -filter_complex "channelmap=0|1|4|5:channel_layout=quad" "./quad_mix/$i"; done;
    
@dsnyder0pc
Copy link

I don't have many SACDs. I've always shied away from the format because I could not enjoy the SACD layer in JRiver, Audirvana, and Roon. However, when I ran across these helpful instructions, I was delighted to find that I still had an old Sony BX510 in a pile of junk waiting to be recycled. Thanks to your help and the great work done by @setmind and others, I can finally hear the SACD layer on the dozen or two SACD discs that I've purchased over the years. :-)

I have a Windows 10 Pro system with WSL2 and Ubuntu 20.04 LTS installed. So, getting the command-line tool installed and running was a breeze:

$ sudo apt update
$ sudo apt upgrade
$ sudo apt install cmake git
$ git clone https://github.com/setmind/sacd-ripper.git
$ cd sacd-ripper/tools/sacd_extract
$ cmake .
$ make
$ ./sacd_extract --input 172.16.8.86:2002 -P   # IP address of my BX510, shows disc info
$ ./sacd_extract --input 172.16.8.86:2002 --2ch-tracks --output-dsf  --dsf-nopad --output-dir .

After that, I just had to move the files to my Synology NAS, embed album art, and force Roon to re-scan the library. I added "(SACD)" to the folder name and album title metadata so that the albums show up in Roon as SACD versions. Great sound. No pops or ticks between tracks. The entire process takes less than 15 minutes per album. The hardest part is sifting through boxes and boxes of CDs in my storage area to find my SACDs. :)

@dsnyder0pc
Copy link

dsnyder0pc commented Mar 1, 2021

If all of that is too much typing, I've hacked together a little script that may work for you. It assumes you're using Debian-based linux system (tested on Ubuntu 20.04 LTS, but may work on a few others, possibly with minor changes). Here's how you can install it into your local bin directory:

mkdir -p ~/bin && cd ~/bin || exit
curl -LO https://raw.githubusercontent.com/dsnyder0pc/scripts/master/ripsacd
chmod +x ripsacd

The script requires you to provide the IP address of your Blu-ray player as the first argument. If your NAS supports rsync (eg., Synology), you can optionally provide a location to rsync the ripped SACDs. For example:

~/bin/ripsacd 172.16.8.86 files:/volume1/cd

If the script does not find the sacd_extract command in ~/bin, it will attempt to build it. Otherwise, it will try to connect to your Blu-ray player and rip the currently loaded disc to ~/sacd/<artist>/<album> (SACD). If you provided an rsync target, it will sync the contents of ~/sacd to your NAS.

If you're a bit handy, you can open the ripsacd script with your favorite editor and hardcode the sacd_server and rsync_target variables so that you don't have to type them each time. Enjoy.

@willsthompson
Copy link
Author

Thanks for including your script, and happy you found this helpful!

@rolandomotadelcampo
Copy link

I have some mono SACDs, when ripping to DSF I see that the files that I got from sacd-ripper where in stereo. Is there a way to rip to mono?

@willsthompson
Copy link
Author

@rolandomotadelcampo Maybe the SACD duplicated the mono track into stereo? You should be able to use options in the command line tool to override the 2-channel output default.

@netfoo
Copy link

netfoo commented Jun 24, 2023

In SACDExtractGUi client, ping passes, Test is also successful. I follow steps 1-6 above. When I hit run, I get back an immediate DONE. It doesn't even stutter.

@lavadrop
Copy link

You are leaving a VERY important detail: the USB drive from step number 3 has to be formatted with an msdos/MBR partition table, otherwise the rooting will fail.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment