VM7フォーマット解析資料 ver0.2 - revix版 -

1.はじめに

この文書の内容は、YAMAHA MA-7オーサリングツール『ATS-MA7-SMAF』の音色データ形式である『VM7』フォーマットの解析結果です。コンバータ等を自作する際の参考資料にでもして頂ければ幸いです。

2.注意及び免責

3.更新履歴

4.詳細データ

(注意)
ATS-MA7-SMAFver1.0において、本書に記載された仕様に基づいてデータを作成しインポートした場合、 ATS-MA5等のように該当音色のみ書き換えられるのではなく、存在しない番号の音色はダミーデータが書き込まれて しまいます。取り込む際には未使用のバンクに行なって下さい。
なおこれはATS-MA7のバージョンアップにより変更される可能性があります。(MA5の時もそうでした。)

チャンク 'VM7'

チャンク名 "VM7 " データ長  データ
Char(4) = {0x56 4D 37 02} DWORD 可変長データ(サブチャンク)

サブチャンク 'VDM7'

チャンク名 "VDM7" データ長  データ
Char(4) = {0x56 44 4D 37} DWORD 可変長データ(個別音色)

個別音色ヘッダ

+00h  WORD データ番号
+02h Char(16) 音色名
+12h Byte 音色データ長

基本データ

+13h Byte バンクセレクトMSB
+14h Byte バンクセレクトLSB 
+15h Byte プログラムナンバー 
+16h Byte ノート番号
+17h Byte 音源タイプ

★FM音色(音源タイプ = 0)の場合

(ワンポイント)MA7で有効範囲が拡張されたものは、下位1ビットをオプションとして実装されています。

■FM音色基本設定

フィルタEGがONの場合、後述のフィルタEG設定データが付加されます。
アドレス データ型 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
+18h Byte 空き
+19h Byte PAN 空き 1固定
+1Ah Byte LFO PanOff 空き FltEG ALG
空きと記載されている部分はATSで認識されない部分です。
2バイト目の最下ビットは常に1。理由は不明です。

■FM音色オペレータ設定(下記のレイアウトで4セット)

アドレス[1Bh+op*10] データ型 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
+1Bh,+25h,+2Fh,+39h Byte SR(H) XOF SlotFq SUS KSR
+1Ch,+26h,+30h,+3Ah Byte  RR(H) DR(H)
+1Dh,+27h,+31h,+3Bh Byte AR(H) SL
+1Eh,+28h,+32h,+3Ch Byte TL KSL
+1Fh,+29h,+33h,+3Dh Byte 空き DAM EAM 空き DVB EVB
+20h,+2Ah,+34h,+3Eh Byte 空き AR(L) DR(L) SR(L) RR(L)
+21h,+2Bh,+35h,+3Fh Byte WS FB
+22h,+2Ch,+36h,+40h Byte 空き OCT Slot-freq(H)
+23h,+3Dh,+37h,+41h Byte Slot-freq(L)
+24h,+31h,+38h,+42h Byte ※MUL DT
空きと記載されている部分はATSで認識されない部分です。

マルチプルについては変則なので下記の表をご覧下さい。
MA7から非整数倍音が盛り込まれていますが、YM2151のDT2には遠いです。
より高度に非整数倍音を使用したい場合は、発音させるノート番号を前もって決めておき、FqFIXで オペレータ毎に周波数を調整することになると予想されます。
みゅあっぷ98で擬似DT2がこの考え方で実装されていたような気がします。(違うかもしれません)
0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF
x0.5 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x1.414 x12 x1.498 x0.891 x15
※FreqFIXというのは、OPN系音源でいう所の効果音モードと思われます。
ただ、値の指定がfNumなのかfreqなのかは調査中です。


バイナリデータを書き換えてからATSに読み込んだところ、下記のように対応しています。
Note18 +21%
0x01FE  Note18 +15%
0x01FD  Note18 +12%
0x01FC  Note18 +8%
0x01FB  Note18 +5%

■フィルタEG設定(有効の場合に付加)

アドレス データ型 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
+43h Byte 空き Res.
+44h Byte Depth.(0でLFOオフ) Mode Reset Freq.
+45h WORD FC0 (0x0008〜0x1FF8)
+47h WORD FC1 (0x0008〜0x1FF8)
+49h WORD FC2 (0x0008〜0x1FF8)
+4Bh WORD FC3 (0x0008〜0x1FF8)
+4Dh WORD FC4 (0x0008〜0x1FF8)
+4Fh Byte XOF 空き FAR
+50h Byte SUS 空き FDR
+51h Byte KeyFlw 空き FSR
+52h Byte 空き 空き FRR