Quantcast
Channel: mattintosh note
Viewing all articles
Browse latest Browse all 878

Audio CD を RAW データで取り込む

$
0
0

この前買った CD をいい加減取り込まなくてはと思いつつ、あきばおーでポータブル DVD ドライブを買ってきた。最近だと ¥2,500 もあれば買えてしまうのね。1台買っておけばよかった。(でも読み込み 24x って遅い…)

取込みはいつも cdparanoia を使って、NeroAacEnc でエンコードしているのだけど、今日は RAW でも取り込んで遊んでみた。ちなみに Audio CD は dd コマンドでは取込みが出来ない。

Audio CD を RAW データで取り込む

まずは cdrdao の使い方を見てみよう。

cdrdao

cdrdao は cdrdaoだけでは動作せず、cdrdao <command>形式で実行する必要がある。

Cdrdao version 1.2.3 - (C) Andreas Mueller Usage: cdrdao [options] [toc-file] command: show-toc - prints out toc and exits toc-info - prints out short toc-file summary toc-size - prints total number of blocks for toc read-toc - create toc file from audio CD read-cd - create toc and rip audio data from CD read-cddb - contact CDDB server and add data as CD-TEXT to toc-file show-data - prints out audio data and exits read-test - reads all audio files and exits disk-info - shows information about inserted medium discid - prints out CDDB information msinfo - shows multi session info, output is suited for scripts drive-info - shows drive information unlock - unlock drive after failed writing blank - blank a CD-RW scanbus - scan for devices simulate - shortcut for 'write --simulate' write - writes CD copy - copies CD Try 'cdrdao -h' to get a list of available options

今回は読み取りを行うので read-cdコマンドを使う。これもヘルプを見てみる。

cdrdao read-cd
Cdrdao version 1.2.3 - (C) Andreas Mueller Usage: cdrdao read-cd [options] toc-file options: --device [proto:]{|device} - sets SCSI device of CD-ROM reader --driver - force usage of specified driver for source device --datafile - name of data file placed in toc-file --session # - select session --fast-toc - do not extract pre-gaps and index marks --read-raw - read raw data sectors (including L-EC data) --no-mode2-mixed - don't switch to mode2_mixed --rspeed - selects reading speed --read-subchan - defines sub-channel reading mode = rw | rw_raw --tao-source - indicate that source CD was written in TAO mode --tao-source-adjust # - # of link blocks for TAO source CDs (def. 2) --paranoia-mode # - DAE paranoia mode (0..3) --with-cddb - retrieve CDDB CD-TEXT data while copying --cddb-servers - sets space separated list of CDDB servers --cddb-timeout # - timeout in seconds for CDDB server communication --cddb-directory - path to local CDDB directory where fetched CDDB records will be stored --force - force execution of operation -v # - sets verbose level

今回はデータファイルを作成するので --datafileオプションを使う。今回は --swapを使って s16le -> s16be にバイトオーダーを入れ替えてみる。(※こんな話をしておきながら実は --swapを使わずに dd conv=swabした方が何かと都合がよい)

CD はこれ。(その情報は重要か?)

Walkure Attack!(初回限定盤)(DVD付)

Walkure Attack!(初回限定盤)(DVD付)

※面倒なので以降、シェルのブレース展開を使う。

cdrdao read-cd--rspeed24--read-raw--swap--datafile'Walküre_Attack!'.{bin,toc}

TOC ファイルは以下のようなものになる。CATALOG は値を調べてみたら JAN が入ってるっぽい。ISRC(International Standard Recording Code)とは日本語で「国際標準レコーディングコード」のこと。

