FreeBSD QandA 745

FreeBSD QandA

Q. FreeBSD で音楽 CD の曲データ (CD-DA) を CD-ROM, PD ドライブを用いて
   取り出せますか?

A. ドライブの機種に依存しますが、次の様な方法があります。最近のドライブで
   はほとんど問題ないと思われますが、一部の古いドライブなどでは不具合が報
   告されています。
   また、以下で説明する手順を個別に行なうよりも、最後に触れている abcde
   や ripit のようなツールを使う方が楽でしょう。

   1. ATAPI CD-ROM

    a) FreeBSD 4.3-RELEASE 以降を使っている場合

      もはや特別なソフトウェアは不要です。読み出し時の block size を
      2352 bytes に指定してコピーするだけです。

      4.X-RELEASE 系列では、必要とするトラック番号までのデバイススペシャ
      ルファイルを作っておく必要があります。次の例は 50 トラック (t50) と
      しています。

        # cd /dev; ./MAKEDEV acd0t50

      5.0-RELEASE 以降では、devfs が自動的にデバイススペシャルファイルを
      生成します。

      CD メディアをドライブにセットしたら、OS に目次を読み込ませます。
      ついで、どのトラックを吸い出そうとしているのか確認します。
        % cdcontrol -f /dev/acd0c info

      吸い出したいトラック番号を # とすると、以下のコマンドで raw データ
      がファイル track#.raw に吸い出せます。
        % dd if=/dev/acd0t# of=track#.raw bs=2352

      後は、好きな順番に並び替えて My best CD を cdrecord や burncd で
      焼くも良し、MP3 にエンコードするも良し。
        % gogo -nopsy -offset 0 track#.raw

      WAV 形式で保存するのであれば、適切な 44Byte のヘッダを付けなければなり
      ません。
      ヘッダには、サンプリング周波数,長さその他各種の情報が格納されています。

       AFsp (ports/audio/afsp) を利用した場合の例:
        % CopyAudio -t noheader -F WAVE -P 'integer16, 0, 44100, native, 2, default' track#.raw track#.wav

       sox (ports/audio/sox) を利用した場合の例:
        % sox -s -c 2 -w -r 44100 -t raw track#.raw track#.wav

    b) cdda2wav (ports/sysutils/cdrtools) を使います。
        <URL:http://www.fokus.gmd.de/research/cc/glone/employees/joerg.schilling/private/cdrecord.html>
       ATAPI CD-ROM の場合はオプションで -I cooked_ioctl とすると
      よいでしょう。

    c) dagrab (ports/audio/dagrab) を使います
        <URL:http://web.tiscali.it/marcellou/dagrab.html>

      ただし、一部の CD-ROM ドライブにおいて dagrab を用いて取り出しを行うと、
      出力にノイズが混じるという事例が報告されています。


   2. SCSI CD-ROM

    a) tosha (ports/audio/tosha) を使います。

    b) ATAPI CD-ROM と同様、SCSI CD-ROM でも cdda2wav (ports/sysutils/cdrtools)
       が使えます。


   3. SCSI PD

      松下 LF-1000 では tosha-0.6 に以下のパッチが必要です。

       ---ここから---
       *** tosharc  Wed Jan 13 15:37:42 1999
       --- tosharc  Mon Jan 18 22:24:51 1999
       ***************
       *** 66,71 ****
       --- 66,72 ----

         #   This one was tested with "MATSHITA" "PD-1 LF-1001" "A105":

       + "MATSHITA" "PD-1 LF-1000"  "" 0xd8 0 0x00 0 10 0
         "MATSHITA" "PD-1"     ""     0x28 1 0x00 0 10 0

         #   Someone reported the following setting for his
       ---ここまで ---

   Appendix. 参考情報
     <URL:http://www.kobe1995.net/~kaz/FreeBSD/cd_rip.html>


   またこれら読み出し、及び変換作業を一括して行ってくれるスクリプトとして、
   abcde (ports/audio/abcde) や、ripit (ports/audio/ripit) などがあります。
   ここで説明したことのほか、CDDB からアルバムや曲名を検索してファイル名を
   つける機能などがあります。
   ports では、どちらも読み出しには dagrab を使うようになっていますが、 
   cdda2wav を使うこともできます。

間違い・追加情報を見付けた場合は、 修正案の投稿のしかた を読んだ上で、
QandA@jp.FreeBSD.org まで お知らせください。