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

VST(エフェクター)作成例


クラスの宣言

VSTはAudioEffectXクラスを継承して作る
(AudioEffectXクラスは「vstsdk2.4\public.sdk\source\vst2.x\audioeffectx.h」で定義されている)

サンプルエフェクターでは次のように定義している。

  1. class MyTremoloVST : public AudioEffectX
  2. {
  3. protected:
  4. float fTime;
  5. float fTremoloSpeed; //トレモロの周期
  6. float fTremoloDepth; //トレモロの振幅
  7.  
  8. public:
  9. MyTremoloVST (audioMasterCallback audioMaster);
  10. ~MyTremoloVST ();
  11.  
  12. //作者(ベンダー)名、バージョン、製品名、VSTの名前を
  13. //Hostアプリケーションへ知らせるメンバー関数
  14. virtual bool getVendorString (char* text);
  15. virtual VstInt32 getVendorVersion ();
  16. virtual bool getProductString (char* text);
  17. virtual bool getEffectName (char* name);
  18.  
  19. // エフェクターのパラメータに関するメンバー関数
  20. virtual void setParameter (VstInt32 index, float value);
  21. virtual float getParameter (VstInt32 index);
  22. virtual void getParameterName (VstInt32 index, char* text);
  23. virtual void getParameterLabel (VstInt32 index, char* label);
  24. virtual void getParameterDisplay (VstInt32 index, char* text);
  25.  
  26. // 音声信号を処理するメンバー関数
  27. virtual void processReplacing (float** inputs, float** outputs, VstInt32 sampleFrames);
  28. };
  29.  

AudioEffectXクラスから必ずオーバーライドしなければならない関数は以下のとおり
関数名 戻り値 引数 概要
getVendorString bool型 char* text ホストアプリケーションに作者(ベンダー)名を教えるための関数
作者(ベンダー)名をtextに格納する。
作者(ベンダー)名の格納に成功するとtrueを返す
getVendorVersion VstInt32 なし ホストアプリケーションにVSTバージョンを教えるための関数
VSTバージョンを返す
getProductString bool型 char* text ホストアプリケーションにVSTの製品名を教えるための関数
VSTの製品名をtextに格納する。
VSTの製品名の格納に成功するとtrueを返す
getEffectName bool型 char* name ホストアプリケーションにVSTの名前を教えるための関数
VSTの名前をnameに格納する。
VSTの名前の格納に成功するとtrueを返す
setParameter なし VstInt32 index
float value
ホストアプリケーションがパラメータに値を設定するための関数
indexで示されるパラメータにvalueの値を設定する
valueは0.0~1.0の範囲で渡される
getParameter float型 VstInt32 index ホストアプリケーションにパラメータの値を教えるための関数
indexで示されるパラメータの値を返す
戻り値は0.0~1.0の間でなければならない
getParameterName なし VstInt32 index
char* text
ホストアプリケーションにパラメータの名前を教えるための関数
indexで示されるパラメータの名前をtextに格納する。
getParameterLabel なし VstInt32 index
char* label
ホストアプリケーションにパラメータの単位を教えるための関数
indexで示されるパラメータの単位をlabelに格納する。
getParameterDisplay なし VstInt32 index
char* text
ホストアプリケーションにパラメータの表示内容を教えるための関数
indexで示されるパラメータの表示内容をtextに格納する。
processReplacing なし float** inputs
float** outputs
VstInt32 sampleFrames
音声処理を行う関数。
定期的にホストアプリケーションから呼び出される。
バッファinputsで与えられる音声信号を加工してバッファoutputsに格納する。
処理するバッファサイズはsampleFramesで与えられる。





合計: -
今日: -
昨日: -