Lua でのスクリプティング
Falconはスクリプト処理にUVIスクリプト(UVIScript)を使用ます。UVIスクリプトはスクリプト言語のLuaをベースにしたUVIエンジンに特化したスクリプト言語です。
FalconはスクリプトをMIDIエフェクトやその他の機能拡張に使用します。すべてのシンセエンジンモジュールにアクセスし、先進的な機能をもたらすことが可能です。スクリプトはまた独自のインターフェース定義し、リアルタイム操作することも可能です。
UVIスクリプトは.lua形式のテキスト書類として扱い、Falconのスクリプトプロセッサーモジュールで読み込んで使用します。スクリプトプロセッサーの使用に関する情報は、操作画面 > Events と イベントプロセッサー > SCRIPT PROCESSORS に記載しています。
サンプル例
UVIScriptの記述に関するシンプル例として、ピッチインバーターをここに取り上げます。(このスクリプトはスクリプトプロセッサーのファクトリープリセットとして、 Utilities > Invert Pitchに収録されています。)
CenterPitch = Knob("Center Pitch", 60, 0, 127, true)
function onNote(e)
local center = CenterPitch.value
local delta = e.note - center
local note = center - delta
if note >= 0 and note <= 127 then
playNote(note, e.velocity)
end
end
function onRelease()
--
end
このスクリプトは、Falconのスクリプトプロセッサーとして、画面ではこのように表示されます。

このスクリプトプロセッサーは1つのノブで、スクリプトの1行目でピッチのセンター値を設定します。3行目ではノートオンイベントを扱うことを設定し、4から6行目ではセンターピッチに対する挙動を設定します。7と8行目では変化を加えたピッチ値でのノート演奏を設定します。このスクリプトによる挙動は、例えば、センターピッチをC3に設定し、C2を演奏すると、C4ノートが演奏されるようになります。
空の onRelease 関数は、受信したノートオフイベントを次へ渡さずに破棄します。反転したノートにノートオフは不要です。playNote でデュレーションを指定せずに開始したノートは、そのノートをトリガーした鍵盤を離すと自動的にリリースされます。
フルドキュメント
UVIスクリプトに関する詳しい情報は、最新のオンラインドキュメント:uvi.net/uviscript に記載しています。(プログラミングという性質上、英文のみのご提供になります)
Luaスクリプト言語に関する詳しい情報は、 lua.org/docs.htmlに記載しています。