CUE Sheet 與 CDDB protocol


昨天我說,也許有機會用 CUE 去 freedb 查詢專輯的 meta data,再順手加上 BOM 以及 UTF-8 編碼,不過看來是我太天真了。

根據 Cue sheet 以及 EAC and Cue Sheets 這兩篇文章的說明,我們根本無法從 CUE Sheet 得到整張專輯的「總時數」,而只能看到每一首歌的開始時間、Gap 等資訊,所以這樣推算起來,我們除了最後一首歌的時間之外,都可以從 CUE 檔得知。(題外話:INDEX 的格式是 1:60:60:75,非常不直覺)

CDDB protocol 在送出查詢時必須計算 discid(這有時候也會出現在 cue sheet 裡面),他的計算方式我就不贅述了,有興趣的可以去翻 Wikipedia 的 CDDB。但是 discid 並不是獨特的(Unique),所以在查詢的時候除了加上 discid 之外,還必須把專輯歌數、每一首歌的長度、專輯播放總時數帶進去,而這個 request 就能夠很快地查詢到對應的專輯名稱

cddb query discid ntrks off1 off2 … nsecs

之後再進一步查詢指定的曲目資訊

cddb read categ discid

所以沒有 nsecs (Total playing length of CD in seconds.),就沒有辦法送出一個有效的 CDDB request 了,所以就算了,我今天晚上就可以看 HBO 播的 Music and Lyrics,然後明天又要上班了(死)。


2 responses to “CUE Sheet 與 CDDB protocol”

  1. 知道 discid 就等於知道 ntrks 跟 nsecs 了…
    discid 長這樣, XXYYYYZZ ,中間的 YYYY 就是 nsecs 的十六進位值, ZZ 就是 ntrks 的十六進位值…
    如果不知道 discid 的話,直接把 eac 下來的 cue 襠裡面的音樂檔拿到播放程式裡就可以看到總時數了, ncecs 的單位是秒,不用精確到 frame 數,所以不影響查詢…

Leave a Reply

Your email address will not be published. Required fields are marked *