前回に続き、ReaSamplOmatic5000(以下RS5K)の応用編として、ReaScriptとの連携機能を紹介します。
とはいえ、ReaScriptやExtensionを書いているような人であれば、TrackFX_* や TakeFX_* のつくAPIを使えば容易に操作出来るのはご存知かと思います。
なのでそこはすっ飛ばしてRS5K固有の使い方のところだけを取り上げてみます。

RS5Kには複数のwavファイルを登録してVelocityに応じて鳴らしわける機能があると前回紹介しましたが、このファイル登録・削除といった操作もReaScriptから行うことができます。
これには TrackFX_GetNamedConfigParm(), TrackFX_SetNamedConfigParm() を使用します。

使い方をなんとなく表したluaコードっぽいもの(察して)
-- 最初のサンプルファイル名取得
ok, filaname = reaper.TrackFX_GetNamedConfigParm( track, fx, "FILE0" )
-- 2番目のサンプルファイル名取得
ok, filaname = reaper.TrackFX_GetNamedConfigParm( track, fx, "FILE1" )

-- サンプルファイル挿入(この指定だとFILE0にnewfileが入り、今までFILE0のものはFILE1に)
ok = reaper.TrackFX_SetNamedConfigParm( track, fx, "+FILE0", newfile )
-- サンプルファイルを削除
ok = reaper.TrackFX_SetNamedConfigParm( track, fx, "-FILE0", "" )
-- サンプルファイルを設定(変更)
ok = reaper.TrackFX_SetNamedConfigParm( track, fx, "FILE0", newfile )
-- サンプルファイルを全て削除
ok = reaper.TrackFX_SetNamedConfigParm( track, fx, "-FILE*", "" )

-- サンプルファイルリスト編集完了通知(必須)
reaper.TrackFX_SetNamedConfigParm( track, fx, "DONE", "" )

最後に "DONE" を通知してリスト編集を完了させる必要がありますので注意(ここで初めてリストが更新され、新しいサンプルファイルも読み込まれる)。
また、ファイルを設定・挿入する場合は、フルパスを指定する必要があるようです。

ちなみにTakeFX側を操作する場合は TakeFX_SetNamedConfigParm() などTakeFX_*系のAPIを使用する必要がありますが、TrackFX_* のものと使い方は同じです。


ということで今回はRS5K固有のサンプルファイルリストをReaScriptで編集する方法を紹介しました。
ちょっとクセのある指定方法ですが、こういうところまでスクリプトでいじれるようにしてくれているのはありがたいですね。