2011年2月11日金曜日

【DTM】 VST 3.5 リリース!ということで現状での VST 開発まとめ

備忘録をかねて、たまには DTM の話題でも。といっても開発者視点の話題ですが f^^;

Steinberg の 2 月 10 日の記事によると、VST 3.5 がそろそろ出るみたいですね。SDK のダウンロードも可能。ということで、VST 開発に関する日本語情報が少ないので、(VST 3.5 新機能を含む)まとめ記事を作成してみました。

まず VST (Virtual Studio Technology) とは、一言で言うと DAW ホスト(DTM ソフト)にプラグインの形でソフトウェア音源やソフトウェアエフェクトを追加することができるようにするための規格で、音楽業界でデファクトスタンダードになった Cubase というソフトを作った会社 Steinberg の規格です。ちなみに、ASIO ドライバなんて聞いたことがある人もいるかとは思いますが、これも同じ会社の規格です。Steinberg というと聞きなれないかもしれませんが、実は Steinberg は YAMAHA が最近買収したので経営権は日本にあります。ちなみに、MIDI も日本発の技術で、昔から「音楽業界の標準技術は日本にあり」なんて言われているのは業界では有名な話です。

前置きはさておき、今回は一クリエイターではなく、一開発者の視点から VST 開発全体について情報整理してみます。

まず、VST を開発するには、開発キット SDK を入手する必要があります。無償で公開されており、誰でも入手可能です(要ユーザー登録)。なので、無償の Visual Studio Express Edition 等を組み合わせれば能力次第で誰でも本格的な VST の開発ができます(OOP プログラミング、デジタル音楽の知識、音響物理学、英語と色々必要ですが)。開発言語は C++ で、クロスプラットフォームです(GUI 開発には独自ライブラリの VSTGUI が付属します)。ただ、開発ドキュメント(特に日本語)が少なく、誰かが作ったソースをダウンロードして解析するぐらいしかまともな勉強方法がありません。また、開発者の母数が少ないからか、SDK のドキュメントやサンプルソースも最低限のため、ある程度のトラブルは自力で解決できる経験が要求されます。さらに、音響効果をつけるためにはどのような波形処理を行うべきかといった音響物理の知識がいりますし、VST はリアルタイム処理のため処理に使える時間制限が厳しく、直接メモリ操作を行うような低レベルでのコード記述が要求されるなど、開発難易度は非常に高い部類だと思います。

VST のバージョンに関して。3.5 がリリースされる以前は、VST2 系と VST3 系の2つの規格がありました。VST3 では VST2 に比べ構造が柔軟になりましたが、その分複雑になってしまい、複雑になったわりに有用な機能が少ないことから、結局 VST2 系が現在では広く使われています。VST3 には存在していて、VST2 に無い機能としては、サイドチェーンあたりが有名どころでしょうか。後は、柔軟な構造を活かして音響処理PCと操作PCを分離したりできたりするらしいですが、これは結局 DAW ホスト(DTM ソフト)側に依存するので、特殊な用途向けと言えると思います。

ここに VST 3.5 が投入されることになります。VST 3.5 はこれまでの VST3 系とは独立のようですから、それぞれの系の最新バージョン VST 2.4、VST 3.1 と、今回の VST 3.5 の3規格が存在することになります。冒頭の Steiberg の記事(英語)によると VST 3.5 がリリースされることで、VST 3.0 に乗り換えなかった多くの人が 3.5 に移行することになるだろうと書かれているようですね。VST 3.5 の目玉機能は Note Expression という機能で、記事を読む限り、個々の MIDI ノート(イベント)に「MIDI の枠を超えた膨大なアーティキュレーション情報がついてくる」ことで、開発者にとって無限の柔軟性が生まれる、ということらしいです。記事の例を引用するとすれば、同じ楽器でも例えばピッチカート奏法やレガート奏法、トレモロ奏法を行うことができる楽器において、これまでは奏法ごとにトラック(チャンネル)を分割し、それぞれのトラックで MIDI ノートを入力していましたが、これらを自動的に切り替える機能が Cubase/Nuendo 側で実装され、それに対応したプラグインを開発することができる、ということが挙げられています。後は小さな新機能として XML ベースのパラメータのインポート・エクスポートに対応するとか、ホスト側のコンテキストメニューを作成できたりするみたいです。

うーん、VST 3.5 はどちらかというとエンタープライズ向けの拡張かな…。仕事でやるならともかく、一個人の趣味プログラマーにとってはそこまでメリットなさそう。アーキテクチャも、VST 3.1 の時点で複雑なのに、もっと複雑になってそう。。サンプルも少なそうだし、公式サンプルをちょっと試すだけ試してみて、しばらくは VST 2.4 での開発を続けることにしようかな。

ところでもうすぐ Cubase 6 が出ますね。欲しいけど、Windows 7 専用か。XP がデフォになってるし、どうしようかなぁ…