FreeBSD QandA 745
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 まで
お知らせください。