音色設定


基本的(?)な構造でもMLDフォーマットは128種類の音色を使えるのですが、そこは折角のFM音源。音色をいじってやらなければ勿体無いということでFFF0データです。

※MFi2ではこの書式は無効となっています。

※このページのデータはDJ-DAICHANさんのHPの掲示板の書きこみを元にHTML形式にまとめたものです。


音色設定基本構造
  システムメッセージ 音色設定パート指定 モジュレータ キャリア オクターブセレクト
6byte 1byte 4byte 4byte 1byte
フォーマット 00FFF0000B01 00 01EFC8CA 01DBC800 00

  Δタイム システムコード データ長 定数 実データ
1byte 2byte 2byte 1byte nbyte
フォーマット 00 FF F0 29 01
※ボルド体は可変です

システムメッセージ xxFFF0の後につづけて実データの合計サイズ+1(0Bh、15h、1Fh、29hのいずれか)、定数01hを記述した後1パート10バイトづつの音色データを指定していきます。
よって最大40バイト+システムメッセージの6バイト(46バイト)が音色データ設定の
最大データ長になります。(サンプル音色はエレキベース)


音色設定パート指定
    パート  
ビット列 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
フォーマット 0 0 0 0 0 0 0 1

bit6 bit5 パート
0 0 第1パート
0 1 第2パート
1 0 第3パート
1 1 第4パート

音色設定パート指定部のbit5,6を使って音色の設定をするパートを指定します。
それ意外のビットが恐らく固定なので第一バイト目が
01=Part1、21=Part2、41=Part3、61=Part4というようにバイト単位で指定できます。

モジュレータパラメータ
  1byte目 2byte目 3byte目 4byte目
ML VIV EG SUS RR上位
2bit
RR下位
2bit
DR AR上位
2bit
AR下位
2bit
SL TL上位
2bit
TL下位
4bit
WF FB
ビット列 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
フォーマット 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

キャリアパラメータ
  1byte目 2byte目 3byte目 4byte目
ML VIV EG SUS RR上位
2bit
RR下位
2bit
DR AR上位
2bit
AR下位
2bit
SL TL上位
2bit
TL下位
4bit
WF 空き
ビット列 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
フォーマット 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 x x x

ML マルチプル 倍音比
VIV ビブラート許可 FFF1データでビブラートを設定する場合には1を設定
SUS サスティン 発音し終わってからの減衰を長くする時に1。RR6に相当
AR アタックレート 音の立ちあがり 大きいほど速い
RR リリースレート ノートオフしてからの減衰時間 大きいほど遅い
DR ディケイレート 音が立ち上がりきってからの減衰時間 大きいほど速い
SL サスティンレベル ディケイの減衰幅 大きいほど減衰幅が大きい
TL トータルレベル OPの振幅 小さいほど音量が大きい(キャリアでは無意味)
WF ウェーブフォーム 0でサイン波 1で半波
FB フィードバック モジュレータのみにある機能 大きいほど音がきつくなる

以下、4バイトづつモジュレータ、キャリアの設定を行います。

オクターブセレクト
    セレクト
ビット列 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
フォーマット 0 0 0 0 0 0 0 0

bit1 bit0 オクターブ
0 0 ラ▼▼▼ 〜 ド
0 1 ド#▼▼ 〜 ド▲
1 0 ド#▼ 〜 ド▲▲
1 1 ド# 〜 ド▲▲▲

最後の1バイトの最下位2bitで発音するオクターブの領域を指定します。
ハード的に3オクターブしか出ないみたいなので、それ以上を再現するには2つの音色を
用意することになります。1パートに1音色が限界っぽいのでパートも複数用意することに
なりますね。


戻る