从 CD 音轨直接抓 wav 档


MP3 档案是需要先有 wav 档, 才可以转换出来的, 所以这个 wav 要如何制做就是个
学问.

当然, 如果拿音效卡直接录音, 也是个办法, 但是这样有两个缺点 :

(1) 得花和曲子一样长的时间才能录制完成.
(2) 会失真, 失真的程度视音效卡品质以及电脑内部杂讯影响而不同.

所以, 如果能够直接将 CD 音轨读出, 转换成 wav, 则一定不会失真, 而且将有机会
以高速读取, 却只要花曲子一半的时间(2X CD-ROM)或更快的时间就可以转录完成.

以下拿 DOS 下的 CDDA  做个范例. (此为 CDDA 1.5 版, 已经出了 1.7 版, 请看後
面的报导.)

一般人用的都是 ATAPI 光碟机, 在 cdda 中, 要多下一个 /M 的参数才可以. 而如
果是 SCSI 的光碟机, 则不需要这个参数.

执行 cdda 时, 不可以有硬碟快取程式.

cdda /t 1 /f c:\track1 /w /o /m

     这样的指令行可以将 CD 上的第一首歌曲直接转换成 wav 档, 档名是
     track1.wav, 放在 c:\ 下.

     参数说明 :

     /t 表示要第几轨
     /f 指定档名
     /w 转成 wav 档
     /o 如果该音轨被标示有版权, 则还是强迫读取出来, 一般来说都要下此参
        数. ^_^
     /m 是给非 SCSI 光碟机用的 

接著我们来看看 cdgrab 的使用法 :

cdgrab g wav 1

       表示要将 CD 上的第一轨转成 wav 档, 转出来的档名是 track01.wav

cdgrab g wav 1 3 5 7 9

       表示要将 CD 上的 1 3 5 7 9 这五首歌曲转换成 wav 档, 档名分别是
       track01.wav track03.wav track05.wav track07.wav track09.wav.

       参数说明 :
      
       g   表示 grab, 要抓取 CD 音轨
       wav 表示要抓成 wav 档

再来就是谈 Windows 下的抓音轨程式.

我目前找到在 Windows 下的程式只有 dido4, 不知道还有没有其他的. dido4 用起
来更挑光碟机, 而我的经验是, 转录的时间如果不长, 就容易转成功, 时间一长,
在最後的步骤将会发生 synchorous 的错误, 唉.....

最後拿 Linux 的 cdda2wav 来说明.

怎麽把程式做出来就不是这边要讨论的重点. 这个程式可以非常迅速的将 CD 音轨
抓出, 且几乎是以光碟机的全速来抓取. 我用的是 Pioneer 12X 光碟机, 抓一首
5:31 的歌曲, 照理说 12x 应该可以在 31 秒内抓完, 我花了 46 秒, 仍然是相当
的快, 延迟的时间可能是卡在硬碟 I/O 上, 毕竟每秒写入 1800K 对 IDE 硬碟来说
并不容易, 再加上还要花时间读取 CD-ROM, 这一来一往所造成的 delay 大概就差
不多了. 

cdda2wav -t 1     

         这样的指令行会将 CD 上的第一首歌曲转换成 audio.wav, 且还有 
         audio.wav.info 可以看一下讯息, 不过好像没什麽重要的可以看.

cdda2wav -B

         这样的指令行可以将 CD 上的歌曲全部转换出来, 档名就依照
         audio.01.wav audio.02.wav audio.03.wav 这样顺序排下去.