土曜日, 8月 12, 2006

「サクラ」のコントロールチェンジオプション

今日は、コントロールチェンジの値を一定のロジックで変化させる「サクラ」のコマンドを試してみる。

例えば、音の定位を決めるパンポットの値を細かく動かせば結構面白い効果が出せるような気がする。しかし、この値を、音符毎に指定するのはかなり面倒だ。

そんな時に役に立つのが、「サクラ」のコントロールチェンジオプションだ。

コントロールチェンジオプション
http://oto.chu.jp/doc/reference/cc-option.htm

この中で、コントロールチェンジの値の先行指定というのを試してみる。先行指定というのは、値を変えるロジックをあらかじめ指定しておくといものだ。

発音している音毎に値を指定する場合の書き方

コマンド名.onNote( 値1,値2,値3... )

一定間隔ごとに値を指定する場合の書き方

コマンド名.onCycle( 周期, 値1,値2,値3... )

コマンド名
http://oto.chu.jp/doc/reference/cc.htm

周期はステップ時間を指定するのだが、、!nと書くとn分音符の時間がステップ時間に変換される。

値は、各コマンド毎に決められている範囲の値を指定する。

それでは、早速試してみる。最初に音の定位を音毎に左右に振って、8小節演奏する。次に、1小節(1部音符)毎に、音の定位を左、中央、右と変化させながら、8小節演奏する。

//---------- ここから ----------

Panpot.onNote(0,127)
[8 [4 n(Random(40,90))]]

Panpot.onCycle(!1,0,64,127)
[8 [4 n(Random(40,90))]]

//---------- ここまで ----------



モニター画面で確認すると、PANの値が指定通りに変化するのがわかる。「サクラ」の先行指定という考え方は、プログラミングのテクニックとしてとても良いアイデアだと思う。