TRACKER HOUSTONTRACKER2 DATA

From MSX MUSIC WIKI
Jump to: navigation, search

公式サイトの仕様

Features

• 3 tone channels

• 1 non-interrupting drum channel

• up to 128 note patterns

• up to 64 drum/fx patterns

• sequence length up to 255 pattern rows

• 16-bit frequency precision

• 8-bit speed precision, can be configured per step

• various effects, including:

- L/C/R stereo hard-panning for tone and drum channels

- 8bit duty cycle control

- duty cycle sweep

• 2 user definable samples

• up to 8 savestates

• edit during playback


以下HT2マニュアル日本語訳より引用 http://ver0.sakura.ne.jp/doc/ht2/manual.html

作業領域データ形式

HT2の作業領域には現在の曲が格納されている。 先頭のラベルは"musicData"で、サイズは5125バイトである。 アドレスはHT2のバージョンによって異なる。

オフセット 長さ 説明
+0 byte 全体スピード
+1 word ユーザドラムポインタ
+3 byte ループポインタ
+4 1 KB パターンシーケンスリスト。各パターンは1バイトで、チャネル1, 2, 3, エフェクトの順に格納されている。空いている箇所は0xff。
+1028 byte シーケンスリストの終端として0xFFが1バイト書き込まれている。
+1029 2 KB 音程パターン。各パターンは無圧縮の16バイトで格納されている。空いている箇所は0x00。
+3077 2 KB エフェクトパターン。それぞれのパターンは無圧縮の32バイトで格納されている。空いている箇所は0x00。


以下main.asmより引用

musicData				;initialize an empty song on first run

speed
	db #10				;speed
usrDrum
	dw #0				;usr drum pointer
looprow
	db 0				;loop point (row#)

ptns					;the pattern matrix
	ds 256*4,#ff			;1024+1 #ff bytes
	db #ff

ptn00					;the note patterns
	ds 16*128			;128*16 #00 bytes
 
fxptn00					;the fx patterns
 	ds 32*64			;64*32 #00 bytes

musicEnd equ $


以下HT2マニュアル日本語訳より引用 http://ver0.sakura.ne.jp/doc/ht2/manual.html


圧縮された保存形式

HT2は極めて単純な圧縮方法で曲のデータを保存している。 配置は次の通りである:

オフセット 長さ 説明
+0 byte 全体スピード
+1 word ユーザドラムポインタ
+3 byte ループポインタ
+4  ? パターンシーケンスリスト。各パターンは1バイトで、チャネル1, 2, 3, エフェクトの順に格納されている。
 ? byte シーケンスリストの終端として0xFFが1バイト書き込まれている。
 ?  ? 音程パターン。もし X(1バイト) >= 0xE0 ならば、次の[X - 0xDF]個のパターンは空。そうではなく、もし X >= 0xD0 ならば、次の[X - 0xCF]行は空。そうではなく、もし X < 0xD0 ならば、Xは通常のパターン。
 ? byte 。音程パターン領域の終端として0xFFが1バイト書き込まれている。
 ?  ? エフェクトパターン。エフェクトパターンはパターン番号から始まる。 パターン番号0xFFはエフェクトパターンが空であることを表す。パターン番号の7ビット目がセットされていれば、最後のパターンであることを表している。 最後のパターンが0x3Fの場合の7ビット目は任意である。

保存データの開始と終了のアドレスは保存データテーブルに格納されている。


以下teststate.asmより引用

;collapsed savestate - test song

	db #10			;speed
	;dw #5fcd		;usr drum

IF MODEL = TI82 || MODEL = TI8P
	dw #5e31
ENDIF

IF MODEL = TI83
	dw #2bae
ENDIF

IF MODEL = TI8X || MODEL = TI8XS
	dw #1f73
ENDIF

IF MODEL = PCG850
	dw #8a1f
ENDIF
	db #01			;loop point

	db #00,#02,#01,#00	;ptn sequence
	db #00,#02,#01,#01
	db #ff

				;ptn area
	db 24			;regular note byte
	db #d6			;#d6 -> d: 0-byte, 6: for the next 6+1 = 7 rows
 	db 24,24,24,48
 	db 43,43,43,43
	
	db #d1,24,#d5
	db 24,24,36
	db 41,41,41,41
	
	db 0,24,#d5
	db 24,0,24,24
	db 12,24,36,48
	
	db #ff			;end of ptn area
	

				;fx ptn area
	db #01+#80		;fx ptn# (#00). bit 7 set = last fx ptn.
		
	db #1f,#20
	db #20,0
	db #30,0
	db #20,0
	
	db #ff,#10
	db #f0,0
	db #f0,0
	db #f0,0
	
	db #90,0
	db #a0,0
	db 0,0
	db #c0,0
	
	db #d0,0
	db #e0,0
	db #f0,0
	db 0,0

;eof


ht2util実行時の表示

Ht2util cmd.jpg

ht2utilで取り出した曲データファイルは拡張子ht2sを持つバイナリファイル

Ht2util ht2s.jpg