2006年09月17日

SEND CUE SHEET その1

CD-R/W をセッションアットワンス方式で書き込む時には、 データ本体の転送する前に SEND CUE SHEET コマンドで トラックの構造をドライブに送ります。 ユーザーはデータ本体のみを逐次転送すればよく、 リードイン、リードアウト、サブチャネル、 そして設定によってはメインチャネルのヘッダやエラー検出、修正コードなどは SEND CUE SHEET コマンドで設定された内容にしたがって自動的に書き込まれます。

SEND CUE SHEET コマンドの CDB は次のとおりです。

BYTE\bit 7 6 5 4 3 2 1 0
0Operation Code = 0x5D
1予約
2予約
3予約
4予約
5予約
6
(MSB)
Cue Sheet の大きさ [byte]
(LSB)
7
8
9Control



SEND CUE SHEET コマンドで設定するトラックの構造は、 "せんべえ焼き" や "CD Manipularor" で使用する、 あのテキストファイルとして記述されメモ帳などで簡単に閲覧、編集できる 形式ではありません。 ドライブ側が判るように翻訳した形になります。

そのフォーマットは、一つが8バイトのブロックを順にならべたものです。 一つのブロックには、
トラックとインデックスの開始位置
MCN (Media Catalog Number、メディアカタログ番号)
ISRC (International Standard Recording Code、国際標準レコーディングコード)
のいづれかを記述します。

トラックとインデックスは順番に書き込みます。
MCN を書き込む場合には、全ブロックの一番先頭に置きます。 無ければ省略できます。
ISRC を書き込む場合には、そのトラックの先頭に置きます。
無ければ省略できます。

Byte No内容注釈
0〜7MCN 1〜7 
8〜15MCN 8〜13 
16〜23Lead In (Track 0)必須
24〜31Track 1 ISRC 1〜6 
32〜39Track 1 ISRC 7〜12 
40〜47Track 1 Index 0必須
48〜55Track 1 Index 1必須
56〜63Track 2 ISRC 1〜6 
64〜71Track 2 ISRC 7〜12 
72〜79Track 2 Index 0 
80〜87Track 2 Index 1Track 2 があれば必須
・・・・・・・・・
8*(m-1)〜8*m-1Lead Out (Track AA)必須

トラック2以降のインデックス 0 はなければ省略できますが、 トラック1のインデックス 0 と全トラックのインデックス 1 は必要です。

いらないところは詰めてください。 1トラックのデータCDで、MCNが無い場合(データCDではISRCは無い)、 4ブロック32バイトのデータを送れば十分です。


ふと疑問に思ったのですが、 インデックス2以降は設定できるのでしょうか。 ("せんべえ焼き"では .cueファイルの INDEX 2 以降を無視するため不可)


2006/09/18 修正
2006/09/19 修正

posted by 七癖 at 12:57| Comment(2) | TrackBack(0) | Multimedia Commands | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
> 4ブロック36バイト
32バイトではなく?
Posted by しーやん at 2006年09月17日 15:53
うわあ。(汗)
早速修正しました。
ご指摘、ありがとうございました。
Posted by 七癖(管理人) at 2006年09月18日 10:36
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
Powered by Seesaa