音樂格式的標籤(tag)與編碼

CDs

id3v1: ISO-8859-1
id3v2.3.0: ISO-8859-1, UTF-16 (with BOM)
id3v2.4.0: ISO-8859-1, UTF-16 (with or without BOM), UTF-8
APEv2: UTF-8
Vorbis comment: UTF-8

根據 ID3.org 的說明,目前對 ID3 tag 支援較廣的版本是 ID3v2.3.0,從這版開始,至少我們多了 UTF-16 的支援。但是那些只有 ID3v1 的 mp3 呢?這實在一個令人頭大的問題。

剛剛稍微找了一下,發現了「Linux下mp3标签乱码问题的分析和解决」與「对 mp3 乱码问题的分析和解决」這兩篇文章,他們也提供了幾種方法,可以把幫你把討厭的 ID3v1 標籤移除,加上支援 Unicode 的 ID3v2 和 APEv2。

那事情就這樣結束了嗎?並不完全是,許許多多的情況下我們會看見 ape 以及一個 cue 檔,這個 cue 檔紀錄歌曲名稱、長度、歌手等 meta data,但是這個 cue 檔也是另外一個編碼格式不明的灰色地帶。就算使用支援度相當好的 foobar2000 也不可免俗的會遇到這個問題,只要 foobar2000 讀取的 cue 檔沒有 BOM,他就會以 ISO-8859-1(還是 CP_ACP 啊)將相關的資訊存回去。這時候,只要乖乖的加上 BOM,一切就天下太平。

也許明天我該來寫一個簡單的程式,把 cue 檔的資訊拿去 freedb 查詢之後,以加上 BOM 的 UTF-8 格式存回去。

這也許是我為什麼喜歡用 FLAC 勝過其他的格式,FLAC 就很單純的使用 Vorbis Comment,沒有別的編碼方法,就是 UTF-8。要帶出門的話,直接丟進 iaudio 系列的隨身聽就好,以後移到別的系統也不會有問題。

不過,iaudio 的隨身聽還真是貴啊~~~~~。

abcde

因為在實驗室的時間太多,所以都沒有時間回寢室轉mp3,要不然我以前習慣用 EAClame 來轉mp3。

剛好我身邊有一台空的FreeBSD,也剛好就發現了這個取名叫「abcde」的ports。

abcde 全名為 A Better CD Encoder,下面是 freshports 對他的一些描述。

abcde (A Better CD Encoder) is a frontend sh script to rip tracks from a CD, encode them in ogg vorbis or mp3 format, and tag them.

Rippers supported: cdparanoia, cdda2wav, dagrab
Encoders supported: bladeenc, gogo, flac, l3enc, lame, mp3enc, oggenc, speex, vorbize, xingmp3enc
ID3 taggers supported: id3, id3v2
Other: vorbiscomment, distmp3, normalize

Many other useful features are supported.

對我而言很方便的設定有幾個:

1. CDDB: 再配合 iconv 應該就無敵了吧 :p
2. 自訂輸出格式: 像是,OUTPUTFORMAT=’${ALBUMFILE}/${TRACKFILE}’
3. Rip的品質:也許只是設好看的 XD

而對我而言,這樣的軟體是最好的,沒有多餘的介面,單純的 Fronter,幫你叫 encoder 和 ripper 起來、更名好檔名、存一份 playlist。

所以我要慢慢去享受音樂啦,順便說一下 NANA 電影版的插曲很不錯呢,不管是中島美嘉的GLAMOROUS SKY,或是伊藤由奈 (REIRA starring YUNA ITO) 的 ENDLESS STORY 都很讚啊。

對了,GLAMOROUS SKY 是 L’Arc~en~Ciel 的 HYDE 譜曲歐。