V3MMLmanual

6.26 @ph[1],[2]:位相リセットモード設定

← 目次

【記述例】

この場合、ノートオンの都度、位相が0スタートします。 【解説】 ノートオンの都度、音源モジュールの位相をリセットするかどうか、の設定を行 います。ただし、位相リセットをサポートする音源モジュールが選択されている 場合に限ります。 指定する引数は次の通りです。 引数[1]…モード番号(mode) 引数[2]…位相値(phase) 引数はカンマで区切って指定します。 @phコマンドを受け付けた直後のノートオンは、mode に関わらず、 必ず位相が phase の内容でリセットされます。 引数[1](mode) ノートオン時の、位相リセットモードを整数で指定します。 mode が 0 のとき ノートオンの都度、位相をリセットしません。 mode が 1 のとき ノートオンの都度、位相をリセットします。

@@"wvm" @0 @ph1,0 cde;

【位相リセットをサポートする音源モジュールとその初期設定】 音源名 初期設定 音源名 初期設定

@@"sin"
@ph0,-1
@@"pls"
@ph0,-1
@@"saw"
@ph0,-1
@@"cpx"
@ph0,-1
@@"tri"
@ph0,-1
@@"wvm"
@ph0,-1

mode が 2 のとき 今回ノートオンが直前ノートオフと同時刻の場合(休符やゲートでの間隔が無い 場合)、位相をリセットしません。 今回ノートオンが直前ノートオフと同時刻でない場合(休符やゲートでの間隔が ある場合)、位相をリセットします。 mode が 3 のとき 無音状態(エンベロープが完全に終了した状態)からのノートオンの場合、位相 をリセットします。 無音状態でない場合でのノートオンの場合、位相をリセットしません。 mode が 4 のとき ノートオンの都度、位相をリセットしませんが、「@番号」による音源サブフォー ム指定コマンドを使用した直後のノートオンのみ、位相をリセットします。 mode に 0 以上の値を指定した場合で、上記 mode 以外の値を指定した場合、 mode に 1 が指定されたものとみなされます。 mode が -1 のとき 既に設定済みの mode と phase を変更せずに、強制的に、既に設定済みの phase に位相をリセットします。この位相リセットは即時実行の単発です(ノー トオンの都度には実行しません)。 mode指定が -1 のときは、phase の指定は不要で、指定したとしても無視されま す。 -1 以外の負数の指定の場合は、-1 が指定されたものとみなされます。 引数[2](phase) modeに従ったタイミングで位相リセットする際の、位相値を指定します。 書式1:0 以上 1 未満の浮動小数点数 ノートオン時にリセットする際の位相を、0 以上 1 未満の浮動小数点数で指定 します。省略した場合は、0 を指定したものとみなされます。 (0〜1は、0〜2*pi に対応) 書式2:負数(-1) phase に -1 と指定すると、ノートオン時の位相をランダムな位置にリセットし ます。

【備考1】 phase に「?番号」と指定すると、ノートオン時の位相にランダム値パレットを 利用できます。 ランダム値パレットとは、MMLコンパイル開始時に毎回1回初期化される、 0〜1の浮動少数点数のランダム値を格納する配列で、0番〜99番の100個 が用意されています。例えば、 と指定すると、直後のノートのみ、0番のランダム値パレットで位相リセットし ます。 これは、複数トラックで開始時の位相のランダム値を一致させたい場合を想定し ています。 【備考2】 「?番号」と、引数[2]での「-1」の違いについて。 「?番号」では、番号ごとにコンパイル開始時に数値が決定され、全てのトラッ ク、全ての位置で、番号が同じであれば同じ値が適用されます。 「-1」では、ノートオンなどの位相リセットのタイミングでその都度ランダム値 が生成されます。

@ph0,?0