※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

VST Tips(準備中)


最小構成のVST

ここでは最小構成のVSTを作成する方法について記載する。

最小構成のVSTを作成するには以下の2点を行えば、VSTとして読み込めるものが完成する。

  • AudioEffectXクラスを継承した自作クラスの作成
  • 自分で作ったVSTクラスを呼び出すAudioEffect* createEffectInstance()関数の作成

なお、ここで作成するVSTサンプルのソースコード全体はここにある。

AudioEffectXクラスを継承した自作VST用クラスの作成

まず基本として、VSTはAudioEffectXクラスを継承して作らなければならない。
AudioEffectXクラスは「vstsdk2.4\public.sdk\source\vst2.x\audioeffectx.h」で定義されている。

AudioEffectXクラスを継承して作った自作クラスは、以下の2つの関数を持たなければならない。

  • コンストラクタ …自作VSTの初期化を行う。初期化にはルールがある(後述)。
  • void processReplacing() …音声の処理を行う関数。AudioEffectXクラスから継承する。

具体的には以下のようになる。
  1. // ============================================================================================
  2. // VSTの基本となるクラス
  3. // ============================================================================================
  4. class MyMinimumVST : public AudioEffectX
  5. {
  6. public:
  7. MyMinimumVST (audioMasterCallback audioMaster);
  8.  
  9. // 音声信号を処理するメンバー関数
  10. virtual void processReplacing (float** inputs, float** outputs, VstInt32 sampleFrames);
  11. };
  12.  


AudioEffect* createEffectInstance()関数の作成

次に、ホストアプリケーション(Cubase,Sonar等)が自作VSTのインスタンスを作成するために必要な関数を作成しなければならない。

なぜこのような関数が必要かの詳細は説明できるほどの知識がないため省略する。(どうもDLLファイルはC++のクラスをエクスポートできないらしい。苦肉の策としてこのような関数がある模様。)

自作VSTのインスタンスをnewで生成してreturnで返すだけでよい。
  1. // ============================================================================================
  2. // 自作VSTのを生成するための関数
  3. // ============================================================================================
  4. AudioEffect* createEffectInstance (audioMasterCallback audioMaster)
  5. {
  6. //newでこのVSTを生成したポインタを返す
  7. return new MyMinimumVST (audioMaster);
  8. }
  9.  

自作VSTクラスの初期化方法、音声処理部分の説明については次項で説明する。





同一カテゴリのTips


項目 No. 概要
最小構成のVST No.1 最小構成の自作VSTに必要な関数等の説明。
No.2 最小構成の自作VSTの必須初期化項目について
No.3 最小構成の自作VSTの音声処理関数について
No.4 最小構成の自作VSTのサンプルソースコード全体


javascript plugin Error : このプラグインで利用できない命令または文字列が入っています。