Difference between revisions of "TRACKER HOUSTONTRACKER2 DATA"
(4 intermediate revisions by the same user not shown) | |||
Line 5: | Line 5: | ||
• 3 tone channels | • 3 tone channels | ||
+ | |||
• 1 non-interrupting drum channel | • 1 non-interrupting drum channel | ||
+ | |||
• up to 128 note patterns | • up to 128 note patterns | ||
+ | |||
• up to 64 drum/fx patterns | • up to 64 drum/fx patterns | ||
+ | |||
• sequence length up to 255 pattern rows | • sequence length up to 255 pattern rows | ||
+ | |||
• 16-bit frequency precision | • 16-bit frequency precision | ||
+ | |||
• 8-bit speed precision, can be configured per step | • 8-bit speed precision, can be configured per step | ||
+ | |||
• various effects, including: | • 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 | • 2 user definable samples | ||
+ | |||
• up to 8 savestates | • up to 8 savestates | ||
+ | |||
• edit during playback | • edit during playback | ||
+ | |||
+ | |||
+ | 以下HT2マニュアル日本語訳より引用 http://ver0.sakura.ne.jp/doc/ht2/manual.html | ||
+ | |||
+ | 作業領域データ形式 | ||
+ | |||
+ | HT2の作業領域には現在の曲が格納されている。 先頭のラベルは"musicData"で、サイズは5125バイトである。 アドレスはHT2のバージョンによって異なる。 | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |オフセット||長さ||説明 | ||
+ | |- | ||
+ | | +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。 | ||
+ | |} | ||
Line 43: | Line 81: | ||
musicEnd equ $ | musicEnd equ $ | ||
+ | |||
+ | |||
+ | |||
+ | 以下HT2マニュアル日本語訳より引用 http://ver0.sakura.ne.jp/doc/ht2/manual.html | ||
+ | |||
+ | |||
+ | 圧縮された保存形式 | ||
+ | |||
+ | HT2は極めて単純な圧縮方法で曲のデータを保存している。 配置は次の通りである: | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |オフセット||長さ||説明 | ||
+ | |- | ||
+ | | +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実行時の表示 | ||
+ | |||
+ | [[File:Ht2util_cmd.jpg]] | ||
+ | |||
+ | ht2utilで取り出した曲データファイルは拡張子ht2sを持つバイナリファイル | ||
+ | |||
+ | [[File:Ht2util_ht2s.jpg]] |
Latest revision as of 15:27, 6 May 2021
公式サイトの仕様
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で取り出した曲データファイルは拡張子ht2sを持つバイナリファイル