VST開発

出典: Myun2Wiki

目次

まず必要なもの

VST SDK

  • http://www.steinberg.net/en/company/3rd_party_developer.html から落とす。
  • アカウント登録が必要。アカウント登録には結構時間が掛かるみたいなので、その間に「Visual C++」の方とかやってると良いかもしれない。
  • あとパスワードはどうも以後変更が不可みたいなので注意・・・(なんたるクソ仕様・・・!!)
  • 登録が完了されたらメールが届く。認証URLには鍵括弧が入ってるため、メーラーによってはリンクがちゃんと張られません。注意・・・
  • 認証も完了したら、ログイン。
  • 左のメニューに「VST 2.3 Audio Plug-Ins SDK」があるはずなので、これをクリック。なんか色々規約が出てくるので「I Agree」して後はダウンロード。


Visual C++

Visual C++ 2008 Express Edition がMicrosoftからフリーで落とせるのでこれでOK。

  • 黄色い奴ね。
  • 「Visual C++」だから。「Visual C#」とかと間違えないでね・・・。


プログラミング知識

  • 言語はC++です。C++の基本的なプログラミング(クラスも含む。テンプレートとかSTLとかは別に知らなくて大丈夫)が出来る必要アリ。
  • 初心者向け「初めての」みたいなC++本買って、一通りのプログラム組めるようになればOKでしょう。
  • 「ネット上で勉強」は、(プログラミングやオブジェクト指向を全くやった事ない人には)お勧め出来ません。
    • 情報に偏りがあったり、浅かったり、余り親切でなかったりする事が多々あります。


サンプルプログラムをビルドしてみよう

「ビルド」と言うのは、プログラムモジュール(VSTの場合はつまり「~.dll」)を生成する事です。

先の「VST 2.3 Audio Plug-Ins SDK」を解凍し、その中の「vstsdk2.3\win\VST2.3Examples.sln」を開きます。 「変換しますか?」みたいなウィザードが出ると思うので変換作業を行ってください。

画像:vstdev_vc2008-1.jpg

画面左側に「ソリューションエクスプローラ」と言うのがあるでしょう。 このうちの「vstxsynth」を右クリック。「スタートアッププロジェクトに設定」を選択します。

次に、この項目をダブルクリックし、ツリーを展開します。 「Source Files」の中に「vstxsynthmain.cpp」と言うのがあるのでダブルクリック。 このファイルを以下のように修正してください。

(※行数は画面右下に出ます。もしくはCtrl+Gにて、指定行に直接ジャンプしてください)

41行目:

AEffect *main (audioMasterCallback audioMaster);
 ↓
int main (audioMasterCallback audioMaster);

45行目:

AEffect *main (audioMasterCallback audioMaster)
 ↓
int main (audioMasterCallback audioMaster)

62行目:

return effect->getAeffect ();
 ↓
return (int)effect->getAeffect ();


ソースの修正を完了したら、画面中央上の「Debug」となっているコンボボックスを「Release」に変更し、 ソリューションエクスプローラの「vstxsynth」を右クリックし、「ビルド」を選択します。 画面下に色々とメッセージが出力され、最終的に

1>vstxsynth - エラー 0、警告 0
========== すべてリビルド: 1 正常終了、0 失敗、0 スキップ ==========

と出ていれば、正常にビルド完了です。 上記のようになっていなければ、ちゃんと修正できていないか、私の説明にどこか誤りがあります。(何


ビルドしたVSTを実際に動かしてみよう

「vstsdk2.3\win\VstPlugins」のディレクトリに「Vstxsynth.dll」が生成されている筈です。 これをご自分のシーケンサに放り込んで動かしてみましょう。多分、(まぁ普通に)音が出ると思います。



名前とかを変えよう

ソリューションエクスプローラより「vstxsynth.cpp」を開きます。 それぞれ、

  • VstXSynth::getEffectName -> VSTの名前(シーケンサとかでの表示名)
  • VstXSynth::getVendorString -> 作者(会社)名(特にシーケンサ上では現れないかな・・・?)
  • VstXSynth::getProductString -> 不明(何)。直訳すると「製品名」なので、ソレっぽい名前入れとけばとりあえず良いんではないかと・・・

です。

名前はどうやらDLLファイル名が直接シーケンサ上での表示名になるようです・・・(少なくともCubaseの場合)

出力DLLファイル名は、ソリューションエクスプローラの「vstxsynth」を右クリック「プロパティ」で、 「構成プロパティ」の「リンカ」の「出力ファイル名」のところから変えられます。(勿論、出力された後に、直接エクスプローラ上からファイル名の変更をしてもかまいませんが) また、「vstxsynth.def」の「LIBRARY」のところも、ファイル名より「.dll」を取り除いた名前にします。

ビルド(「vstxsynth」を右クリックし「ビルド」。以下もう単に「ビルド」と呼びます)して、シーケンサに読み込ませてみましょう。ちゃんと名前が変わってるはずです。


続き

次のページへ