gripでオーディオCDをHDDに取り込む/wav mp3 ogg lame oggenc

(CD/DVD再生ができない場合は、まずこちらを
 →一般ユーザーでのCD/DVD再生

音楽CDをそのままの音質でwav(ウェブ/ウェーブ/WAVE)ファイル として書き出したり(リッピング)、mp3やOgg Vorbis(オッグ・ボルビス/オッグ・ボービス)に圧縮・変換(エンコード)したりするツールには様々あるが、そのひとつgripについて。

gripは、手書きしなければならない設定項目がいくつかあるのでとっつきにくい部分もあるが(初期設定のまま使ってもよい)、そのぶん融通も効く(と思う)。いまどきは、この手のツールでは何が一般的に使われているのかは知らない。

以下、設定方法など。

準備

エンコーダ

まずは、Ogg Vorbisやmp3を作成するエンコーダを用意する。

Ogg Vorbisの場合は、

apt-get install vorbis-tools

mp3の場合は、Vineでself-buildパッケージとして用意されているlameをインストールする。

apt-get install self-build-lame

保存ディレクト

wavファイルとogg/mp3ファイルを保存するディレクトリがない場合は用意する。wavファイルを保存する場合は(しなくてもよい)、CD1枚で最大700MBになるのでそれに耐えるサイズのスペースが必要。mp3でも、元ファイルの10分の1程度のサイズにできるとはいえ、数が増えればそこそこのサイズになる。wavファイルを保存しない場合も、wavファイルは一旦HDDに保存され、ogg/mp3作成後に削除される(RAMディスクが使える場合は、wavファイルは一旦RAMディスクに置いてもいいだろう)。

gripの初期設定では、どちらも「~/mp3/」以下に保存されるようになっているが、それでは後々ややこしいことになる可能性が高いので、それぞれ別にすべく「どこか/music/wav」や「どこか/music/mp3」などのディレクトリを作っておいてもよい。

なお、wavファイルとogg/mp3ファイルの保存先を別にした場合、wavを保存しない設定にすると、wavファイルはogg/mp3作成後削除されるが、中身が空になったディレクトリは削除されないので手作業で削除する必要がある(おそらく)。wavファイルをRAMディスクに置く場合は、シャットダウンすればRAMディスクの内容は失われるので、その手間はいらない。

wavとogg/mp3は、保存される際にそれぞれ「どこか/アーチスト名/アルバム名/曲名.wav|.ogg|.mp3」と自動的にディレクトリとファイルが作成される(ネット上のCDデータベース/CDDBにデータがないCDは自動的にはそうならないので、取り込む際にデータを手書きする必要がある)。

gripの操作方法

gripの操作ビデオ

アルバム全曲をリッピングしてエンコード(一括作成)する場合。


(デスクトップ録画/キャプチャ・ツール「xvidcap」の練習も兼ねて、gripの操作を録画してみた。音楽はYouTubeに用意されているものを使用)

なお、gripはCDプレーヤーとしての機能もあるが、音を出すにはCD/DVDドライブのアナログ音声出力がマザーボードとケーブル接続されている必要がある(いまどきは接続されていない場合が多い)。

設定のキモ

(grip-3.3.1の例)

■「設定」>「切り出し」>「切り出し」

→「切り出しツール」

事前に「cdparanoia」と「cdda2wav」がインストールされていること。

apt-get install cdparanoia cdrtools-cdda2wav

「cdparanoia」がいいか「cdda2wav」がいいかは、やりたいこととそれぞれのCDドライブとの相性によって決める。それぞれの音質に関しては、違いがあるのかどうかも知らないが、気にならないのでとりあえず無視。

「cdparanoia」は、データのエラー訂正に優れているとされており、より確実なリッピングに力を発揮する一方で、そのぶんリッピング速度が犠牲になる(エラー訂正機能を無効にすることも可能)。すぐに手元からなくなるCDを確実にリッピングしたいときや「cdda2wav」では音飛びが防げない場合には「cdparanoia」を使う。

もし音飛びが起こっていても再度リッピングできる場合など、慎重になる必要のない場面では、「cdparanoia」に「-Z」オプションを付けてデータ照合と訂正機能を無効にすることでリッピング速度を上げることができる。

「cdparanoia -Z」と「cdda2wav」のどちらが速いかは、ドライブとの相性で決まるらしく試してみるしかないらしい。またリッピング速度は、この設定画面のタブ「オプション」にある「優先度(nice値)」の設定によっても変わる(後述)。

→オプション

「cdparanoia」を選んだ場合、必要に応じてここで「-Z」オプションを付ける。

-Z -d %c %t:[.%s]-%t:[.%e] %w

→ファイルの書式

初期設定では「~/mp3/%A/%d/%n.wav」となっているので、好みによって「~/mp3/」の部分を自分の用意した.wavファイル保存用のディレクトリに変更。「どこか/music/wav」など。ここは手書きなので、間違わないように注意。

ディレクトリの後に続く呪文は、リッピング時に自動的に付加される項目で、好きなように変更できる。

リッピング関連の主なパラメータ】

%A
CDのアーティスト名
%d
CDのタイトル
%t
トラックナンバー(CD内の何曲目かの番号)
%n
曲名

「/」はディレクトリとなるので、たとえば設定を「どこか/%A/%d/%t_%n.wav」とすることで、指定したディレクトリ内に「アーティスト名/CDのタイトル/」というディレクトリが自動的に作成され、その中に「01_曲名.wav」などというファイルが作成される。「%t_」があれば、ひと目で曲順がわかり、また作成されたファイルを簡単に曲順に並べることが可能。この設定例では「%t」のあとの「_」(アンダースコア/アンダーライン)で曲順と曲名を区切って見やすいようにしている。後々ファイルの扱いが面倒なことになる可能性があるので、ファイル名にスペースを入れてはならない。

■「設定」>「切り出し」>「オプション」

→優先度(nice値)

(「nice」については、@IT: Linux Tips: プログラム実行の優先度を変更するには)

nice値は「-20〜20」の数値で指定し、数値が低いほど優先度が高い(ので混乱しやすい)。デフォルトは「0」。優先度を上げるとリッピング速度が劇的に増すことがある。が、一般的には、nice値をマイナスにする(優先度を上げる)ことができるのはrootだけか(未検証)。

nice値を上げることができる場合も、優先度を上げすぎるとシステム全体の動作がにぶるので、ほかの作業に影響が出ない程度に様子を見ながら数値を調整。

デフォルトのnice値「0」の指定で、gripの動作中にほかの作業に影響が出る場合は、様子を見ながら優先度を下げる(数値を上げる)。

■「設定」>「エンコーダ」>「エンコーダ」

→「エンコーダ」

mp3なら「lame」、Ogg Vorbisなら「oggenc」を選択。

設定部分には選択肢がいろいろあるが、エンコーダは自分でインストールする必要があるので、選択肢にあるものでもインストールしていないものは使えない。

mp3とOgg Vorbisのどちらの音質が優れているかは、各所で熱い議論が繰り広げられているが(いまはそうでもないか)、その差が聞き分けられるほどの耳も再生装置も持っていないので、ひとまず気にしない。

PC以外で自分が持っている再生装置がOgg Vorbisには対応していないがmp3には対応している場合(よくあること)は、mp3を選ぶしかない。また、圧縮ファイルに対応したオーディオ家電でmp3に対応していないものはまれなので、mp3にしておけば将来的にも間違いない(単体のDVDプレーヤーの多くはCD/DVDディスクに焼いたmp3ファイルの再生にも対応しているなど)。さらに、誰かにファイルを渡す場合も、相手がOgg Vorbisを再生できないことや再生できる環境を自力で作れない可能性のほうが高いので、mp3なら間違いない。

どうせならライセンスがグレーのmp3ではなく気持ち良くフリーのソフトを使いたい、という場合はOgg Vorbisを選択。ただし、Ogg Vorbisは汎用性が低いので、将来後悔することもかなりの確率であり得る。なお、ここで使うmp3のエンコーダ「lame」もフリーソフトGNU LGPL)として開発・配布されているものなので、フリーかどうかというのは意味がない判断基準かもしれない。

