2006年09月19日

SEND CUE SHEET その2

前回は、お見苦しいところをお見せしました。
ご指摘のあった点以外にも間違いがありましたので、 さきほど直しました。
それから、2006/07/31 の Sub Q Channel の説明にも間違いがありましたので、直しました。


気を取り直して、(間違いを恐れずに)SEND CUE SHEET の説明の続きをします。


リードイン、リードアウト、および各トラックとそのインデックスの 開始位置を記述するブロックのフォーマットは次の通りです。

BYTE\bit 7 6 5 4 3 2 1 0
0CTRLADR
1TNO
2INDEX
3DATA FORM
Sub-channelMain Data
4SCMS
5開始時間 (分)
6開始時間 (秒)
7開始時間 (フレーム =1/75秒)


ADR はそのブロックの内容を表します。

ADR内容
1トラックとインデックスの開始位置
2MCN
3ISRC

ADR が異なると 1〜7 バイトの意味が全く変わります。


Ctrl (コントロール/制御フィールド) は、ビット毎に意味があります。

bitCtrl
70=2チャンネルオーディオ 1=4チャンネルオーディオ
60=音楽トラック 1=データトラック
5コピー 0=禁止 1=許可
4プリエンファシス 0=なし 1=50/15

Ctrl = 0100b で、データトラックになります。


TNO はトラックの番号です。
リードインは TNO = 0x00
リードアウトは TNO = 0xAA
に、それぞれ設定してください。


INDEX は各トラックのインデックス番号です。
リードインでは INDEX = 0x00
リードアウトでは INDEX = 0x01
に、それぞれ設定してください。


DATA FORM では各トラックのモードと、 書き込む際に送るデータの大きさを指定します。
Main Data (下位6ビット) に設定できる値の一覧を次に示します。

DATA FORM形式送るバイト数注釈
0x00CD-DA2352オーディオデータ
0x01CD-DA0 
0x10mode 12048データ本体のみ
0x11mode 12352ヘッダや訂正コードを含める
但し、送ったヘッダや訂正コードは無視され、書き込み位置や送ったデータ本体から作成される
0x12mode 12048送ったデータは全て無視される
0x13mode 12352送ったデータは全て無視される
0x14mode 10 
0x20mode 2 form 1,22336サブヘッダ+データ本体+訂正コード
但し、送った訂正コードは無視され、送ったデータ本体から作成される
0x21mode 2 form 1,22352ヘッダ、サブヘッダ、訂正コードなどを含める
但し、送ったヘッダや訂正コードは無視され、書き込み位置や送ったデータ本体から作成される
0x22mode 2 form 1,22336サブヘッダ (0〜7バイト目) 以外は無視される
0x23mode 2 form 1,22352サブヘッダ (16〜23バイト目) 以外は無視される
0x24mode 2 form 20 
0x30mode 22336データ本体のみ
0x31mode 22352ヘッダを含める
但し、送ったヘッダは無視され、書き込み位置から作成される
0x32mode 22336送ったデータは全て無視される
0x33mode 22352送ったデータは全て無視される
0x34mode 20 


"送るバイト数"が 0 になっている部分では、 そのインデックスでは空のデータが自動的に書き込まれると思われます。
"mode 2 form 1,2" となっている部分では、送られたサブヘッダから形式が判断されます。 なお、DATA FORM = 0x24 の form 1 はありません。
リードインとリードアウトでは 0x01 に設定してください。

続いて Sub-channnel (上位2ビット) に設定できる値を次に示します。

DATA FORM送るバイト数注釈
00サブチャネルは自動的に作成される
196RAW 形式のデータを送る
396PACK DATA

DATA FORM = 0x00 しか使ったことがありません。
リードインでは 0 か 1 に、 リードアウトでは 0 に設定してください。


SCMS は Selial Copy Management System のことです。 最上位ビット(bit 7)で ON/OFF を設定します。


開始時間 (分、秒、フレーム) はトラック1のインデックス0からの経過時間を設定します。 よって TNO=1 & INDEX=0 では 0分0秒0フレーム です。 なお、リードイン (TNO=0) でも DATA FORM = 0x41 (8ビットで)以外の場合(=0x01) は、0分0秒0フレーム にしてください。 なお、データCDおよび多くの音楽CDの TNO=1 & INDEX=1 では、0分2秒0フレーム です。 "せんべえ焼き"では、そのように設定しています。

それから、TNO、INDEX、開始時間 (分、秒、フレーム) は、 BCD変換した値ではなく、普通の値を送ります。トラック 99 の場合は TNO=0x63 です。 "せんべえ焼き" 過去のバージョンでは、この間違いのせいで ひどい結果が生じるので、最新版を使うようにお願いします。


ここまで書いてみて、いろいろと矛盾する記述があると思います。 これは、私が一部の機能しか使っておらず、その経験からの思い込みをそのまま書いている部分が多いためです。 SEND CUE SHEET でも リードインや各トラックのサブチャネルを直接書き込む ような使い方も出来るみたいです。 やったことはありませんが。

posted by 七癖 at 10:59| Comment(8) | TrackBack(0) | Multimedia Commands | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
SAO でライティングするには DATA FORMに どんな値を設定すれば良いのでしょうか?
Posted by 初心者A at 2012年06月30日 13:54
RAW SAOで ライティングするには DATA FORMに どんな値を 設定すれば良いのでしょうか?
Posted by 初心者A at 2012年06月30日 13:58
SEND CUE SHEET は Session-at-once 用です。Raw モードでは使わないと思います。
DATA FORM はトラック毎に指定します。

返答が遅くなって申し訳ありませんでした。
Posted by 七癖(管理人) at 2012年07月06日 21:59
自己解決しました(?)RAW SAOでの書き込みらしきものの設定を書きます。

★Mode Selectコマンドで
Write Parameters Pageを
 Write Type  0x02
Data Block Type 0x00
に設定する。
 
★Send Cue Sheet コマンドで
CTRL/ADRは
 ●Lead In
CDDA 0x01
Mode1,2 0x41
 ●Gapと各トラック
CDDA   0x01
Mode1,2 0x41
 ●Lead Out
0x01
DATA FORMは
 ●Lead In
CDDA 0x01
Mode1  0x14
Mode2   0x34
 ●Gapと各トラック
       0x00
     ●Lead Out
0x01

★1セクタに 2352バイト(RAW セクタ扱い)
 として書き込む。

★データトラックは ソフト側で スクランブルして
ドライヴに送る。

P.S. これらを実装した CD Manipulator Fix-7のバージョンがあるのですが、
ソースコードのみのアップロードは違法なのでしょうか?そちらを見てもらった方が解かりやすいと思いますが………。


醜いコメントで申し訳ありません。
Posted by 初心者A at 2012年08月31日 10:16
cdm-270-fix7 は、修正元のサイトからダウンロードできました。
現在、実際にディスクに記録して確認できる状況にないため、お役に立てず、すみません。
Posted by 七癖(管理人) at 2012年09月01日 20:55
というと、法律的なものでしょうか?CDM 2.70 Version 2.70 Fixed-8 が………。 ぅん〜。
Posted by 初心者A at 2012年09月07日 10:59
こちらも勘違いしていた上、さらに勘違いさせてしまった様で申し訳ありません。
ドライブが不調なのです。
Posted by 七癖(管理人) at 2012年09月07日 22:19
不躾ですが、cdm-270-fix7 をお持ちでしょうか?
お持ちでしたらわけて頂けませんか?
Posted by 朝田武志 at 2015年09月14日 13:12
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

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


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

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

この広告は1年以上新しい記事の投稿がないブログに表示されております。