V3MMLmanual

8.4 #MB:LFO_P:ピッチLFO定義

← 目次

【記述例】

このように書くと、#MB:LFO_P と @lpコマンドによって、ピッチLFOの定義と 適用を記述できます。

#MB:CONFIG {
lfo_clock: unit=tick: rate=1,
lfo_resol: unit=sec: rate=1/300,
}
#MB:LFOTBL_ATK 1 {
loop=0, cmpl=0, offset=0, denom=1, width_mode=step, |
0, 1, 0, -1,
}
#MB:ENV_A @ea=1 { peak=15, init=& | n:1:15, r:1:0 }
#MB:LFO_P @lp=0  { depth=400, width=24, delay=48, form=sin }
#MB:LFO_P @lp=1  { depth=400, width=24, delay=48, form=sin_u }
#MB:LFO_P @lp=10 { depth=400, width=24, delay=48, form=saw }
#MB:LFO_P @lp=11 { depth=400, width=24, delay=48, form=saw_u }
#MB:LFO_P @lp=12 { depth=400, width=24, delay=48, form=saw_os }
#MB:LFO_P @lp=20 { depth=400, width=24, delay=48, form=tri }
#MB:LFO_P @lp=21 { depth=400, width=24, delay=48, form=tri_u }
#MB:LFO_P @lp=30 { depth=400, width=24, delay=48, form=pls }
#MB:LFO_P @lp=31 { depth=400, width=24, delay=48, form=pls_u }
#MB:LFO_P @lp=40 { depth=400, width=4,  delay=48, form=nzw }
#MB:LFO_P @lp=41 { depth=400, width=4,  delay=48, form=nzw_u }
#MB:LFO_P @lp=50 { depth=400, width=24, delay=48, form=table, tbl_atk=1 }
#MB:LFO_P @lp=60 { depth=400, width=4,  delay=48, form=nlbend, bendrate=64 }
t120 q12,16 v15 @@"pls" o5 @ea1
@lp0 c1&2 @lp1 c1&2
@lp10 c1&2 @lp11 c1&2 @lp12 c1&2
@lp20 c1&2 @lp21 c1&2
@lp30 c1&2 @lp31 c1&2
@lp40 c1&2 @lp41 c1&2
@lp50 c1&2
@lp60 c1&2;

【解説】 ピッチLFOコマンド(@lp[1]): ピッチLFO定義(#MB:LFO_P)の定義番号を整数で指定します。 定義番号は 0 〜 1023 の整数です。 未定義の番号を指定するとエラーになります。 トラック先頭における初期設定では、ピッチLFOは停止状態です。 ピッチLFO定義(#MB:LFO_P): ピッチLFOコマンド(@lp[1])で使用する、ピッチLFO設定を定義します。 ピッチLFO定義方法の概要は、 ・行頭からの記述で、キーワード「#MB:LFO_P」を書く。 ・続けて、スペースを置き、「@lp=定義番号」を書く。 ・続けて、スペースを置き、中括弧「{}」で括られた設定データを書く。 です。 定義番号: 定義番号は、@lpコマンドの引数で使用する番号と合致するように定義します。 定義番号の設定範囲は 0 〜 1023 です。 設定データ: 【記述例】

【解説】 フォーマットは次の通りです。 #MB:LFO_P @lp=定義番号 {

depth=[], width=[], delay=[], form=[],
pwm=[],

(form=plsまたはform=pls_uの場合に指定可能)

tbl_atk=[],

(form=tableの場合に指定可能)

tbl_rel=[],

(form=tableの場合に指定可能)

bendrate=[],

(form=nlbendの場合に指定可能)

}
#MB:LFO_P @lp=0  { depth=400, width=24, delay=48, form=sin }

depth: depth=[]では、揺らす音程の振幅を数値で指定します。 単位は、psコマンドで設定されている音程の解像度です。 ゼロを指定した場合、ピッチLFOが無効になります。 負数を指定した場合、変化パターンの上下が反転した動作になります。 振幅は「depth × formの波形変位」で得られます。 formの波形変位は、通常 -1 〜 1 ですが、 ユーザー定義テーブルの場合は、自由に変位が定義できるため、振幅演算が 「depth × テーブル値」となる点に注意してください。 width: width=[]では、formの指定内容によって、widthの時間単位が変わります。 formが、sin,saw,tri,pls, のとき: width は form波形1周期の長さを数値で指定します。 数値は1以上の値を指定してください。 周期の時間単位の初期設定は「1tickカウント」ですが、LFOクロック設定 (@locコマンドなど)により、テンポに依存しない時間単位(0.01秒など)にも 出来ます。 formが、nzw*,table,nlbend, のとき: width は LFOステップ数を数値で指定します。 数値は1以上の値で指定してください。 LFOステップ数は、LFO解像度設定(@lorコマンドなど)で決まる、LFO 専用の最少時間単位です。 さらに、form=table の場合は、ユーザー定義テーブル内の設定で、widthの動作 モードを、LFOステップ数とLFOシフト数の2つから選択します。 詳細は「#MB:LFOTBL_ATK」を参照してください。 delay: delay=[]では、ノートオンからLFO開始までの遅延時間を数値で指定します。 時間単位は width 同様です。 delay が 0 以上のとき: ノートオンの都度、LFOシーケンスが再スタートします。 (ノートオン同期モード) delay が負数のとき: ノートオンでLFOシーケンスが再スタートしない、ノートオン非同期モードと なります。いかなる負数の値も、このモード指定と判定されます。

ノートオン非同期モードにおいて、任意のタイミングでLFO位相のリセットを 行いたい場合は、LFOの再スタートコマンドを使用します。 LFOコマンドの指定時には、同期・非同期モードに関わらずLFOシーケンス は位相ゼロからスタートします。 form: form=[]では、変化パターンの波形を指定します。(波形パターン詳細) form=pls* のとき: 追加で次の項目を設定します。

pwm=[],

(任意:デューティ比) pwmの設定範囲は 0.05 〜 0.995 です。 pwmを省略した場合の初期設定は「pwm=0.5」(デューティー比=50%)です。 form=table のとき: 追加で次の項目を設定します。

tbl_atk=[],

(必須:#MB:LFOTBL_ATKで定義したテーブル番号)

tbl_rel=[],

(任意:#MB:LFOTBL_RELで定義したテーブル番号) tbl_relを省略した場合、常に「tbl_rel=-1」と解釈され、tbl_relは未使用扱い になります。 【formと波形の対応表】(#MB:LFO_P)

form

波形

sin

サイン波

sin_u

調整サイン波

saw

ノコギリ波

saw_u

調整ノコギリ波

saw_os

ノコギリ波ワンショット

tri

三角波

tri_u

調整三角波

pls

パルス波

pls_u

調整パルス波

nzw

ホワイトノイズ

nzw_u

調整ホワイトノイズ

table

ユーザー定義テーブル

nlbend

ノンリニアベンド

tbl_atkの設定範囲は 0 〜 4095 です。 tbl_relの設定範囲は 0 〜 4095 です。 ただし、いずれも、未定義のテーブル番号を指定した場合、LFO変化が無効に なります(変化のないダミーテーブルが参照されます)。 form=nlbend のとき: 追加で次の項目を設定します。

bandrate=[],

(必須:ノンリニアベンドの変化率) bendrateの設定範囲は 1.0 〜 512.0 です。 1未満もしくは512超えの指定は、それぞれ1、512に制限されます。