cdparanoia

オーディオ CD 読み取りユーティリティ。特別なデータ照合機能を持つ。

cdparanoia (Paranoia release III) - オーディオ CD 読み取りユーティリティ。特別なデータ照合機能を持つ。
バージョンIII リリースα9.8 (02 Mar 2001)
cdparanoia [ options ] span [ outfile ]
cdparanoia は CD-DA 機能を持つ CD-ROM ドライブからオーディオトラックを取り出します。 このデータは WAV, AIFF, AIFF-C, raw 形式でファイルにセーブすることや、 標準出力に送ることができます。 ほとんどの ATAPI, SCSI, メーカー独自の CD-ROM ドライブがサポートされています。 cdparanoia は対象のドライブが CD-DA 機能を持っているかどうかを判別できます。 単純な読み取りだけでなく、 cdparanoia は特別に頑健なデータ照合機能、同期機能、エラー処理機能、破損データの再 構成機能を持っています。

-v --verbose
自動検出と読み取りの処理について、ばかばかしいほど詳細な表示を行います。 設定やデバッグの際に便利です。

-q --quiet
読み取り処理の途中に、進行状況やエラー情報を全く表示しません。

-e --stderr-progress
進行状況を (ラッパスクリプトのために) 標準エラー出力に出力します。

-V --version
プログラムのバージョンを表示して終了します。

-Q --query
CD-ROM ドライブの自動検出、CD-ROM の TOC の問い合わせと表示を行い、 終了します。

-s --search-for-drive
たとえ /dev/cdrom のリンクが存在していても、CD-ROM ドライブの完全な 検索を行います。

-h --help
cdparanoia の使い方とオプションを簡単な説明を出力します。

-p --output-raw
ヘッダ無しのデータをホストのバイト順で、インタリーブ処理を施した サンプル音声を含む raw 形式の 16 ビット PCM データとして出力します。 バイト順としてリトルエンディアンあるいはビッグエンディアンを指定するには、 後述の -r または -R オプションを使ってください。

-r --output-raw-little-endian
ヘッダ無しのデータを LSB first のバイト順で、インタリーブ処理を施した サンプル音声を含む raw 形式の 16 ビット PCM データとして出力します。

-R --output-raw-big-endian
ヘッダ無しのデータを MSB first のバイト順で、インタリーブ処理を施した サンプル音声を含む raw 形式の 16 ビット PCM データとして出力します。

-w --output-wav
データを Micro$oft の RIFF WAV 形式で出力します (WAV データのバイト順は必ず LSB first である点に注意)。

-f --output-aiff
データを Apple の AIFF 形式で出力します (AIFC データのバイト順は必ず MSB first である点に注意)。

-a --output-aifc
データを無圧縮 の Apple AIFF-C 形式で出力します(AIFF-C データのバイト 順は必ず MSB first である点に注意)。

-B --batch
cdda2wav 形式のバッチ出力を行います。cdparanoia は出力をトラック境界で 複数ファイルに分割します。出力ファイルのファイル名の先頭部分は、'track(番号)' となります。

-c --force-cdrom-little-endian
一部の CD-ROM は間違ったエンディアンを報告します (あるいはエンディアンに関する情報を全く報告しません)。 そのため、cdparanoia がエンディアンを間違えることがあります。 ドライブをリトルエンディアンのデバイスとして cdparanoia に扱わせるには、 -c オプションを使います。

-C --force-cdrom-big-endian
前のオプションの逆で、デバイスをビッグエンディアンのデバイスとして cdparanoia に扱わせます。

-n --force-default-sectors n
インタフェースのバックエンドが行う最小単位の読み取りを、 1 回の読み取りごとに n セクタとします。 この数は問題を起こすおそれがあります。 カーネルは多くの場合、読み取り要求を複数個の最小単位の読み取りに分割するか (cdparanoia による自動処理はこれに対応しています)、 制限された大きさの範囲でしか読み取りを許可しません。 普通はこのオプションを使うべきではありません。

