VST Tips(準備中)


最小構成のVST

最小構成のVSTのサンプルである。
エフェクターとしてロード可能で、入力をそのまま出力する。

サンプルコード全体

ソースコードのダウンロード→ここをクリック

  1. // ============================================================================================
  2. // インクルードファイル
  3. // ============================================================================================
  4. #include "audioeffectx.h"
  5.  
  6. // ============================================================================================
  7. // 設計情報の記入
  8. // ============================================================================================
  9. #define MY_VST_INPUT_NUM 2 //入力数。モノラル入力=1、ステレオ入力=2
  10. #define MY_VST_OUTPUT_NUM 2 //出力数。モノラル出力=1、ステレオ出力=2
  11.  
  12. #define MY_VST_UNIQUE_ID 'SMPL' //ユニークID
  13. //公開する場合は以下URLで発行されたユニークIDを入力する。
  14. //http://ygrabit.steinberg.de/~ygrabit/public_html/index.html
  15.  
  16. #define MY_VST_PRESET_NUM 1 //プリセットプログラムの数
  17. #define MY_VST_PARAMETER_NUM 0 //パラメータの数
  18.  
  19. // ============================================================================================
  20. // VSTの基本となるクラス
  21. // ============================================================================================
  22. class MyMinimumVST : public AudioEffectX
  23. {
  24. public:
  25. MyMinimumVST (audioMasterCallback audioMaster);
  26.  
  27. // 音声信号を処理するメンバー関数
  28. virtual void processReplacing (float** inputs, float** outputs, VstInt32 sampleFrames);
  29. };
  30.  
  31.  
  32. // ============================================================================================
  33. // このVSTのを生成するための関数
  34. // ============================================================================================
  35. AudioEffect* createEffectInstance (audioMasterCallback audioMaster)
  36. {
  37. //newでこのVSTを生成したポインタを返す
  38. return new MyMinimumVST (audioMaster);
  39. }
  40.  
  41. MyMinimumVST::MyMinimumVST (audioMasterCallback audioMaster)
  42. : AudioEffectX (audioMaster, MY_VST_PRESET_NUM, MY_VST_PARAMETER_NUM)
  43. {
  44. //VSTの初期化を行う。
  45.  
  46. //以下の関数を呼び出して入力数、出力数等の情報を設定する。
  47. //必ず呼び出さなければならない。
  48. setNumInputs (MY_VST_INPUT_NUM); //入力数の設定
  49. setNumOutputs (MY_VST_OUTPUT_NUM); //出力数の設定
  50. setUniqueID (MY_VST_UNIQUE_ID); //ユニークIDの設定
  51.  
  52. isSynth (false); //このVSTがSynthかどうかのフラグを設定。
  53. //Synthの場合…true、Effectorの場合…false
  54.  
  55. canProcessReplacing (); //このVSTが音声処理可能かどうかのフラグを設定。
  56. //音声処理を行わないVSTはないので必ずこの関数を呼び出す。
  57.  
  58. //上記の関数を呼び出した後に初期化を行う
  59.  
  60. }
  61.  
  62. void MyMinimumVST::processReplacing (float** inputs, float** outputs, VstInt32 sampleFrames)
  63. {
  64. //入力、出力は2次元配列で渡される。
  65. //入力は-1.0f~1.0fの間で渡される。
  66. //出力は-1.0f~1.0fの間で書き込む必要がある。
  67. //sampleFramesが処理するバッファのサイズ
  68. float* inL = inputs[0]; //入力 左用
  69. float* inR = inputs[1]; //入力 右用
  70. float* outL = outputs[0]; //出力 左用
  71. float* outR = outputs[1]; //出力 右用
  72.  
  73. for (int i = 0; i < sampleFrames; i++)
  74. {
  75. //ここで音声処理を行う。
  76.  
  77. //出力バッファへ書き込む。
  78. outL[i] = inL[i];
  79. outR[i] = inR[i];
  80. }
  81. }





同一カテゴリのTips


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


javascript plugin Error : このプラグインで利用できない命令または文字列が入っています。
最終更新:2013年08月06日 02:02