コマンドラインを使用してcdparanoiaからオーディオCDをリッピングする方法
現在、私たちはデジタルオーディオを読み取ることができるデバイスに囲まれており、Spotifyのような合法的にコンテンツをストリーミングするサービスも多数あります。しかし、物理的なメディア(コンパクトディスク)で音楽を購入することが好きな場合は、オーディオトラックを取り出してスマートフォンやお気に入りのデバイスで使用したり、バックアップ目的で使用したりすることができるようにしたいかもしれません。Linuxには、そのような作業を達成するために使用できるツールがたくさんありますが、ほとんどの場合、それらはcdparanoiaのフロントエンドに過ぎません。このチュートリアルでは、このツールの使用方法を学びます。
このチュートリアルでは、あなたが学ぶことができることは:
- 最も一般的なLinuxディストリビューションにcdparanoiaをインストールする方法
- ドライブ情報を取得する方法
- コンパクトディスクからすべての音声トラックをリッピングする方法
- 特定のトラックやトラックの特定のセグメントをリッピングする方法
- cdparanoiaの出力をflacやlameなどのツールにパイプして音声トラックを圧縮する方法
コマンドラインを使用してcdparanoiaからオーディオCDをリッピングする方法
使用されるソフトウェア要件と規約
インストール
Cdparanoiaは、多くのUnixベースのオペレーティングシステムで動作するコマンドラインのCDリッパーアプリケーションであり、Linuxでも使用可能です。オープンソースで開発されており、非常に正確であることを目指しているため、最高のリッピングを実現します。このソフトウェアは、最も一般的に使用されるLinuxディストリビューションの公式リポジトリにあります。たとえば、Archlinuxにインストールするには、pacmanパッケージマネージャを使用できます(cdparanoiaは「extra」リポジトリの一部です)。次のように実行できます:
sudo pacman -Sy cdparanoia
最近のFedoraのバージョンでは、以下のコマンドを実行することでdnfを通じてインストールできます:
sudo dnf install cdparanoia
Debianおよびその派生ディストリビューションでは、いつものように、apt-getなどの利用可能なパッケージマネージャーの1つを使用できます。
sudo apt-get update && sudo apt-get install cdparanoia
ドライブ情報を取得しています
cdparanoiaを使用する際に最初にやりたいことは、オーディオCDを読み取るために使用しているドライブを分析することです。私たちの作業を達成するためには、-Aオプション(--analyze-driveの短縮版)を使ってアプリケーションを呼び出すだけです。Cdparanoiaはドライブを自動的に見つけることができるはずです。
cdparanoia -A
ドライブの速度と接続の種類によって、上記のコマンドは完了するまでに時間がかかることがあります。アプリケーションは、自動的に使用中のドライブに関する情報を取得し、画面に表示する必要があります。
cdparanoia III release 10.2 (September 11, 2008)
Using cdda library version: 10.2
Using paranoia library version: 10.2
Checking /dev/cdrom for cdrom...
Testing /dev/cdrom for SCSI/MMC interface
SG_IO device: /dev/sr0
CDROM model sensed sensed: Slimtype DVD A DS8A5SH XAA2
Checking for SCSI emulation...
Drive is ATAPI (using SG_IO host adaptor emulation)
Checking for MMC style command set...
Drive is MMC style
DMA scatter/gather table entries: 1
table entry size: 122880 bytes
maximum theoretical transfer: 52 sectors
Setting default read size to 27 sectors (63504 bytes).
Verifying CDDA command set...
Expected command set reads OK.
Attempting to set cdrom to full speed...
drive returned OK.
=================== Checking drive cache/timing behavior ===================
Seek/read timing:
[45:48.06]: 36ms seek, 13.48ms/sec read [1.0x]
[40:00.33]: 35ms seek, 1.30ms/sec read [10.3x]
[30:00.33]: 59ms seek, 25.48ms/sec read [0.5x]
[20:00.33]: 81ms seek, 13.90ms/sec read [1.0x]
[10:00.33]: 70ms seek, 26.06ms/sec read [0.5x]
[00:00.33]: 93ms seek, 26.82ms/sec read [0.5x]
Analyzing cache behavior...
Drive does not cache nonlinear access
Drive tests OK with Paranoia.
CDをリッピングする
CDからトラックを抽出するには、アプリケーションを実行し、-Bまたは--batchオプションを使用します。これにより、CDのすべてのトラックが抽出され、ディスクにtrack#プレフィックスで保存されます。トラックは0から順に名前が付けられます。また、-Xオプションも使用することをお勧めします。このオプションは--abort-on-skipの短縮形であり、このオプションを使用すると、ディスク面の傷などによる不完全さが見つかった場合に抽出プロセスが中断されるようにアプリケーションの動作が変更されます。
cdparanoia -XB
各トラックの抽出の進行状況が画面に表示されます:
cdparanoia III release 10.2 (September 11, 2008)
Ripping from sector 0 (track 0 [0:00.00])
to sector 207144 (track 9 [7:25.49])
outputting to track00.cdda.wav
(== PROGRESS == [ | 000032 00 ] == :^D * ==)
トラックの形式を指定する
デフォルトでは、リッピングされたトラックはユーザーの現在の作業ディレクトリに保存され、.wav拡張子が使用されます。これは利用可能なフォーマットの一つに過ぎず、cdparanoiaはトラックをAIFF、AIFF-C、またはrawフォーマットでも保存できます。これらの代替オプションをどのように指定できますか?私たちが行う必要があるのは、それぞれ-f(--output-aiff)、-a(--output-aifc)、または-p(--output-raw)オプションを使用してプログラムを起動することです。例えば、すべてのCDトラックをAIFFフォーマットでリッピングするには、次のように実行します:
cdparanoia -fXB
特定のトラックまたはトラックの特定の部分のみを抽出する
前の例では、cdparanoiaを呼び出してすべてのCDトラックを抽出しましたが、特定のトラックやトラックの範囲だけを抽出したい場合はどうでしょうか?特定のトラックのみを抽出するのは非常に簡単で、cdparanoiaを呼び出すときにその番号を指定するだけです。たとえば、トラックn.1のみを抽出するには、次のようにコマンドを実行します:
cdparanoia -XB 1
範囲を指定するためには、トラック番号をハイフンで区切ることができます。例えば、2から4までのトラックを抽出するには、アプリケーションをこのように呼び出します:
cdparanoia -XB 2-4
最初のトラックから特定のトラックまで抽出したい場合、後者だけを指定すれば十分です。したがって、最初から第4トラックまでを抽出するには、次のように実行します:
cdparanoia -XB -- -4
Cdparanoiaは、トラックの特定の部分だけをリッピングできるようにしてくれます。使用する構文は非常にシンプルです:リッピングするトラックを指定し、その後に角括弧の中で詳細なオフセットを指定します。
1[ww:xx:yy.zz]
ここで、wwは時間、xxは分、yyは秒、zzはリッピングするセクターを表します。フィールドが0の場合は指定する必要はありません。具体例を見てみましょう。アルバムの最初のトラックの分5:37から分5:45までを抽出したいとしましょう。その場合、cdparanoiaを次のように呼び出します:
cdparanoia -XB 1[5:37]-1[5:45]
トラックをエンコードする
Unixの哲学「一つのことをしっかりやる」を尊重し、cdparanoiaはogg、mp3(ロスレス)、またはflacなどの圧縮フォーマットで抽出したトラックをエンコードすることにはこだわりません。しかし、そのようなエンコードを行うことは、適切なツールを使用すれば非常に簡単です。cdparanoiaはトラックを標準出力に直接リッピングする機能を備えているため、他のプログラムを介して変換を行うことができます。例えば、トラックを保存し、flacエンコーダを使用してflacに変換したい場合、次のように実行します:
cdparanoia -X 1 - | flac - -o track01.flac
上記のコマンドでは、抽出するトラック番号を指定し、プログラムにそのストリームを標準出力(stdout)に直接送るよう指示するために-記号を使ってcdparanoiaを呼び出します。次に、cdparanoiaの出力をflacエンコーダーの標準入力として使用するためにパイプを使いました。後者がその標準入力から読み込むよう指示するために再び-記号を使用し、その後-oオプションを使って最終ファイルに使用する名前を指定しました。
.mp3形式でファイルを圧縮するには、代わりにlameアプリケーションを使用できます。次のように実行します:
cdparanoia -X 1 - | lame -b 320 - track01.mp3
cdparanoiaの出力をlameアプリケーションにパイプしました。これはmp3オーディオファイルを作成するために使用されます。mp3はロスのある形式なので、後者の-bオプションを使用して固定ビットレート320kbpsを指定し、再び-記号を使用してアプリケーションに標準入力から読み取るよう指示しました。最後に、前の例と同様に出力ファイルの名前を提供しました。
抽出したトラックを.ogg形式にエンコードするには、vorbis-toolsスイートの一部であるoggencアプリケーションを使用できます。次の例では、平均ビットレートとして256 kbpsを指定し、出力ファイル名をtrack01.oggとすることで音声をエンコードします:
cdparanoia -X 1 - | oggenc - -b 256 -o track01.ogg
結論
このチュートリアルでは、cdparanoiaアプリケーションを使用してオーディオCDをリッピングする方法を学びました。コンパクトディスクからすべてのオーディオトラックを抽出する方法、特定のトラックや特定のトラックのセグメントだけを抽出する方法について学びました。デフォルトではcdparanoiaはトラックを.wav形式で抽出しますが、他のユーティリティを使用してアプリケーションの出力を圧縮し、ストリームをそれぞれ.flac、.mp3および.ogg形式にエンコードする方法を学びました。