-d --force-cdrom-device device
インタフェースのバックエンドによる読み取りを、 最初に見つけた読み取り可能な CD-ROM ドライブではなく、 指定した device から行うようにします。 このオプションでは、利用可能である任意のインタフェース (ATAPI, SCSI, メーカー独自) を持つデバイスを指定することができます。

-g --force-generic-device device
このオプションは、SCSI CD-ROM と汎用デバイスの設定を 明示的に別々に制御したい時に -d オプションと組み合わせて使います。 このオプションが役立つのは、SCSI の設定が標準と異なる場合だけです。

-S --force-read-speed number
CD ドライブからの読み込み速度を設定するには、このオプションを明示的に 使ってください (ドライブが対応している場合)。このオプションを用いると、 ディスクが遅い場合やメモリが少ない場合に起こるアンダーランを減らすこと ができます。

-t --toc-offset number
ディスク全体の LBA アドレスを指定した値だけシフトさせるには、 このオプションを使って下さい。 この値は TOC の開始オフセットに加算されます。 このオプションを使うと、ディスク全体のトラック境界を セクタ単位でシフトすることができます。 次のオプションも同じような動作をします。

-T --toc-bias
あるドライブ (たいてい Toshiba 製) は、 TOC の実際のトラック開始オフセットの値を表示するにもかかわらず、 全ての読み取り操作においてトラック 1 の先頭のインデックス 1 を セクタ 0 として扱います。 そのため、全てのトラックで開始が非常に遅く感じます (トラックの先頭が少し消えて、次のトラックが少し入ってしまいます)。 -T オプションはこのような挙動を解消します。 このオプションを使うと、cdparanoia は ディスク上の既知のユーザーデータエリアの前後のセクタを読み取ろうとします。 多くのドライブにおいてディスクの端での読み取りでエラーが起こり、 バグのあるハードウェアでは、ハードウェア的に固まってしまうこともあるので 注意して下さい。

-O --sample-offset number
ディスク全体について、指定した値の分だけサンプル位置出力をシフトさせるには、 このオプションを使って下さい。 このオプションを使うと、ディスク全体のトラック境界を サンプル単位でシフトすることができます。 このオプションを使うと、cdparanoia は ディスク上の既知のユーザーデータエリアの前後のセクタを一部読み取ろうとします。 多くのドライブにおいて読み取りエラーが起こるかもしれず、 バグのあるハードウェアでは、ハードウェア的に固まってしまうこともあるので 注意して下さい。

-Z --disable-paranoia
データ照合と訂正機能を 全て 無効にします。-Z オプションを用いると、cdparanoia は オーバーラップの設定が 0 である cdda2wav と全く同じようにデータの 読み取りを行います。 このオプションを指定すると -Y オプションも有効になります。

-z --never-skip[=max_retries]
スキップしません。 必要ならば永久に再試行します。 オプションとして再試行の最大回数を指定できます。 現在のところ、デフォルト (-z オプションがない場合) の 再試行の回数は 20 回です。

-Y --disable-extra-paranoia
読み取ったデータの中間におけるデータ照合を行いません。 つまり、データの読み取り境界における オーバーラップ部分のチェックしか行いません。 チェックしているオーバーラップ部分でエラーが起こった場合は、 分割することができます。 このオプションは推奨しません。

