V3MMLmanual

8.10 #MB:LFO_F:フィルタLFO定義

← 目次

【記述例】

このように書くと、#MB:LFO_F と @lfコマンドによって、フィルタLFOの定義 と適用を記述できます。 フィルタLFOは、#MB:LFO_F と @lfコマンドに加え、@fdコマンドで、フィル タが掛かった状態で使用します。 フィルタLFOで操作するのは、@fdコマンドで適用されているフィルタの、 カットオフ周波数が対象になります。

#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, 0, 0.5,
}
#MB:ENV_A @ea=1 { peak=15, init=& | n:1:15, r:1:0 }
#MB:LFO_F @lf=1  { depth=-12, width=24, delay=24, form=sin_u }
#MB:LFO_F @lf=11 { depth=-12, width=24, delay=24, form=saw_u }
#MB:LFO_F @lf=21 { depth=-12, width=24, delay=24, form=tri_u }
#MB:LFO_F @lf=31 { depth=-12, width=24, delay=24, form=pls_u }
#MB:LFO_F @lf=41 { depth=-12, width=4,  delay=24, form=nzw_u }
#MB:LFO_F @lf=50 { depth=-12, width=24, delay=24, form=table, tbl_atk=1 }
#MB:LFO_F @lf=60 { depth=-12, width=4,  delay=24, form=nlbend, bendrate=64 }
#MB:FILTER_D @fd=1 { type=lpf_h, depth_@ef=0, freq=24000, resonance=0 }
t90 q12,16 v15 @@"pls" o5 @ea1 @fd1
@lf1  c1 @lf11 c1 @lf21 c1 @lf31 c1
@lf41 c1 @lf50 c1 @lf60 c1;

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

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

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

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

tbl_atk=[],

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

tbl_rel=[],

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

bendrate=[],

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

}
#MB:LFO_F @lf=1  { depth=-12, width=24, delay=24, form=sin_u }

depth: depth=[]では、揺らすカットオフの振幅を 0 〜 100 で指定します。 ゼロを指定した場合、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_F)

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に制限されます。