MML reference: Patch

定義(Define)

        @Pnumber
        @P*

引数(Inputs)

number

パッチ定義の番号を指定します。

また、引数の替わりに`*'を指定することで、パッチ機能を無効化できます。(Default: Disable)

内容(Contents)

音域毎に、音色やエンベロープを定義することで、音域毎に音の変化を持たせることができます。

例えば、ピアノでは、低音域では倍音成分が多く、音量は遅い減衰を持ち、 高音域では倍音成分が少なく、音量は早い減衰を持ちます。 このような音域毎の音の変化を、自動で処理するための機能です。

注意(Notes)

※パッチ機能は、MMLコンパイラ側実装のコマンドです

ドライバ側実装のコマンドと組み合わせた際に、意図通りの動作にならない可能性がございます。
また、MMLコンパイラ側で展開するため、コンパイル後のシーケンスサイズが大きくなる可能性があります。

リピートコマンド内において、リピート毎にオクターブが変化する場合、正常にパッチを展開できません。
例えば、"o4 [2 cegb > ]"といったMMLがあった場合、リピート内はオクターブ4としてパッチを展開するため、
2回目のリピート時は実際のオクターブは5となりますが、パッチのオクターブは4のままとなります。

また、"o4 [2 ceg > c : < gec ]"といったMMLでは、リピート後のパッチのオクターブは4のままとなります。
この場合、リピート後にオクターブコマンドを記述しなおして、MMLコンパイラにオクターブを通知してください。

※サブルーチン使用時における注意

サブルーチンを使用する場合、 サブルーチン先ではサブルーチン元のパッチは適用されないため、 サブルーチン先でもパッチを設定してください。
また、サブルーチン先でオクターブが変化する場合は、 サブルーチン呼び出し後にオクターブコマンドを記述しなおして、MMLコンパイラにオクターブを通知してください。

又、サブルーチンにてパッチ機能を使う場合は、パッチ定義サブルーチン呼出しを記述することはできません。
(サブルーチンのネスティングはできません)

例(Sample)

パッチ定義を参照願います。