Unixで音楽CDのエンコード 続編

Unixで音楽CDのエンコード - notes plastiques」を改善したので記しておく。

makefileを使うことにした。
あと、このサイトを参考にしてCDDBからトラック情報を読み込むようにした。

makefileはこれ。

TARGET	= image
DEVICE	= /dev/cdrom

.PHONY: all
all: mp3

.PHONY: unmount
unmount:
	sudo umount $(DEVICE)

$(TARGET).bin:
	cdrdao read-cd --device $(DEVICE) --with-cddb --cddb-servers "freedbtest.dyndns.org:80:/~cddb/cddbutf8.cgi" --session 1 --datafile $(TARGET).bin $(TARGET).toc

$(TARGET).toc: $(TARGET).bin

$(TARGET).cue: $(TARGET).toc
	cueconvert -i toc -o cue $(TARGET).toc $(TARGET).orig.cue
	printf "`cat $(TARGET).orig.cue`" > $(TARGET).cue
	# toc2cue $(TARGET).toc $(TARGET).cue

$(TARGET).wav: $(TARGET).bin
	dd if=$(TARGET).bin of=$(TARGET).wav conv=swab

$(TARGET).mp3: $(TARGET).bin
	lame -b 32 -B 256 -v -V 3 -q 0 -k --verbose -r --big-endian $(TARGET).bin $(TARGET).mp3

.PHONY: mp3
mp3: $(TARGET).mp3 $(TARGET).cue
	mp3splt -T 2 -f -o "@n2 - @t" -c $(TARGET).cue $(TARGET).mp3

これでmakeと打てばCD読み込みからmp3作成まで自動で行ってくれる。ただし、CDDBに情報がない場合はトラック情報は書き込まれないので注意。

Unixで音楽CDのエンコード - notes plastiques」も参考に。

追記 7/4: CDDBに無いCDは、Windows上でvuplayerを使ってGracenoteから情報を取得して、CDPlayer.iniに書き込み、CDexを使ってCDDBに送信するという方法も良いかもしれない。その後は上の方法で自動的に。