
	　ＭＵＣＯＭ、拡張ＭＵＣＯＭデータフォーマット


※この資料は、TAB=スペース8個分で記述されています。


■(1) ヘッダー情報
━━━━━━━━━━━━━━━
1-1.) Mucom original (OPN)
========================================
Address		type		内容
+-------+-------+-------+-------+-------
0x0000		Word		ＦＭ音源　　ｃｈ１　Offset Address
0x0002		Word		ＦＭ音源　　ｃｈ２　Offset Address
0x0004		Word		ＦＭ音源　　ｃｈ３　Offset Address
0x0006		Word		ＳＳＧ音源　ｃｈ１　Offset Address
0x0008		Word		ＳＳＧ音源　ｃｈ２　Offset Address
0x000A		Word		ＳＳＧ音源　ｃｈ３　Offset Address
0x000C		Word		不明
0x000E		Word		不明
0x0010〜	char[0x20]	ＦＭ音源音色データ　×　音色の数だけ
========================================



1-2.) Mucom for PC9801-73/86 (OPNA)
========================================
Address		type	内容
+-------+-------+-------+-------+-------
0x0000		Word		ＦＭ音源　　ｃｈ４　Offset Address
0x0002		Word		ＦＭ音源　　ｃｈ５　Offset Address
0x0004		Word		ＦＭ音源　　ｃｈ６　Offset Address
0x0006		Word		ＦＭ音源　　ｃｈ１　Offset Address
0x0008		Word		ＦＭ音源　　ｃｈ２　Offset Address
0x000A		Word		ＦＭ音源　　ｃｈ３　Offset Address
0x000C		Word		ＳＳＧ音源　ｃｈ１　Offset Address
0x000E		Word		ＳＳＧ音源　ｃｈ２　Offset Address
0x0010		Word		ＳＳＧ音源　ｃｈ３　Offset Address
0x0012		Word		リズム音源　　　　　Offset Address
0x0014		Word		不明
0x0016		Word		不明
0x0018		Word		不明
0x001A		Word		不明
0x001C		Word		不明
0x001C		Word		不明
0x0020〜	char[0x20]	ＦＭ音源音色データ　×　音色の数だけ
========================================
相対アドレスとは、その位置からのオフセット量を示す。



1-3.) Mucom for PC88VA Sound Bouad II (OPNA)
========================================
Address		type	内容
+-------+-------+-------+-------+-------
0x0000		Word		ＦＭ音源　　ｃｈ１　Offset Address
0x0002		Word		ＦＭ音源　　ｃｈ２　Offset Address
0x0004		Word		ＦＭ音源　　ｃｈ３　Offset Address
0x0006		Word		ＳＳＧ音源　ｃｈ１　Offset Address
0x0008		Word		ＳＳＧ音源　ｃｈ２　Offset Address
0x000A		Word		ＳＳＧ音源　ｃｈ３　Offset Address
0x000C		Word		ＦＭ音源　　ｃｈ４　Offset Address
0x000E		Word		ＦＭ音源　　ｃｈ５　Offset Address
0x0010		Word		ＦＭ音源　　ｃｈ６　Offset Address
0x0012		Word		不明
0x0014		Word		不明
0x0016		Word		不明
0x0018		Word		不明
0x001A		Word		不明
0x001C		Word		不明
0x001C		Word		不明
0x0020〜	char[0x20]	ＦＭ音源音色データ　×　音色の数だけ
========================================
相対アドレスとは、その位置からのオフセット量を示す。



