V3MMLmanual

6.9 @@"fms":FM音源

← 目次

【記述例】

@@"fms"

【解説】

使用する音源モジュールを、FM音源にします。

【備考1】

「FM音源の音色作成に関わる用語説明」を、別の章に詳しく書いているので、参照してください。
用語説明の章はこちら

【備考2】

FM音源では、次のメタデータ定義のいずれかによって、音色番号に音色データを割り当てたものを使用します。

メタデータ定義 モード
#MB:FMS_6OP 6オペレータモード
#MB:FMS_4OP 4オペレータモード
#MB:FMS_2OP 2オペレータモード
#MB:FMS_OPM OPM互換の4オペレータモード
#MB:FMS_OPNA OPNA互換の4オペレータモード
#MB:FMS_OPN OPN互換の4オペレータモード

音色データの選択は、音源サブフォーム番号(@番号)によって、音色番号を指定して行います。

【備考3】

当FM音源モジュールは、OPMの上位互換になっていて、内部にオペレータを6個持っています。

音色定義の書式は複数ありますが、複数の独立した音色定義領域を持っている訳ではなく、実体は6オペレータモード用の記憶領域があるだけです。

どの音色記述方法でも、6オペレータモード用の記憶領域に設定されます。

6オペ以外の記述方法では、使わないオペレータを未使用状態に設定しています。そのため、音色番号3番は6オペモード、音色番号8番は4オペモードというように、オペレータモードが混在した定義になります。

同じ番号に複数の音色定義をした場合、最後の定義が有効になるので、音色番号の重複定義には注意してください。

【備考4】

有効な音程の範囲は、実際のOPMでは 3.58MHz 駆動の場合、「o0C+ から o8C まで」ですが、当FM音源モジュールでは、MMLオクターブ指定における範囲と同等の範囲で受付可能です。

ただし、音色データ内の KS(キースケーリング)は、実際のOPM相当における最低音程以下には最低音程、最高音程以上には最高音程とみなして動作します。


yコマンドにおける、音源モジュールへの設定(1)

サブフォーム番号指定

y"subform",[1]

全てのオペレータの音源サブフォーム番号を、[1] に設定します。
設定範囲は、0 〜 1023 です。
ただし、メタデータ定義にて音色データを定義した番号に限られます。


波形生成モード指定

y"reso_mode",[1]

フェーズジェネレータ部の波形生成モードを、[1] に設定します。
設定範囲は、0 〜 8 です。

上記 1 〜 8 の場合、(384000Hz÷設定値)の生成レートとなります

※ネイティブモードとは、次の設定によるモードです。

#MB:CONFIG {
   fms_master: clock=[1]: prescale=[2],
}

ネイティブモードでは、上記の設定によるレート(clock÷prescale)で波形生成を行います。


ノートオン時EGレベル指定

y"eg_reset",[1]

ノートオン時の初期エンベロープレベル(IEL)の動作モードを、[1] に設定します。
設定範囲は、-1 または 0 〜 128 です。
初期設定は -1 です。

【備考】

音色を OPM / OPNA / OPN モードで定義している場合は、いずれも音色定義で IEL を変更できません。これらのモードでは、IEL は内部で全てのオペレータに対し「ノートオン直前までのレベルを引き継ぐモード」に設定されています。


フィードバックへのバイアス指定

y"fb_bias",[1]

フィードバックレベルへのバイアス調整値を [1] に設定します。
設定範囲は 0.75 〜 1.35 です。
初期設定は 1.0(バイアス無し)です。
指定値が大きくなるほど音色が明るくなり、小さくなるほど曇った感じになります。


ハードLFOパラメータ指定

y"set_hlfo",[1]

ハードLFOの設定を行います。
この設定は、@mh または @mha により内部で呼び出すために使用されますので、通常は使用しないでください。


エンベロープダンパーコマンド指定

y"set_dampfunc",[1]

