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

トップページ


VSTクラスの初期化

ここでは前項で定義したMyMidiSampleVSTの初期化を行う。

VSTとしての最低限の初期化を行うとともに以下2つのMIDIに関するメンバー変数を初期化する。

  • midimsgnum  … 受け取ったMIDIメッセージの数。0に初期化しておく
  • midimsgbuf[ ] … 受け取ったMIDIメッセージを保管するバッファ。バッファすべてを0に初期化しておく

サンプルコード


サンプルコードは以下のとおり。
  1. MyMidiSampleVST::MyMidiSampleVST (audioMasterCallback audioMaster)
  2. : AudioEffectX (audioMaster, MY_VST_PRESET_NUM, MY_VST_PARAMETER_NUM)
  3. {
  4. //VSTの初期化を行う。
  5.  
  6. //以下の関数を呼び出して入力数、出力数等の情報を設定する。
  7. //必ず呼び出さなければならない。
  8. setNumInputs (MY_VST_INPUT_NUM); //入力数の設定
  9. setNumOutputs (MY_VST_OUTPUT_NUM); //出力数の設定
  10. setUniqueID (MY_VST_UNIQUE_ID); //ユニークIDの設定
  11.  
  12. isSynth (true); //このVSTがSynthかどうかのフラグを設定。
  13. //Synthの場合…true、Effectorの場合…false
  14.  
  15. canProcessReplacing (); //このVSTが音声処理可能かどうかのフラグを設定。
  16. //音声処理を行わないVSTはないので必ずこの関数を呼び出す。
  17.  
  18. //上記の関数を呼び出した後に初期化を行う
  19. midimsgnum = 0;
  20. memset(midimsgbuf, 0, sizeof(MidiMessage) * MIDIMSG_MAXNUM);
  21.  
  22. volume = 1.0f;
  23. }

サンプルコードの解説

まず2行目~17行目でVSTの初期化を行っている。(詳細はVST初期化ルールのとおり)
なお、Synthとして動作させるため、isSynth()関数にtrueを引き渡している。
isSynth (true);          //このVSTがSynthかどうかのフラグを設定。

次に19~20行目で2つのMIDIに関するメンバー変数を初期化している。
midimsgnum = 0;
memset(midimsgbuf, 0, sizeof(MidiMessage) * MIDIMSG_MAXNUM);





同一カテゴリのTips


項目 No. 概要
MIDIメッセージ処理 No.1 MIDIメッセージ処理で最小構成の自作VSTに追加する変数・関数
No.2 VSTの初期化とMIDIメッセージ処理関連の変数の初期化
No.3 ホストアプリケーションからMIDIメッセージを受け取る方法
No.4 MIDIメッセージをprocessReplacing()関数中で処理する方法
No.5 MIDIメッセージ処理で作成したVSTのサンプルソースコード全体(暫定版)


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