MML reference: Macro

定義(Define)

        $name

引数(Inputs)

name

呼び出すマクロ名です。

内容(Contents)

nameのマクロを呼び出します。
なお、マクロは、PCに搭載されたメモリが許す範囲でネスト(マクロ内でマクロを呼び出し)する事が可能です。
また、マクロの一番最後のコマンドに限り、引数をマクロの外に記述することが可能です。

注意(Notes)

マクロは、MMLコンパイラーの機能です。
データサイズの肥大化を防止するためには、サブルーチン化することをお勧めします。

マクロ中でTRコマンドは使えません。

呼び出し元のマクロと同じ名前のマクロは呼び出せません。
また、呼び出すマクロは、定義されているマクロの中で、長い名前のマクロが優先されます。

マクロの定義は、マクロを呼び出すよりも前に行ってください。
但し、マクロの定義内容の評価は呼び出し時に行うため、マクロ定義内でのマクロの呼び出しはその限りではありませんが、 呼び出された段階では、マクロ内で呼び出すマクロが定義されている必要があります。

例(Sample)

/* macro define */
$macro{
    $macro2 cdefgab>c
} 

$macro2{ l4 o4 }

/* Block of BGM[0] */
BGM(0){
    TR1     $macro1		/* = l4 o4 cdefgab>c1 */
}