エンベロープダンパー(消音機能)の設定、または、実行を行います。
エンベロープダンパーでは、休符途中でのリリースレートを一時的に操作することで消音を行います。
ダンパー実行後は、次のノートオンで元のリリースレートに自動復帰します。
設定範囲は、-1 または 0 〜 15 です。
指定値による動作は次の通りです。


全オペレータ加算値のリセット指定

y"reset_addv",[1]

[1] による宛先の、全オペレータへの加算値設定を0にリセットします。 設定範囲は、0 〜 3 です。

※「***」に当てはまる文字は “op1” 〜 “op6” です。全てのオペレータが対象になります。


AME=1オペレータのTL加算指定

y"add_tl_ame1",[1]

音色設定内の AME が 1 になっているオペレータのみ、TL値が、音色設定の TL に [1] を加算した値になります。
このコマンドは、"***_add_tl"の設定内容を、AME が 1 になっているオペレータのみを対象に上書きするものです。
※「***」に当てはまる文字は “op1” 〜 “op6” です。


エンベロープ出力レベル、即時加算指定

y"add_el",[1]

全オペレータの、現在のエンベロープ出力レベルに対し、[1] を直ちに加算します。(@mzコマンドと同様)


エンベロープ出力レベル、ノートオン時の加算指定

y"add_el_each",[1]

全オペレータの、現在のエンベロープ出力レベルに対し、ノートオンの都度、ノートオンの直前に [1] を加算します。(@mzeコマンドと同様)


ハードLFOモード指定

y"hlfo_mode",[1]

FM音源のハードLFOモードを、[1] に設定します。
設定範囲は、-1, 0, 1 のいずれかです。初期設定は -1 です。

ハードLFO処理を行わない場合、その分処理が軽くなります。


ハードLFOパラメータ指定

y"@mh_wf",[1]

OPM HARD LFO: wave form(0〜3)

y"@mh_lfrq",[1]

OPM HARD LFO: frequency(0〜255)

y"@mh_pmd",[1]

OPM HARD LFO: pmd(0〜127)

y"@mh_amd",[1]

OPM HARD LFO: amd(0〜127)

y"@mh_pmsams",[1]

OPM HARD LFO: pms/ams
pmsは0〜7で上位4bit、amsは0〜3で下位4bit の書式で指定します。
例えば、pms=7、ams=3のときは、0x73なので、10進数では115で指定します。

y"@mh_sync",[1]

OPM HARD LFO: sync-mode(0〜1)

y"@mh_spd_adj",[1]

OPM HARD LFO: SpeedAdj.
OPM互換HLFOの速度倍率を、[1] に設定します。
設定範囲は 0.5 〜 2.0 です。初期設定は 1.0(等倍)です。

y"@mha_lfrq",[1]

OPNA HARD LFO: frequency(0〜7)

y"@mha_amspms",[1]

OPNA HARD LFO: ams/pms
amsは0〜3で上位4bit、pmsは0〜7で下位4bit の書式で指定します。
例えば、ams=3、pms=7のときは、0x37なので、10進数では55で指定します。

y"@mha_sync",[1]

OPNA HARD LFO: sync-mode(0〜1)

y"@mha_spd_adj",[1]:

OPNA HARD LFO: SpeedAdj.
OPNA互換HLFOの速度倍率を、[1] に設定します。
設定範囲は 0.5 〜 2.0 です。初期設定は 1.0(等倍)です。


オペレータ個別の設定(***の部分が宛先OP)

DT3への加算値指定

y"***_add_dt3",[1]

オペレータの DT3 への加算値を、[1] に設定します。(この加算値は記憶されます)

※この加算値に現在設定されている音色データから対応す る DT3 値を呼び出して加算した結果を音源モジュー ルにセットします。ただし、加算結果は -9600〜9600 に 制限されます。


TLへの加算値指定

y"***_add_tl",[1]

オペレータの TL への加算値を、[1] に設定します。(この加算値は記憶されます)

