MA-2 オーサリング・ツール (ATS-MA2-SMAF) のFM音色エディタでセーブした、バンク単位の音色情報ファイル (.vma ファイル) の音色データ部のフォーマットを調べた結果を次に示します。
バンク単位のファイルなので、1ファイル中に 128 音色分のデータが格納されています。
ファイルの前半は、1音色当り 16 バイト長の音色名の文字列を並べたものになっています。
ファイルの後半には、1音色当り 26 バイト長の音色パラメタが並べられています。
各オペレータ毎に 5 バイトずつ、バンク番号、音色番号、LFO/FB/ALG などに 5 バイトが割り当てられています。
MA-2 のレジスタ記述の資料がないので、詳細は分かりませんが、おそらく、音色ファイル中のフォーマットは、実際のレジスタのパラメタの割り付けに合わせてあると思われます。
フォーマットを合わせてあれば、音色データ・ロードは、単にデータをファイルからレジスタにコピーするだけです。
オフセット 0、4、25 の用途については分かりません。 音色ファイルはFMメロディ音色だけでなく、ADPCM 音色やドラム音色などがありますから、それらの区別のフラグかも知れません。
他のタイプの音色ファイルについては調べていません。
ATmega168 版のFM音源プログラムでは、メモリ容量の制限がきついので、オペレータ 2 個分の 10 バイトと、LFO/FB/ALG の 1 バイトの計 11 バイトだけを ROM 上の音色データとして保持しています。
他の版のFM音源プログラムでは、2 バイト境界にアライメントするように、オペレータ 1 個当り 6 バイト、バンク番号、音色番号、LFO/FB/ALG に 4 バイトを割り当てています。
1 音色当りでは 14 バイトになります。
「vma2.c」ファイル中に、FM音源プログラムで使っている音色データ配列の初期化データが記述してあります。
.vma ファイルから vma2.c ファイルを作り出すのが vma2c プログラムです。
その処理は、読み込んだ .vma ファイルの音色パラメタを、不要バイトを削除したり、アライメントに合うようにバイトを追加したりするだけで、データの変換は行っていません。
MA-2 オーサリング・ツールは無償でダウンロードし、使用することができますが、ダウンロード時にライセンス条項に同意する必要があり、同意した人しか使用することができません。
FM音源プログラムに MA-2 オーサリング・ツール付属のデータである .vma ファイルから作成したファイルを同梱すると、ライセンスに同意していない人にデータを使わせることになってしまいますから、配布パッケージには付属させていません。
代わりに、OPL3 用のフリーな音色データである「std.sb」から変換したデータを付属させています。
FM音源プログラムの配布パッケージに「std.sb」ファイル自体は付属させていません。
このファイルは ALSA プロジェクトの alsa-tools パッケージの seq/sbiload フォルダにあります。
当然のことながら、MA-2 ネイティブの音色データの方が良い音なので、音色データを差し替えることをお勧めします。
最後に、OPL3 と MA-2 のオペレータのパラメタ割り付けをまとめておきます。
OPL3 Operator
  7   |
  6   |
  5   |
  4   |
  3   |
  2   |
  1   |
  0   |
AM |
VIB |
EGT |
KSR |
MULT |
KSL |
TL |
AR |
DR |
SL |
RR |
DAM |
DVB |
SUS |
WS |
  7   |
  6   |
  5   |
  4   |
  3   |
  2   |
  1   |
  0   |
LFO |
ALG |
FB |
MA-2 Operator
  7   |
  6   |
  5   |
  4   |
  3   |
  2   |
  1   |
  0   |
MULT |
VIB |
EGT |
SUS |
KSR |
RR |
DR |
AR |
SL |
TL |
KSL |
DVB |
DAM |
AM |
WS |
  7   |
  6   |
  5   |
  4   |
  3   |
  2   |
  1   |
  0   |
LFO |
FB |
ALG |