概要
Juceライブラリを使ってVSTを開発したい.
一般のプログラムのようにファクトリープリセットを搭載したい.
VSTライブラリの側の関数をオーバーライドする.
結果
Studio One 2にて確認.ファクトリープリセットをこのようにして実装できた.
やり方
VSTライブラリで,ファクトリープリセット用の関数があるのでオーバーライドして呼ぶ.
Juceを使う場合だと,AudioProcessor
クラスが継承している.なのでプラグインの本体で呼び出すのが自然だと思う.
プリセットに関しては,JuceやVSTライブラリでも〇〇program
といった呼び名で管理しているもよう.このキーワードで検索すると周辺情報も得られるだろう.
実際の記述.Juceのサンプルプラグインの例に従う場合には以下のように記述.
https://github.com/WeAreROLI/JUCE/tree/master/examples/Plugins
JuceDemoPluginAudioProcessor.h
class JuceDemoPluginAudioProcessor : public AudioProcessor
{
//変更点以外の関数記述は省略しています.
public:
//プリセットの数を定義
int getNumPrograms () override
{
return NUM_OF_PRESETS;
}
//現在のプリセットインデクス
int getCurrentProgram () override
{
return currentProgIndex;
}
//プリセットのパラメータをハードコーディングする
void setCurrentProgram (int index) override
{
switch(index)
{
case 0:
param1 = x;
param2 = y;
param3 = z;
break;
case 1:
param1 = xx;
param2 = yy;
param3 = zz;
break;
case default:
break;
}
//現在のプリセットインデクスはクラス内に記憶する
currentProgIndex = index;
}
//プリセットの名前を記述していく
const String getProgramName (int index) override
{
switch(index)
{
case 0:
return(PRESEST_NAME_00);
break;
case 1:
return(PRESEST_NAME_01);
break;
case default:
return("");
break;
}
}
private:
//現在のプリセットを変数として保持する
int currentProgIndex = 0;
}