sacd-extract

DSDをSACDのisoイメージで売っているサイトもあるので,そのようなisoイメージを購入した場合どうやって再生するのだ,ということが少し気になって調べてみました。

基本的には,以前にメモしたようにscarletbookを使ってトラックごとのDSFファイルを抽出すればよいのですが,すでにこのリンク先(scarletbookが置かれているサーバー)はなくなっているようです。scarletbookはwindows専用ですし,isoイメージによってはうまくトラックを抽出できないことがあります。

PS3で動くsacd-ripperというのがありましたが,その兄弟ソフト(?)としてsacd-daemonというアプリケーションソフトがありました。やることは同じなのですが,前者がPS3のローカルに接続したUSBメディア(USB接続のHDDなど)にデータを出力するので,4GBを超えるファイルは自動的に分割されていました。一方,後者はPS3上でサーバーデーモンとして動いており,クライアントからの要求に応じてクライアント側にデータを出力するというものです。そのため,クライアントのOSが4GBを超えるファイルをサポートしていれば大きなISOファイルも1つのファイルとして出力可能です。このとき,クライアントからsacd-daemonに出力要求を送るのがsacd-extractというソフトです。

sacd-extractはかつては,windows版のみだったようです。ただ,ソースも配布されていたようなのでコンパイルすればOSに依存せずに動いていたようです。

ここにも書かれているようにSONOREというコンピュータオーディオのメーカーがISO2DSDというソフトを配布しています。このソフトはSONOREのトップページの下の方のSoftwareというところからダウンロードできます。このパッケージのなかにsacd-extractが含まれていて,しかもWindows, MacOS X, Linux版があります。このISO2DSDというパッケージはGUIラッパーであるjavaコードからsacd-extractを呼んでいるだけです。GUIはOSのバージョンが新しくなると使えなくなってしまいますが,sacd-extractをコマンドラインからCUIで使うぶんには問題なく動きます。

sacd-extractはsacd-demonとペアで使うものだと信じて疑っていなかったのですが,コマンドラインから試しにsacd-extract --helpとたたいたら,scarletbookと同じメッセージが出てきましたので,どうやらscarletbookをベースにネットワークアクセスを追加したもののようです。./sacd_extract --helpの出力は下のとおりです。

Usage: sacd_extract [options] [outfile]
-2, --2ch-tracks : Export two channel tracks (default)
-m, --mch-tracks : Export multi-channel tracks
-e, --output-dsdiff-em : output as Philips DSDIFF (Edit Master) file
-p, --output-dsdiff : output as Philips DSDIFF file
-s, --output-dsf : output as Sony DSF file
-t, --select-track : only output selected track(s) (ex. -t 1,5,13)
-I, --output-iso : output as RAW ISO
-c, --convert-dst : convert DST to DSD
-C, --export-cue : Export a CUE Sheet
-i, --input[=FILE] : set source and determine if "iso" image,
device or server (ex. -i 192.168.1.10:2002)
-P, --print : display disc and track information

Help options:
-?, --help : Show this help message
--usage : Display brief usage message

scarletbookでは指定できなかったサーバーのipアドレスがsacd-extractでは指定できるようになっています。同じ--inputオプションですが,scarletbookではisoイメージファイルを指定することしかできませんでした。また,scarletbookでは出力形式としてDSFがデフォルト扱いでオプションを指定しなければDSF形式のファイルが出力されていましたが,sacd-extractでは明示的にファイル形式を指定しないと何も出力されなくなっています。

さらに,sacd-extractの古いバージョンにはなかったトラックナンバーを指定するオプションが追加されています。大きなISOイメージからトラックファイルを抽出する途中でなんらかのトラブルがあって途中で変換が停止したような場合には便利な機能です。また,-cを指定してDSTをデコードする処理がずいぶんと速くなった
ように感じます。

MacOS Xではsacd-extractがあるディレクトリで
./sacd_extract -t 25 -s -c --input=/Volumes/hoge/fuga\ huge\ fura.iso
というように指定すればカレントディレクトリにディレクトリが作成されてDSFファイルが出力されます。MacOS Xはunixなので,ファイル名の空白はバックスラッシュでエスケープしなくてはなりません。

Windowsでネットワークドライブ上のファイルを使う場合はネットワークドライブにドライブレターを割り当てて,ファイルのフルパスをダブルクオーテーションでくくります。この場合は,ファイル名の空白はそのままでエスケープする必要はありません。なんかややこしい...。
./sacd_extract -t 25 -s -c --input="Z:\Volumes\hoge\fuga huge fura.iso"

isoイメージファイルにはどうしても抽出できないトラックが含まれる場合があったりして(isoイメージから直接再生する場合は問題がないのに),いろいろと悩ましいところがあります。

追記(2020/08/01):
sacd-extractでユニバーサルプレイヤーにリモートアクセスしてDSD ISOファイルをローカルディスクに読み込む方法をBDP-S6200の場合について書いています。ただし,SACDのディスクの暗号を無効化して読み出して書き出すことは違法です。リンク先に書かれている内容は,あくまでもできるらしい,という話であって,やって良いということではないので注意してください。

この記事へのコメント

  • 興味本位で

    sacd-extractの-iオプションですが光学ドライブを直接指定して単独で使えないのでしょうか?
    ローカルホストが使えるならそれも可能な気はします。
    私の弄ろうと思っているのはBDPのカーネル2.635ですが光学ドライブが壊れたジャンクを買ったので
    色々検証できるのはまだ先です。
    2018年06月25日 09:39
  • MOR

    興味本位でさん

    全然コメントに気がついていなくてすいませんでした。私はisoファイルを扱ったことしかないため,ローカルホストのデバイスへのアクセスができるかどうかは確認したことがありません。しかし,helpメッセージを見る限りはisoファイル,デバイス,serverと書かれているのでローカルの光学ドライブを直接指定することは可能であるように思えます。

    ただ,その場合,当たり前ですが暗号化されているディスク(SACDディスク)へのアクセスできない(あるいは,してはいけない)のだと思います。
    2018年07月08日 10:40