inu goya - 一覧 - mdcomp32 ( 紹介 - 履歴 - fmcomp出力仕様 - 楽曲見本 )

fmcompデータ出力仕様 FMC version 001 (mdcomp32 v1.01出力)

■fmcompデータ出力(ファイルメニュー)で保存できる.fmdのフォーマット
  +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +a +b +c +d +e +f
+0 'F' 'M' 'P' '0' '0' '0' 'F' 'M' 'C' '0' '0' '1' ch*2 予約 開始位置
+10 CH1 CH2 CH3 CH4 CH5 CH6 CH7 CH8
+20 CH9 (CH10) (CH11) (CH12) (CH13) (CH14) (CH15) (CH16)
+30 データ
 
+0 ~ +5 FMP000 文字 (プレイヤー用識別文字)※ユーザーが変更しても良い
+6 ~ +b FMC001 文字 (フォーマット識別文字)※各バージョンに互換性は無い
+c チャンネル×2byte(CH16として通常0x20が入る)
+d 予約領域
+e +f データ開始位置(CH1のオフセット格納位置、通常0x10が入る)
+10 +11 CH1データの開始オフセット(通常0x10を引いた値0x20が入る)

注意書きがない場合、複数バイトにまたがる数値はリトルエンディアンで格納
また、各値は8bitの場合0~255 , 16bitは0~65535までの符号無値
CH1のデータが先頭+30のところから始まっている場合、+10に0x20 , +11に00が入る。

■格納データ
データはアドレスの小さい側に1byteに機能・音階コード、2byte目に長さ・数値が入る。
  o0 o1 o2 o3 o4 o5 o6 o7    長さ 定義値    長さ 定義値
C 1 13 25 37 49 61 73 85   1. 192   16. 12
C# 2 14 26 38 50 62 74 86   1 128   16 8
D 3 15 27 39 51 63 75 87   2. 96   32. 6
D# 4 16 28 40 52 64 76 88   2 64   32 4
E 5 17 29 41 53 65 77 89   4. 48   64. 3
F 6 18 30 42 54 66 78 90   4 32   64 2
F# 7 19 31 43 55 67 79 91   8. 24   128 1
G 8 20 32 44 56 68 80 92   8 16      
G# 9 21 33 45 57 69 81 93            
A 10 22 34 46 58 70 82 94            
A# 11 23 35 47 59 71 83 95            
B 12 24 36 48 60 72 84 96            
※0番は無音コード
各チャンネルの終了は255,255のペアでチャンネルデータの終了とする。

機能番 意味
255 255 終了コード
254 楽器No. 楽器変更 0~127 (初期値=0)
253 音量 音量変更 0~16 (初期値=10)
252 テンポ テンポ変更 10~250 (初期値=120)
251 0 &命令
250 割合 Q命令 1~8(初期値=8または7)
249 割合 音の左右振り分け(0~127)

0~96までは音階、97~248までは現在未使用(機能追加時は248から小へ)

mdcomp32から出力したデータをバイナリエディタで見た場合。
( ch1 { "o4c4d8r8" } )
fmcompデータバイナリエディタ表示
0x31 = 49 (o4 C)
0x20 = 32 (L4)
0x33 = 51 (o4 D)
0x10 = 16 (L8)
0x00 = 00 (無音)
0xff = 255 (終了コード)
+c には0x20が入っているが+10から+2fまでのCH1~CH16までの16チャンネル分場所を用意している(実際に使用しているのはCH1~CH9まで)
各チャンネルをすべて合わせたバイトは64kバイトまでとする。
理論上65535を越えた演奏データを作成できるが、符号なし16bit値を考慮して65535を越えないようにデータを作成するのが望ましい。
 
mdcomp32 ( 紹介 - 履歴 - fmcomp出力仕様 - 楽曲見本 )
一覧
先頭頁に戻る
[20230331]
©wnc develop