→「ファイルの書式」

上述のwavファイルの「ファイルの書式」と同じようなこと。

エンコード関連の主なパラメータ】

%A
CDのアーティスト名
%d
CDのタイトル
%t
トラックナンバー(CD内の何曲目かの番号)
%n
曲名
%x
拡張子(すぐ上の「ファイルの拡張子」の項目で指定された文字列が自動的に入る)

設定例「どこか/%A/%d/%t_%n.%x」。

→「コマンドライン引数」

oggenc/lameの、とりわけlameの音質を決めるためのコマンドライン・オプションの適切な指定に関しては、なぜか諸説あり、また「音質」「音の良し悪し」に関する議論の常として、これもまたある種の人たちの心を過剰に揺さぶってしまうようで、ときに激論に発展するほど暑苦しい事態になっているようだが、そこそこのことができればいい程度のことしか考えていない横着な者が実際どうすればいいのかは、いまだによくわからない。またオプションは、バージョンによっても違う。なので、ここに書いてあることは、あくまでもそこそこのことができればいい程度のことしか考えていない横着な者が書いたざっくりしたメモでしかない。

→「コマンドライン引数」oggencの場合

初期値

-o %m -a %a -l %d -t %n -b %b -N %t -G %G -d %y %w

-b %b(ビットレート」による設定は、oggencでは推奨されていないようなので、「-b %b」の部分を削除して、「-q n」(--quality)というオプションを使うことにする。

「-q n」の「n」には「-2〜10」までの数値が入り、数値が大きいほど音質は良くなり、ファイルサイズが大きくなり、エンコードに時間がかかる。また、エンコードにかかる時間は、CPUパワーに大きく依存する。

「-q n」設定については、Recommended Ogg Vorbis: Recommended Encoder Settingsを参照。

音楽の場合、ビットレートは 128k〜320K あたりが適切とされ、192k以上が推奨といったところか。よってHDDの空き容量に余裕があるなら、「-q 6」から「-q 8」くらいがいいだろう。HDDが大容量化していることを考えると「-q 8」ではなく、わざわざ「-q 6」することの意味はほとんどないとも言えるので、ここは「-q 8」でいいのではないか。ただし、容量が小さなデバイス、たとえば容量が小さな携帯デジタル・オーディオ・プレーヤーなどを使いたい場合はファイルサイズは切実な問題となってくるので、微調整にも意味はある。

なお、oggencでは、可変ビットレートVBR/ABR)を使うので、設定はビットレートの数値の決め打ち(固定ビットレート/CBR)にはならない。そのため「-q n」と設定した場合、「-q 8: ~256 – ~320」などと幅がある。固定ビットレートの場合は、常に同じビットレートエンコードされるが、可変ビットレートの場合は、データの内容に応じて(その瞬間の音を分析して)、ひとつのファイルの中で自動的にビットレートが高くなったり低くなったりする。すなわち、高ビットレートが必要とされる瞬間には高ビットレートとなり、どうでもいい瞬間にはビットレートを下げる。よって、可変ビットレートのほうが固定ビットレートより小さなファイルサイズで、より高音質になるとされている。

