2010/12/08

VSTプラグインは素人でも作れる?

VSTを作るにはいくつか方法があるが、ここではWindowsXP上で純正VSTSDKとC++開発環境を考えてみたい。すぐに作るつもりはないが、開発環境を整えて様子をみようと思う。作れそうなら、C++の基礎から少しずつ勉強してみようかな。

無料でVST開発に必要なソフトは以下の2つだけ。

VST 2.4 Audio Plug-Ins SDK (Format: zip, 6.74 MB)
http://www.steinberg.net/en/company/developer.html
無料で使えるVSTSDK。VSTを開発するのに必要なツールがセットになっているソフトウェア。ダウンロードするにはスタインバーグ社に登録(無料)する必要がある。

Microsoft Visual C++ 2008 Express with Service Pack 1
http://www.microsoft.com/japan/msdn/vstudio/2008/product/express/
上記は消滅? 日々更新され古いものはなくなっていくのがマイクロソフト。
ダウンロードサイズ 104MB
インストールサイズ 約1GB でかい・・・
無料で使えるC++言語の開発環境。現在新しい2010Expressもあるが、VST2.4は動かなかったので、VST開発情報もある2008Expressが無難。サンプルも難なく扱えた。30日以上使う場合は登録(無料)する必要がある。

上記2つのソフトをインストールする。Visual C++ 2008 ExpressはWebインストールで20分ぐらいかかる。

まずはVSTのサンプルを開いてみる
インストールされたVSTSDKフォルダの以下のファイルをダブルクリック。
C:\vstsdk2.4\public.sdk\samples\vst2.x\win\samples.sln
自動でVisual C++ 2008 Expressが起動し、サンプルのプロジェクトが開く。
いくつかサンプルがあるが、GUIに興味があったので、GUI付きのsurrounddelayを見てみる。C++はさっぱり分からないので、やたらファイルがあって、どれを見ていいのか・・・ しばらく見ていたら、本体は僅か数ファイルだと分かった。GUIはsdeditor.cppに書かれている。ここの記述をすべて理解する必要がある。また画像は3つ使われているが、surrounddelay.rcというファイルに画像の名前があって、IDが割り当てられている。surrounddelay.rcに書かれているのはこれだけ。
#define APSTUDIO_READONLY_SYMBOLS
//////////////////////////////////////////////
//
// Bitmap
//
128                     BITMAP  DISCARDABLE     "bmp00128.bmp"
129                     BITMAP  DISCARDABLE     "bmp00129.bmp"
130                     BITMAP  DISCARDABLE     "bmp00130.bmp"

sdeditor.cppに画像の配置などが記述されているが、ID番号で指定しているのは128の背景の画像だけ。他は数字すらない。どうも省略しているようだ。
enum {
kBackgroundId = 128,
kFaderBodyId,
kFaderHandleId, 

上記コードを以下のように書き換えてもビルドできたので、やはり省略だろう。C++のプログラミングは知らないので、こんなのありかよ? としか思えなかった。C++の常識に慣れてからでないと、コードも理解できそうもない。
enum {
kBackgroundId = 128, // bmp00128.bmp 背景
kFaderBodyId = 129, // bmp00129.bmp
kFaderHandleId = 130,// bmp00130.bmp

この後、画像の大きさを変えたり、処理を増やしたりしてみた。なるほど、なるほど。少し分かってきたが、Visual C++ でGUIのレイアウトを確認できないところがなんとも面倒くさい。できるのかな? とりあえずレイアウトはビルドしてから、VSTHostで確認することにした。VSTHostは再起動しなくてもプラグインの更新ができるので効率がよい。

肝心の音の処理の方は、単純なことならライブラリを使えば簡単に実現できそうだ。

ここまでくれば、あとは地道にやっていけば作れそうだが、あまり積極的にやるつもりはない。やるとしたらAPIを見ながら、いろんなサンプルをチェックすることからスタートかな。C++の基礎もネットで勉強しながらというかんじで。またVST開発を日本語で解説している人が、ほとんどいないようなので情報源は英語ページに頼るしかなさそうだ。

その後、Microsoft Visual C++ 2008 Expressの巨大さにウンザリして環境をアンインストールした。VSTへの興味もあっけなく失せた。

sound programming 目次はこちら