要約
- 複数パートに対して記述したMMLに条件をつけてその一部のパートにのみ有効とさせたい場合に利用します。
表記
-
? *1 : [?!:] [?:]
オプション
-
パラメータ 意味 範囲 省略値 *1 パート A0~Z9/0~9 不可
- パート
パート表記の記述ルールに従い、有効とするパートかMML記述チャンネルに定義されたパート順を数値で指定します。- パート名での指定
有効としたいパートをパート表記で指定します。
パートは複数列挙することが可能ですが、範囲での指定は出来ません。 - 定義順での指定
有効としたいパートをチャンネルに定義された順番の数値で指定します。
順番は 0 から始まり、最大 9 まで列挙するし指定可能です。
- パート名での指定
解説
- 複数のパートを定義したMML記述チャンネルで、一部のパートに対してのみ記述内容を有効とします。
- 「if 有効パート then~else~endif」に相当する動作を指定可能です。
- 一度指定した条件は、改行されるか次の条件指定が記述されるまで有効です。
-
「else」に相当する「?!:」を記述すると、条件指定された以外のパートが有効となります。
「endif」に相当する「?:」の記述以降は、定義されたすべてのパートが有効となります。
行の途中で条件を変更したい場合や、元に戻したい場合に利用します。
どちらも省略可能です。
備考
- 定義順で指定を行なう場合は最大10パートまでとなります。
-
指定した条件は1行内でのみ有効となり、複数行に渡る指定は出来ません。
複数行に渡って条件をつけたい場合は、その行ごとに指定を行なって下さい。 - 1行中であれば、何度でも指定を行なうことが可能です。
注意
-
「else」に相当する「?!:」を指定するには、必ず条件指定が必要です。
条件なしにいきなり指定を行なうことは出来ません。
用例
- if/then的な指定
'A0B0 o4 ?A0:v110
条件なしでの記述
'A0 o4 v110 'B0 o4
定義順での記述
'A0B0 o4 ?0:v110
- if/then/else的な指定
'A0B0C0 o4 ?A0C0:v110 ?!:v90
条件なしでの記述
'A0 o4 v110 'B0 o4 v90 'C0 o4 v110
定義順での記述
'A0B0C0 o4 ?02:v110 ?!:v90
- 複雑な指定
'A0B0C0 o4 ?A0:v110 ?!:v90 ?C0:D3 ?:l8 cde
条件なしでの記述
'A0 o4 v110 l8 cde 'B0 o4 v90 l8 cde 'C0 o4 v90 D3 l8 cde
定義順での記述
'A0B0C0 o4 ?0:v110 ?!:v90 ?2:D3 ?:l8 cde