設定例。

-q 8 -o %m -a %a -l %d -t %n -N %t -G %G -d %y %w

「-q n」とともに、「-m n」で最低ビットレートを「-M n」で最高ビットレートも指定できる。

詳しくは、OggEnc2.3コマンドラインオプション

→「コマンドライン引数」lameの場合

前述のように、lameコマンドライン・オプションの設定方法には様々あり、また何が適切かについても諸説あり、さらにバージョンによっても設定方法が違うので、なかなかにややこしい。

ここでは、lemeでもoggencと同じく可変ビットレートを使うことにする。

lameには、可変ビットレートを実現する方法として「--vbr-old」と「--vbr-new」があり、「--vbr-new」のほうが倍ほども早いらしい。となると「--vbr-new」を使いたくなるのが当然だが、lame 3.97の「--vbr-new」にはバグがあるとの情報がある。本当にすべての3.97にそのバグがあるのかどうかは、よくわからない。lame 3.97には、これ以外の重要なバグ情報もある。Vine5のパッケージのlameは、何か事情があるのか、なぜか3.97。2009年9月26日、Vine5のlameは3.98.2にバージョンアップされた。「lame」コマンドの結果が「version 3.97」の場合は、「apt-get update」してから「apt-get upgrade 」。

以下、lame 3.98.2の場合の設定。