CD_DA CATALOG "4580325321982" // Track 1 TRACK AUDIO NO COPY NO PRE_EMPHASIS TWO_CHANNEL_AUDIO FILE "Walküre_Attack!.bin" 0 04:54:47 // Track 2 TRACK AUDIO NO COPY NO PRE_EMPHASIS TWO_CHANNEL_AUDIO FILE "Walküre_Attack!.bin" 04:54:47 04:12:55 // Track 3 TRACK AUDIO NO COPY NO PRE_EMPHASIS TWO_CHANNEL_AUDIO FILE "Walküre_Attack!.bin" 09:07:27 03:54:70 // Track 4 TRACK AUDIO NO COPY NO PRE_EMPHASIS TWO_CHANNEL_AUDIO FILE "Walküre_Attack!.bin" 13:02:22 04:04:28 // Track 5 TRACK AUDIO NO COPY NO PRE_EMPHASIS TWO_CHANNEL_AUDIO FILE "Walküre_Attack!.bin" 17:06:50 04:25:60 // Track 6 TRACK AUDIO NO COPY NO PRE_EMPHASIS TWO_CHANNEL_AUDIO FILE "Walküre_Attack!.bin" 21:32:35 04:30:72 // Track 7 TRACK AUDIO NO COPY NO PRE_EMPHASIS TWO_CHANNEL_AUDIO FILE "Walküre_Attack!.bin" 26:03:32 05:34:68 // Track 8 TRACK AUDIO NO COPY NO PRE_EMPHASIS TWO_CHANNEL_AUDIO FILE "Walküre_Attack!.bin" 31:38:25 05:14:57 // Track 9 TRACK AUDIO NO COPY NO PRE_EMPHASIS TWO_CHANNEL_AUDIO FILE "Walküre_Attack!.bin" 36:53:07 05:11:25 // Track 10 TRACK AUDIO NO COPY NO PRE_EMPHASIS TWO_CHANNEL_AUDIO FILE "Walküre_Attack!.bin" 42:04:32 04:26:38 // Track 11 TRACK AUDIO NO COPY NO PRE_EMPHASIS TWO_CHANNEL_AUDIO FILE "Walküre_Attack!.bin" 46:30:70 04:39:52 // Track 12 TRACK AUDIO NO COPY NO PRE_EMPHASIS TWO_CHANNEL_AUDIO ISRC "JPVI01610890" FILE "Walküre_Attack!.bin" 51:10:47 05:09:18

RAW データの再生

出来上がった RAW データは mplayer で再生できる。

mplayer --demuxer rawaudio 'Walküre_Attack!'.bin

ffmpeg(ffplay)の場合はフォーマット、レート、チャンネルを指定しないと正しく再生できない。(cdrdao read-cd --swapしていない場合は -f s16le

ffplay -f s16be -ar44100-ac2-i'Walküre_Attack!'.bin

VLC の場合はチャンネル数のデフォルトが 2なので --rawaud-channels=2は省略してもよい。(cdrdao read-cd --swapしていない場合は --rawaud=fourcc=s16l

vlc 'Walküre_Attack!'.bin --demux=rawaud--rawaud-fourcc=s16b--rawaud-samplerate=44100

dd conv=swabしている場合は s16le になる。

dd if='Walküre_Attack!'.bin of='Walküre_Attack!'.bin.swaped conv=swab
mplayer --demuxer rawaudio 'Walküre_Attack!'.bin.swaped
ffplay -f s16le -ac2'Walküre_Attack!'.bin.swaped
vlc 'Walküre_Attack!'.bin --demux=rawaud--rawaud-samplerate=44100

dd で変換した場合、TOC 内に記述されているファイル名と一致しなくなるので古い方を捨ててリネームしておく。

rm'Walküre_Attack!'.bin
mv'Walküre_Attack!'.bin.swaped 'Walküre_Attack!'.bin

RAW データの分割

TOC ファイルから CUE シートを作成する。

toc2cue 'Walküre_Attack!'.{toc,cue}

bchunk を使って分割、WAVE ファイルを作成する。(-wをつけない場合は BIN 状態のまま分割される)

bchunk -w'Walküre_Attack!'.{bin,cue,}

自動化

RAW 読み込み、スワップ、CUE シート作成、WAV ファイル作成まで一括で。デバイスの指定とか環境によっては細かい指定が必要かも。

#!/bin/shset-eset-x:${1:?}

cdrdao read-cd--read-raw--datafile"$1".bin "$1".toc
mv"$1".bin "$1".bin.orig
dd conv=swab if="$1".bin.orig of="$1".bin
rm"$1".bin.orig
toc2cue "$1".toc "$1".cue
bchunk -w"$1".bin "$1".cue "$1 - "

参考

forums.freebsd.org

linux.die.net


Viewing all articles
Browse latest Browse all 878

Trending Articles