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のスクリプトプロセッサーとして、画面ではこのように表示されます。

INVERT PITCH SCRIPT

このスクリプトプロセッサーは1つのノブで、スクリプトの1行目でピッチのセンター値を設定します。3行目ではノートオンイベントを扱うことを設定し、4から6行目ではセンターピッチに対する挙動を設定します。7と8行目では変化を加えたピッチ値でのノート演奏を設定します。このスクリプトによる挙動は、例えば、センターピッチをC3に設定し、C2を演奏すると、C4ノートが演奏されるようになります。

空の onRelease 関数は、受信したノートオフイベントを次へ渡さずに破棄します。反転したノートにノートオフは不要です。playNote でデュレーションを指定せずに開始したノートは、そのノートをトリガーした鍵盤を離すと自動的にリリースされます。

フルドキュメント

UVIスクリプトに関する詳しい情報は、最新のオンラインドキュメント:uvi.net/uviscript に記載しています。(プログラミングという性質上、英文のみのご提供になります)

Luaスクリプト言語に関する詳しい情報は、 lua.org/docs.htmlに記載しています。