lameの「コマンドライン引数」のデフォルトは、

-h -b %b %w %m

まずは、「-h -b %b」を削除。

音質は、「-Vn」という指定方法の「n」の数値で決めることにする。「n」には0〜9までの数値が入り、数値が低いほど音質が良くなる(oggencとは逆)。「-Vn」の設定について詳しくは、LAME: Recommended encoder settingsを参照。

音楽の場合、「n」は0〜2あたりが適切。とりあえず、「-V0」にする。

なお、lame 3.98.2のデフォルトは「--vbr-new」らしいので、3.98.2の場合「--vbr-new」は不要(あってもかまわない)。

さらに、無闇に低いビットレートを使わないように、強制的に「-b」オプションで指定した数値以上のビットレートを使うためのオプション「-F」を付けて「-b n」で最低ビットレートを指定する。「n」には、160、192、256などの数値を入れる。160でもじゅうぶんかと思われるが、好みで256などにしてもよい。当然、最低ビットレートを高くすると、そのぶんファイルサイズが大きくなる。

さらに、よくわからないがエラープロテクションのためらしい「-p」オプションを付加し、これまたなんのことだかわからない「経時マスキングを使用しない」というオプション「--notemp」も付けるものらしいので、それも付加。

lameのヘルプコマンド「lame --longhelp」に記載されている、「Noise shaping & psycho acoustic algorithms」にある「-q n」オプションもなんのことだかわからないが、設定しておいたほうがいいのかもしれないと「-q 0」としてエンコードしてみたが、指定しない場合との違いがわからず。付けても損はなさそうなので、一応付けておくことにする。

設定例

-V0 -F -b160 -q0 --notemp -p %w %m

各所で推奨されているが、これまたよくわからないオプション、「--interch」(チャンネル間マスキングの指定)は、推奨される数値が諸説入り乱れていて検証が面倒なので、ここではひとまず気にしないことにする。気になる場合は、「lame interch」などで検索。同じく、各所で推奨されている「-k」や「--nores」オプションは、lame 3.98.2では廃止されているので使用しない。


■「設定」>「エンコーダ」>「オプション」

→「完了後に.wavファイルを削除する」

CDの音質のままHDDにデータを残したい場合、いずれCDをコピーする場合、CDをバックアップしておきたい場合などは削除しない。CDの寿命には十数年から数十年まで様々な説があるが、いずれ寿命がくることは間違いなく、大事なCDはバックアップしておくに越したことはない。ただし、HDDの空き容量次第。必要に応じて、wavファイルを残したり削除したりと使い分けてもいい。

一旦mp3やoggにしたものをwavに再変換して、一般的なCDプレーヤーで再生できるオーディオCDとして焼くことも可能だが、その際、元の音質は復元できないので注意。

→「SQLデータベースに追加する」
→「.m3uファイルを作成する」
→「.m3uファイルの中に関係するディレクトリを使用する」

これは、gripが自動的にプレイリストを作ってくれる機能。プレイリストは各種プレーヤー側で作成するのが一般的なので、すべてチェックをはずして無効にしておく。

→「ビットレート

ここで設定する数値は、ogg/mp3の音質を決めるためのものだが、前述のようにoggenc、lameともに、音質に関する設定は、ひとつ前の「エンコーダ」>「エンコーダ」の「コマンドライン引数」(引数=オプション)のところで直接手書きで設定したほうが適切な設定ができる。その方法で設定する場合は、ここの数値は無視されるのでここに何が書いてあっても構わないし、書いていなくても構わない。lameで何か事情があってわざわざ固定ビットレート(CBR)にしたい場合は、ここで設定する。音楽の場合、この数値は、128、160、192、256、320のいずれかが適当。

→「使用するCPUの数」