※この加算値に現在設定されている音色データから対応す る TL 値を呼び出して加算した結果を音源モジュールにセ ットします。ただし、加算結果は 0〜127 に制限されま す。


IPHの指定

y"***_iph",[1]

オペレータの IPH を、[1] に設定します。


IELの指定

y"***_iel",[1]

オペレータの IEL を、[1] に設定します。


ARの指定

y"***_ar",[1]

オペレータの AR を、[1] に設定します。


D1Rの指定

y"***_d1r",[1]

オペレータの D1R を、[1] に設定します。


D2Rの指定

y"***_d2r",[1]

オペレータの D2R を、[1] に設定します。


RRの指定

y"***_rr",[1]

オペレータの RR を、[1] に設定します。


D1Lの指定

y"***_d1l",[1]

オペレータの D1L を、[1] に設定します。


TLの指定

y"***_tl",[1]

オペレータの TL を、[1] に設定します。


KSの指定

y"***_ks",[1]

オペレータの KS を、[1] に設定します。


MULの指定

y"***_mul",[1]

オペレータの MUL を、[1] に設定します。


DT1の指定

y"***_dt1",[1]

オペレータの DT1 を、[1] に設定します。


DT2の指定

y"***_dt2",[1]

オペレータの DT2 を、[1] に設定します。


DT3の指定

y"***_dt3",[1]

オペレータの DT3 を、[1] に設定します。


DT4の指定

y"***_dt4",[1]

オペレータの DT4 を、[1] に設定します。


FBの指定

y"***_fb",[1]

オペレータの FB を、[1] に設定します。


AMEの指定

y"***_ame",[1]

オペレータの AME を、[1] に設定します。


MSKの指定

y"***_msk",[1]

オペレータの MSK を、[1] に設定します。


yコマンドにおける、音源モジュールへの設定(2)

特殊動作対応の yコマンド

system1 opm-volume support (master & ch)

y"sys1_msvchv",[1]

master volume と ch.volume の設定です。
引数からTL値を計算して、キャリアのTLに音量の書き込みを行います。

引数[1]は、16進数2桁の2個パックとして解釈されます。 16進数で「0xaabb」と記述した場合、次のようになります。

master volume 及び ch.volume は、書き込んだ値が記憶され、"sys1_msv"もしくは"sys1_chv"yコマンドで利用されます。

master volume 及び ch.volume の初期値は双方255です。

[1]に負数を指定した場合、 現状の master volume 及び ch.volume にてTL値を再計算して設定します。

負数指定は、音色の変更があった直後の使用を想定しています。


system1 opm-volume support (master)

y"sys1_msv",[1]

master volume の設定です。
引数からTL値を計算してキャリアのTLに音量の書き込みを行います。

引数[1]は、master volume です。
設定範囲は 0 〜 255 です。

ch.volume は、以前書き込んだ値が読み出されて設定されます。ch.volume の初期値は255です。

引数[1]に負数を指定した場合、現状の master volume 及び ch.volume にてTL値を再計算して設定します。

負数指定は、音色の変更があった直後の使用を想定しています。


system1 opm-volume support (ch)

y"sys1_chv",[1]

ch.volume の設定です。
引数からTL値を計算してキャリアのTLに音量の書き込みを行います。

引数[1]は、ch.volume です。
設定範囲は 0 〜 255 です。

master volume は、以前書き込んだ値が読み出されて設定されます。master volume の初期値は255です。

引数[1]に負数を指定した場合、現状の master volume 及び ch.volume にてTL値を再計算して設定します。

負数指定は、音色の変更があった直後の使用を想定しています。


system1 opm HLFO support

y"sys1_pmdamd",[1]

HLFOパラメータのPMDAMDの2つを1度に設定します。

引数[1]は、16進数2桁の2個パックとして解釈されます。
16進数で「0xaabb」と記述した場合、次のようになります。