-X --abort-on-skip
不完全なデータや傷などで読み取りがスキップされた場合、 そのトラックの読み取りを中止します。 ファイルへの出力の場合、部分的にしか完成していないファイルは削除されます。
:-) 正常動作。ジッタは少ないか、全くない
:-| 正常動作。ジッタは許容範囲
:-/ 読み取りでドリフトが発生
:-P 最小単位の読み取り操作において、報告されていない損失がストリーミングにある
8-| 繰り返して読み取りを行ったが、同じ位置で問題が起きた。修正は困難である
:-0 SCSI/ATAPI のデータ転送エラー
:-( 傷が検出された
;-( データの訂正をあきらめた
8-X 既知の訂正できないエラーにより、読み取りが中止された
:^D 読み取り終了
<スペース> 訂正は不要
- ジッタの訂正が必要
+ 報告されていない損失がストリーミングにある。 あるいは別のエラーが読み取り時に発生した
! ステージ 1 訂正の後にエラーが見つかった。 読み取りを複数回繰り返しても同じエラーが発生し、 cdparanoia はそのエラーをうまく検出できない。
e SCSI/ATAPI のデータ転送エラー (訂正済み)
V 訂正できないエラー/データのスキップ

引き数 span は、読み取りを行うトラックまたはトラックの一部を指定します。 この引き数は必ず必要です。 注意: span が単なる数字でなければ、シェルが引き数 span を 展開してしまわないようにクォートするのが普通でしょう。 引き数 span は、単なるトラック番号か、 オフセットとスパンの組合せの指定となります。 オフセットとスパンの組合せを指定する方法は、だいたい以下のようになります: 1[ww:xx:yy.zz]-2[aa:bb:cc.dd] ここで 1 と 2 はトラック番号です。 角括弧の中の数値は、指定されたトラックにおける、より細かいオフセット指定です。 [aa:bb:cc.dd] は [時間:分:秒.セクタ] の形式です。 値が 0 であるフィールドは指定しなくても構いません。 つまり [::20], [:20], [20], [20.] 等は 20 秒と解釈され、 [10:] は 10 分と解釈され、[.30] は 30 セクタと解釈されます (75 セクタで 1 秒です)。 オフセットを 1 つしか指定しなければ、これは開始位置のオフセットを表し、 吸い出しはそのトラックの終わりまで行われます。 オフセットが 1 つだけあり、その前後にハイフン (-) がある場合には、 省略されているオフセットはディスクの先頭あるいは末尾として解釈されます。 例を以下に示します:
1:[20.35]
トラック 1 の 20 秒、35 セクタの位置から、 トラック 1 の末尾までを吸い出します。
1:[20.35]-
1[20.35] の位置からディスクの末尾までを吸い出します。
-2
ディスクの先頭からトラック 2 まで (トラック 2 も含みます) を吸い出します。
-2:[30.35]
ディスクの先頭から 2:[30.35] の位置まで吸い出します。
2-4
トラック 2 の先頭からトラック 4 の末尾までを吸い出します。 繰り返しになりますが、角括弧および単語の先頭にあるハイフンは 必ずクォートして、シェルに展開されないようにしてください。

クォートも含めた指定例をいくつか示します:
ドライブの調査だけを徹底的に行い、自動検出の結果を全て報告します:
cdparanoia -vsQ
ディスク全体を吸い出します。それぞれのトラックは別々のファイルにします:
cdparanoia -B
トラック 1 の時刻 0:30.12 から時刻 1:10.00 までを吸い出します:
cdparanoia 1[:30.12]-1[1:10]
ディスクの先頭からトラック 3 までを吸い出します:
cdparanoia -- -3
上記の -- は、オプションフラグと -3 を区別するためのものです。

出力ファイルを指定する引き数は省略可能です。 指定されていなければ、cdparanoia はサンプル音声を cdda.wav , cdda.aifc , cdda.raw のいずれかに出力します。 どのファイルに出力されるのかは、オプション -w , -a , -r , -R のうちいずれを使うかによって決まります (何も指定しなければ -w がデフォルト値です)。 出力ファイルを指定する引き数が - ならば、出力は標準出力に対して行われます。 どのデータ形式でもパイプに送ることができます。
cdparanoia の基となったのは Heiko Eissfeldt さん (heiko@colossus.escape.de) が作成した 'cdda2wav' パッケージであり、 以前は cdparanoia のインタフェースの大部分は cdda2wav からもらってきたものでした。 cdda2wav がなければ、cdparanoia が作られることはなかったでしょう。 Joerg Schilling さんが作成した汎用 SCSI データ転送ライブラリから、 SCSI の専門知識を多く学ばせていただきました。
Monty <monty@xiph.org> cdparanoia のホームページは以下の場所にあります: http://www.xiph.org/paranoia/