以前の記事でEuclidean Drum SequencerにScript Event Modulation機能が付いたらいいなーと書いていたのですが、意図していたものがサクっと作れたので今回はそのお話です。

Voice毎のModulation付与スクリプト

Script ProcessorでVoice(Note)単位の情報を処理できるので、以下のような方針でスクリプトを作ってみました。

  • 何かをもとにNoteを区別して個別のModulation値を設定したいが、Euclidean Drum SequencerではVelocityくらいしか区別するものがないので、それを使用(通常とアクセントの2系統)
  • 汎用的に使えるように作用するNote番号やEventIDなどを細かく設定可能にする
  • 指定Modulation値になるまでの遷移時間設定で、継続的変化を可能にする

そして出来たのがこちら。スクリプトはこちらからダウンロードして下さい。
EDS_ModSP01

このスクリプトは受信したNote入力シグナルに対し、Note単位でのModulation値を設定します。NoteのVelocityに応じてそれが通常かアクセントかが識別され、そのいずれかに対応するModulation値と変化時間が適用されるという仕組みになっています。

GUIの各種パラメータの説明は以下の表をご覧ください。

パラメータ名説明
NoteNum反応するNote番号を指定するか(OFFの場合はNote番号に関係なく反応するようになる)
Note反応するNoteの番号
AccentThrアクセントとみなすVelocityの閾値。これより大きいVelocityが来たらアクセントだとみなす。
EventIDScript Event Modulationで識別するためのEventID
ModNml通常Velocity時のModulation設定値
RampNmlModulation設定値遷移時間(通常時)
ModActアクセントVelocity時のModulation設定値
RampActModulation設定値遷移時間(アクセント時)

使い方は以下のとおり。

  1. Euclidean Drum Sequencerで音が鳴らせるところまでセットアップ(過去の記事を参考に)
  2. ProgramのEuclidean Drum Sequencerの後ろ側に新しくScript Processorを作成し、スクリプトを読み込む(説明の都合上、以下これをSP1とする)。これでGUIが表示されます。
  3. ProgramのMODに[Script Event Modulation]を追加し、[EventId]の値をSP1の[EventID]に合わせる(番号が一緒なら任意の値でOK)
  4. Keygroup以下のパラメータにこのScript Event Modulationを結び付ける(このへんは以前の記事のDrum Sequencerと同様)
  5. あとはSP1の[ModNml]、[ModAct]、[RampNml]、[RampAct]などでモジュレーション具合を調整

可能な限り表現力を追求したい場合、セットアップのコツとしては、Note番号毎に個別にScript Processor、Script Event Modulationを用意し、全て別系統のEventIDを使うとよいでしょう。パート毎のコントロールがしやすくなります。とはいえこのモジュレーションの仕組みを正確に理解していないと難しく感じるかもしれません。

さすがに言葉による説明だけだと訳わからないかもしれないので、そのうち使用例の動画だけでも作ろうとは思っています。しばしお待ちを・・・。
(2019/11/21追記)使用例の動画を作成しました。



今回は独自のスクリプトを作って、表現力を上げるための仕組みを作ってみました。既存のものでは実現出来なくても、やる気と根性である程度実現出来てしまうのがFalconの最大の魅力と言っていいでしょう。このへんやりたい放題出来るのはREAPERとも通じるところがありますね。