1-4.) Mucom for X1-turbo (OPM+PSG, PSG)
========================================
Address		type	内容
+-------+-------+-------+-------+-------
0x0000		Word		ＦＭ音源　　ｃｈ１　Offset Address
0x0002		Word		ＦＭ音源　　ｃｈ２　Offset Address
0x0004		Word		ＦＭ音源　　ｃｈ３　Offset Address
0x0006		Word		ＰＳＧ音源　ｃｈ１　Offset Address
0x0008		Word		ＰＳＧ音源　ｃｈ２　Offset Address
0x000A		Word		ＰＳＧ音源　ｃｈ３　Offset Address
0x000C		Word		ＦＭ音源　　ｃｈ４　Offset Address
0x000E		Word		ＦＭ音源　　ｃｈ５　Offset Address
0x0010		Word		ＦＭ音源　　ｃｈ６　Offset Address
0x0012				不明
0x0014				不明
0x0016				不明
0x0018				不明
0x001A		Word		ＰＳＧ音源のみで演奏する場合の曲データ Offset Address
0x001C				不明
0x001E				不明
0x0020〜	char[0x20]	ＦＭ音源音色データ　×　音色の数だけ
+-------+-------+-------+-------+-------
0x001A番地が示す内容
+-------+-------+-------+-------+-------
0x0000		Word		ＦＭ音源　　ｃｈ１　Offset Address（未使用）
0x0002		Word		ＦＭ音源　　ｃｈ２　Offset Address（未使用）
0x0004		Word		ＦＭ音源　　ｃｈ３　Offset Address（未使用）
0x0006		Word		ＰＳＧ音源　ｃｈ１　Offset Address
0x0008		Word		ＰＳＧ音源　ｃｈ２　Offset Address
0x000A		Word		ＰＳＧ音源　ｃｈ３　Offset Address
0x000C		Word		不明
0x000E		Word		不明
0x0010〜	char[0x20]	ＦＭ音源音色データ　×　音色の数だけ（未使用）
========================================
相対アドレスとは、その位置からのオフセット量を示す。
※ＯＰＭのＦＭ音源ｃｈ７〜８は未使用。OPNA互換として設計されている。
※また、OPM特有の音色パラメータ"Detune2"も未使用。(OPNシリーズには無い音色パラメータ)





■(2) FM音源音色データ情報
━━━━━━━━━━━━━━━
00h	Detune				*4	Multiple	(op 1,3,2,4)
04h	Total Level						(op 1,3,2,4)
08h	Keyscal				*6	Attack Rate	(op 1,3,2,4)
0ch	LFO AMS Enable Switch		*8	Decay Rate	(op 1,3,2,4)
10h	Sustain Rate						(op 1,3,2,4)
14h	Sustain Level			*4	Release Rate	(op 1,3,2,4)
18h	Feed Back			*3	Algorithm
19h	Amplitude Modulation Sensitivity*4	Phase Modulation Sensitivity
1ah	Freq.
1bh	不明
1ch	不明
1dh	不明
1eh	不明
1fh	不明




■(3) ＳＳＧエンベロープについて
━━━━━━━━━━━━━━━
ＭＵＣＯＭでは、0xF0で指定される0〜12番のエンベロープは固定されている。
0xF9でエンベロープが指定された場合、SSG ch1は13番、SSG ch2は14番、SSG ch3は15番に定義される。

下記に、ＭＵＣＯＭのエンベロープ形状の数値を示す。
処理は、ＦＭＰ，ＦＳＰ，ＷＴＤと同じ。

No.	Fl	AR	DR	DL	SR	RR
0	255	255	0	255	0	255
1	255	0	55h	200	0	10
2	255	0	55h	200	1	10
3	255	0	255	190	0	10
4	255	0	255	190	1	10
5	255	0	255	190	4	10
6	255	0	255	190	10	10
7	255	0	255	1	255	255
8	255	255	255	255	1	10
9	100	100	255	255	1	10
10	40	2	255	240	0	10
11	255	0	255	200	1	40
12	120	0	95	160	5	40





