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」を開きます。 「変換しますか?」みたいなウィザードが出ると思うので変換作業を行ってください。
画面左側に「ソリューションエクスプローラ」と言うのがあるでしょう。 このうちの「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」を右クリックし「ビルド」。以下もう単に「ビルド」と呼びます)して、シーケンサに読み込ませてみましょう。ちゃんと名前が変わってるはずです。