「使用するCPUの数」とは、物理的なCPUの数ではない模様。いまどきのCPUならば(マルチスレッド対応のCPU)、ここにエンコードを同時進行したい数値を入れておけば複数のファイルのエンコード作業を同時進行できる。が、そうするとCPUパワーを分散することになるので、実際にこれで全体のエンコード時間を短縮できるのかどうかはよくわからない。ここは、エンコード作業時間を短縮すべく、リッピング速度との兼ね合いで、CPUが遊んでいることがないように設定するしかないということか。リッピングがさっさと進んでいるのに、エンコード開始待ちの行列ができているようなら、ここに「2」や「3」などの数値を入れて試してみる。この設定は、gripの再起動後に有効となる。

lameが作業を同時進行すると音質が悪くなるとの情報もあるが、それがどれほどの音質悪化を招くのか、また現状ではどうなのかはわからない。そもそもlameがマルチスレッドに対応するようにコンパイルされているだけで音質低下を招くとの情報もあるが、これもよくわからない。とりあえず、気にしないことにする。

→[優先度(nice値)]

wavの「優先度(nice値)」を参照。

■「設定」> 「ID3」


  • ID3v2タグを追加する」を有効に(チェックを入れる)。
  • 拡張子が.mp3の場合にのみタグをつける」を無効に(チェックをはずす)。これを無効にすると、oggの場合にもID3タグ的なものをファイルに付加することができる。
  • ID3v2タグの文字エンコーディング」は、「UTF-8」。

なおここで「UTF-8」にしても、amarokでは日本語のタグが文字化けする。日本語タグは、ID3タグ編集ツール「easytag」にて「UTF-8」から「UTF-8」に変換するという、なにが起きているのか理解できない作業をしなければならない。

 →「easytag」については、別にメモする予定。

■ 「設定」> 「DiscDB」

→「DBサーバ」

CDのデータを取得するための、ネット上にあるCDのデータベースのURLを指定する。

ネット上のCDDBには、フリーのデータベースがいくつかある。フリーのCDDBは有志によってデータが登録されるので、気が向いた誰かが登録しない限りはデータはない。これは親切によって成り立っているシステムなので、データがなくても、あるいは登録者がデータ入力を間違っていても、ユーザーが憤慨すべき筋合いのものではない。LinuxCDDBへデータをアップロードするプログラムがあるのかどうかは不明。gripにはずっと以前からそれができるかのようなボタンや設定が用意されているが、実際はできないと思われる(何か方法があるのかもしれない)。

  • freedb.freedb.org
  • freedb2.org
  • freedbtest.dyndns.org

日本版のCDは、「freedbtest.dyndns.org」のデータベースが充実していると言われている。

gripは、まず「プライマリ」のサーバに接続して、そこにデータがなければ「セカンダリ」のサーバに接続する。複数候補があっても、gripでは選択できない(たぶん)。

CDDBから取得されるデータを見ながら、自分のCDの傾向に合わせて、「プライマリ」と「セカンダリ」のサーバを指定すればよい。

ネットから取得したCDDBデータは、「~/.cddb」以下に保存される。gripは、同じCDを読み込んだ場合、次回以降ここからデータを読み出す。データを破棄したいときは、「~/.cddb」から該当するファイルを探して削除する。

gripで手作業でID3タグを編集したデータを保存したい場合は、ウインドウ下方の「ディスク情報の保存」ボタン(下の画像の赤丸)をクリックして保存(gripがCDDBから自動的取得したデータを上書き)する必要がある。保存しておかないと、次回同じCDをgripで読み込んでも自分で編集したデータは反映されない。保存を忘れると後悔することになるので注意。


■ 「設定」> 「その他」

→「E-Mailアドレス」

デフォルトのまま。

→「ファイル名に日本語(EUC-JP)を使用する

有効にする(チェックを入れる)。「EUC-JP」となっているが、実際は日本語ファイル名は「UTF-8」になっているような気がする。

→「空白をアンダーバーに変換しない」

無効にする(チェックを入れない)。ファイル名にスペースが含まれると、後々コマンドラインで処理する場合などに面倒なことになる。これを無効にすると、スペースがアンダーバーになる。

その他

  • なぜか、gripではID3タグの「年」に記載があっても実際には反映されない。必要に応じて、amarokであとから追加する。
  • ID3タグは、gripで編集できる項目以外にもいろいろとある。それらは、amarokやeasytagで編集できる。easytagを見れば、どんな項目があるかはわかる。


grip関連で参考になるサイト

andy