HomeBakery

FM音源ドライバ「FMP」で作成した曲を公開しています。
FMP7の使い方からMMLによる曲データ作成の方法も掲載!

応用編7:LFOで表現力アップ!(オートパン編)

2014-05-09 20:48:23 | 曲データの作り方(応用編)

LFO編の最後は、オートパンです。

今回は「パンポット」に対してLFOを掛けてみます。
どういう効果になるのかは、これまでの説明から大体イメージできているのではないかなーと思います。(^-^;

では、以下のMMLをコンパイルしてみてみましょう。

'{
 Title=LFO(オートパンsample)
 DataCreator=wani
 
 PartSSG=A0-A1
 PartMixLevel=100
 ClockCount=192
}
 
'A0 T134
 
'A0 v120 o5 l16 D 0 P128 MQP 0,8,1,128,0,0 SQ0
'A1 v 60 o5 l16 D 2 P128 MQP 0,8,1,128,0,0 SQ0 r8

 
★SSGエンベロープ
'@ E 1, 255,255,255,255,004,010

'A01 SQ0 E1 @2,1 Q7 ef+g+bed+c+<bag+ab>ed+ef+<b>bag+>ed+ef+bg+abed+ef+< r4
'A01 SQ1 E1 @2,1 Q7 ef+g+bed+c+<bag+ab>ed+ef+<b>bag+>ed+ef+bg+abed+ef+< r4

「オートパンを掛ける前」と「オートパンを掛けた後」で同じメロディーが2回鳴ります。
どうでしょう?イメージ通りでしたか?

理屈は簡単でも、パンポットにLFOを掛けるなんて面白いアイデアだと思います。
FMP7では、255段階のパンが指定できることは以前、説明しました。
ただ、今回のサンプルみたいに流れるようなパン切替を、「P」コマンドを使って手動で再現することはとっても大変です。
LFOでオートパンを使えば簡単に実現できますので、とても便利ですね。

では、オートパンのLFOコマンドを確認してみましょう。

MQP 0,8,1,128,0,0

今回のサンプルだと、タイプ=P(オートパン)、delay=0、speed=8、rate=1、depth=128、波形=0(三角波)
という設定パターンを「Q」チャネルとして保持するという設定にしてみました。チャネルを「P」ではなく「Q」にしたのは、タイプの「P」と見分け易くしたかっただけです。

タイプを「P」とすることで「オートパン」として動作。
delay=0なので、音の鳴り始めからオートパンが動作。
speedで、パンの移動速度を指定しています。
rateで、実際のパンの移動方向と、相対的な移動量を指定しています。
depthで、折り返しポイントとなる移動量を指定しています。
波形で、パンの動き方を指定しています。

そして、前回のビブラート・トレモロでは「省略可能」だったので省きましたが、今回、「シンクロ」のパラメータを設定しています。
MMLマニュアルでは「キーオンと同期して動作させるかの指定を行う」と記載があります。
簡単に言うと「LFO効果の開始を、音と同期させるか?させないか?」という意味だと捉えて下さい。

今までのビブラートやトレモロでは、音を鳴らすとLFOの効果が始まりますが、次の音が鳴るとLFOの効果は一端リセットされて、また始めからとなります。
ここで言う「リセット」というのは、例えばdelay指定している場合は「delay分、LFO効果の発生を待つ」ところから再スタートという意味です。
つまりLFO効果を開始する契機は、常に音の発生と供にあります。これを「キーオン同期指定」と言います。

「キーオン非同期指定」はその逆で「音の発生には全く関係なくLFOの効果を開始」します。
つまり「次の音の鳴り始め」だろうが、ぶっちゃけ「音自体が鳴ってない(休符)」だろうが、LFOの効果が継続されるというわけです。

今回のオートパンでは、「キーオン非同期指定」を使用しています。
「休符」だろうが何だろうが、パンの流れは止めたくありませんからね。
で、この「シンクロ」パラメータは、省略すると「1:キーオン同期指定」になってしまうので、今回のオートパンでは明示的に「0:キーオン非同期指定」にしているのです。


次にそれぞれのパラメータを実際いじってみて下さい。

delayは、オートパンでは「0」以外にすることはあまりないかと思います。
 「キーオン非同期指定」にしていますので、「SQ1」でLFO動作スイッチをONにした瞬間だけdelay分待ちますが、一度オートパンが開始されたらもう待つことはありません。

speedは、数値が大きいほど流れがゆっくりになります。

rateは、まず移動方向を決定します。
 0より大きければ右へ向かって移動開始し、0より小さい(マイナスで)あれば左へ向かって移動を開始します。
 そして数値そのものは、「1回の移動に対しての相対量」を示します。
 数値の分だけ相対的にパン位置が移動しますので、数値が小さければ細かく刻みながらパンが移動するため「ゆっくりだけど滑らかな流れ」となります。
 逆に数値が大きいと大きく刻みながらパンが移動するので、「流れが速くなる分滑らかさは失われる」ということになります。

depthは、反対側へ折り返すポイントを指定しています。
 オートパンを開始した時点でのパンの位置を中心とし、指定した数値分移動したら反対側へ折り返す仕組みです。

波形は、今回は左右に行ったり来たりといった動きのオートパンにしたかったので「三角波」にしました。
 ビブラートで学んだ「のこぎり波」にすると、左から右への一方通行な動きになりますし、
 トレモロで学んだ「ワンショット」を使うと、右に移動して一番右に到達したら、そこでパン位置が止まるような動きになります。


一通り説明が終わったところで、改めて今回のサンプルの動きを解説します。

(0)1回目のメロディーの説明は割愛します。以下、2回目のメロディーです。
(1)まずスタート時のパン位置をA0、A1チャンネル供に一番中央にしておき、そこから「SQ1」でオートパンを開始。
(2)rate=1なので、最小単位で刻みつつ滑らかに右へ移動開始。
(3)depth=128なので、中央から128相対的に右へ移動した場所、つまり一番右まで移動したら折り返す。
(4)折り返し後、中心のパン位置が中央なのでそこまで戻る。
(5)今度は中央から128相対的に左へ移動し、同じように一番左まで移動したらまた折り返す。
(6)折り返し後、中心のパン位置が中央なのでそこまで戻る。

という一番シンプルなパターン構成となっています。

ここでポイントとなるのが、「S」コマンドによるオートパンの開始タイミングです。
先ほどの説明の通り「キーオン非同期指定」にしていますので、「SQ1」でLFO動作スイッチをONにした瞬間からオートパンは動作を開始します。
もう少し正確に言うと、デフォルトのLFO動作スイッチは「ON」のため、「M」コマンドでLFO指定するだけで、「キーオン非同期指定」であるオートパンは動作を開始してしまいます。
ですので、「キーオン非同期指定」のLFOを使う場合は「M」コマンドでLFOを指定した直後、「S」コマンドでLFO動作スイッチを「OFF」にしておくことをオススメします。
そしてオートパンを使いたい直前でLFO動作スイッチを「ON」にすれば良いのです。


今回は説明のほうが多い内容となってしまいましたが、以上でLFO編の説明は全て終了しました。
「ビブラート」「トレモロ」「オートパン」。
これらを単独あるいは組み合わせることで、音の表現力がアップすることがお分かり頂けたかと思います。

そして、次回以降の予定です。
ノイズの使い方、ドラムなどのパーカッションの作り方、そしてFM音源音色。
この辺りに切り込んでいくつもりですが時期未定ということで。w