UVI Falcon UVI Script
概要
UVI社のシンセサイザーFalconはScript Processorモジュールを持っており、UVI Scriptでプログラミングができます。Falconの商用ライブラリはUVI Scriptでその挙動やGUIが作りこまれています。
用途
NoteOnイベントに対応してサウンドエンジンのパラメータをカスタマイズしたり、タイマーイベントで音を鳴らしたりするのが主な使い方です。
- キースイッチなどによるアーティキュレーション切り替え
- 乱数やラウンドロビンによるヒューマナイズ
- スウィング
- アルペジエーター
- ストラミング
- GUI
言語仕様
- Lua言語
- イベントコールバック
- サウンドエンジンAPI
- GUI API
Lua言語なので、記述能力は現代的な汎用プログラミング言語と同等です。
DAWの小節内位置など取得できるので表拍と裏拍で鳴らし方を変えるようなことも実現可能。
Falconには、再生専用の無料版UVI Workstationも用意されています(KONTAKTに対するKONTAKT PLAYERに相当)。しかしながらUVI Workstationが読めるファイル形式はUFSサウンドバンク(.ufs)のみで、個別のプログラム(.uvip)やマルチ(.uvim)形式は読み込めないようです。UFSサウンドバンクを自作するにはライセンス契約が必要になります。
Falconユーザー同士であれば、プログラムやマルチ形式でライブラリを渡すことができます。
GUI仕様
ノブやボタンなどのコントローラーはサイズ、位置、背景色を自由に指定できます。画像を使った独自デザインのコントローラーも作成可能です。
UI全体の背景やロゴなどの画像を読み込んで表示することも可能。
FalconのUIは、EDITタブやEVENTSタブ選択時に表示される個別のUIと、INFOタブ選択時に表示される全体のUI(パフォーマンスビュー)があります。GUIパーツを配置すると個別UIに表示されます。プログラム中でmakePerformanceView()と記述するとそれがパフォーマンスビューにも反映されます。
UIの最大サイズはドキュメントによると720x480となっています。
プログラム例
ノートナンバー表示
押された鍵盤のノートナンバーをコンソール画面に表示します。
function onNote(e)
playNote(e.note, e.velocity)
print(string.format("note = %d", e.note))
end
コンソール画面は画面右上の2番目のアイコンをクリックすると表示されます。
デチューン
デチューンされた二つの音を鳴らす例です。デチューンの幅はノブで指定します。
-- add knob
knobDetune = Knob("Detune", 0.1, 0, 0.5)
-- callback
function onNote(e)
local voice1 = playNote(e.note, e.velocity)
local voice2 = playNote(e.note, e.velocity)
changeTune(voice1, knobDetune.value)
changeTune(voice2, -knobDetune.value)
end
同じスクリプトでGUIに画像や色を設定する例です。
-- setup panel
setSize(720, 120)
setBackground("panel.png")
-- add knob
knobDetune = Knob("Detune", 0.1, 0, 0.5)
knobDetune.size = {60, 60}
knobDetune.pos = {80, 30}
knobDetune.fillColour = "#eeee88"
knobDetune.outlineColour = "orange"
-- show performance view
makePerformanceView()
-- callback
function onNote(e)
local voice1 = playNote(e.note, e.velocity)
local voice2 = playNote(e.note, e.velocity)
changeTune(voice1, knobDetune.value)
changeTune(voice2, -knobDetune.value)
end
使用方法
MASTERに適用する場合
あらかじめ.luaファイルを用意しておく。
EVENTSタブを選択
右上の+アイコンをクリック
Script Processor→Default
左端のフォルダアイコンからLuaファイルを選択
内蔵エディタはありませんが、左から3番目のEditアイコンで外部エディタを呼び出せます
右端のWatchアイコンを有効状態にしておくと、ファイルを編集してセーブしたら自動的に適用されます。
複数のスクリプトを適用することもできます。その場合画面の上側にあるスクリプトから順番に実行されます。
各PARTに適用する場合
あらかじめ.luaファイルを用意しておく。
EDITタブを選択
PROGRAMのEVENTレーンで+アイコンをクリック
Script Processor→Default
左端のフォルダアイコンからLuaファイルを選択
内蔵エディタはありませんが、左から3番目のEditアイコンで外部エディタを呼び出せます
右端のWatchアイコンを有効状態にしておくと、ファイルを編集してセーブしたら自動的に適用されます。
感想
Lua言語であるため学習コストも低く、カスタマイズできるパラメータも多いため大きな可能性を感じます。ただ、Falcon自体の普及度とUVI Scriptの普及度が今のところネックになっているように思います。
サンプリング音源もオシレータとして使えてKONTAKTに近いことができるので(ただしUIはKONTAKTほどの自由度はない)、今後サードパーティーから今以上にライブラリがリリースされて市場が大きくなることに期待します。
ちなみにMOTU社のMachFiveというサンプラーソフトも、UVIエンジンを搭載しUVI Scriptに近いLuaベースのMachFiveScriptでプログラミングできます。しかしながら、2011年のバージョン3以降アップデートされておらず、MachFiveの実質的な後継がUVI Falcon2と見てよさそうです。