■(4) チャンネル情報
━━━━━━━━━━━━━━━
========================================
Command
+-------+-------+-------+-------+-------
00h〜7Fh,n1		音符
	Bit0〜3		音程
	０(ド），１（ド＃）〜Ｂ（シ）　Ｃ〜Ｆ（未使用）
	Bit4〜6		オクターブ

	n1	Bit0〜6	音長（スッテプ）
		Bit7	'h' タイ指定

+-------+-------+-------+-------+-------
80h〜EFh		休符
	Bit0〜6		音長（ステップ数）

+-------+-------+-------+-------+-------
F0h,n1	
	ＦＭ　音源パートの場合		音色		（０〜２５６）
	ＳＳＧ音源パートの場合		エンベロープ	（０〜１５）
	リズム音源パートの場合		音色		（０〜６３）

+-------+-------+-------+-------+-------
F1H,n1			音量
	ＦＭ　音源	０〜１５（換算表はＸ１版と、ＰＣ９８版で違う模様）
	ＳＳＧ音源	０〜１５
	リズム音源	０〜３１（ビットに対応。）

+-------+-------+-------+-------+-------
F2h,n1			ゲートタイム

+-------+-------+-------+-------+-------
F3h,n1			ディチューン
	レジスターに書き込む値の変化量。
	ＳＳＧ音源の場合は、o1時の音程テーブルから加減算後、オクターブで割る。

+-------+-------+-------+-------+-------
F4H,n1
	ＦＭ　音源パートの場合	音量	（０〜１２７）
	ＳＳＧ音源パートの場合	ノイズ／トーン・スイッチ　＋　ノイズ周波数
	リズム音源パートの場合　音量　　（０〜３１）

+-------+-------+-------+-------+-------
F5H,n1			テンポ
	ＦＭ音源　98版の場合は、TimerBにそのまま出力
	Ｘ１版は、CTCでOPNのTimerBをエミュレートしている。

+-------+-------+-------+-------+-------
F6h,n1,n2,n3,n4		ループ終了点
	n1	ループ回数カウント用の変数
	n2	ループ回数
	n3,n4	ループ先アドレス（相対アドレス。）

+-------+-------+-------+-------+-------
F7H,n1,n2,n3,n4		ＬＦＯ
	n1	ディケイ
	n2	周期[ticks]
	n3	振幅[レジスター値]
	n4	回数（n2,n3の変化を何回繰り返したら、反転するか）

+-------+-------+-------+-------+-------
F8h,n1,n2		ＢＧＭ演奏制御用の構造体へ直接アクセス
			※プログラム領域を書き換える危険な命令。
	n1	構造体のアドレス
	n2	データ
		n1は無視しn2はＬＦＯのon/offのスイッチでよい。
		n2=00h	ＬＦＯＯｆｆ　／　n2<>00h　ＬＦＯ　Ｏｎ

+-------+-------+-------+-------+-------
F9H,n1,n2,n3,n4,n5,n6	ＳＳＧエンベロープ
	n1	Attack Rate (0〜255)
	n2	Fiest Level (0〜255)
	n3	Decay Rate (0〜255)
	n4	Decay Level (0〜255)
	n5	Sustain Rate (0〜255)
	n6	Release Rate (0〜255)

+-------+-------+-------+-------+-------
FAh,n1,n2		ＦＭ音源ＬＳＩ直接操作
	n1	レジスタ
	n2	データ

+-------+-------+-------+-------+-------
FBH			音量ダウン
	ＦＭ　音源	＋３
	ＳＳＧ音源	＋１
	リズム音源	不明　（現状では＋１で変換している。）

+-------+-------+-------+-------+-------
FCh			音量アップ
	ＦＭ　音源	−３
	ＳＳＧ音源	−１
	リズム音源	不明　（現状では−１で変換している。）

+-------+-------+-------+-------+-------
FDH,n1,n2		ループ抜け	（ＰＭＤ，ＦＳＰのＭＭＬでいう':'）
	n1,n2	抜けるアドレス（相対）

+-------+-------+-------+-------+-------
FEh,n1			パンポット

+-------+-------+-------+-------+-------
FFH,n1,n2		パート終了
		n1,n2	Word	0000h		演奏終了
				Address		ループ
========================================
