JUCEって何?
JUCE (Jules' Utility Class Extensions)は、C++言語によるマルチメディア系アプリケーションの開発を支援するフレームワークです。クロスプラットフォーム設計のライブラリと、付属されているプロジェクトジェネレータ『Projucer』から各種IDE(VisualStudio, Xcode, Makefile)向けにプロジェクトファイルを出力することで、ワンソースからWindows, macOS, Linux, iOS, Android で動作するアプリケーションを作成することができます。
公式サイト
JUCEの最大の特徴として、オーディオプラグインを開発するためのテンプレートが充実していることが挙げられます。VST/AudioUnit/AAX/RTASプラグインといった、DTMユーザーにはお馴染みのプラグインフォーマットを開発するのに長けており、日本国内外で多くの採用事例があります。
JUCEについてより詳しく知りたい場合は、こちらの記事JUCE ハンズオン 〜JUCEをはじめよう〜や、JUCE Advent Calendar 2017をご覧いただければと思います。
VSTプラグインとは?
VST(Steinberg's Virtual Studio Technology)とは、ドイツのSteinberg(スタインバーグ)社が提供している仮想音響技術のことです。音源(シンセサイザー)として機能するものはVSTi(VST instrument)とも呼ばれます。C++のダイナミックライブラリで実装され、DAW(Digital Audio Workstation)等のホストアプリケーションに組み込むことができ、フィルタや仮想楽器をシミュレートすることができます。仕様そのものはクロスプラットフォームなC++ライブラリで提供されているため、プラットフォーム上でコンパイルしてしまえば、そのプラットフォーム上で楽器やエフェクターとして使用することが出来ます。
本記事では、そのVSTプラグインを実装するにあたり、より簡単かつGUI用のコンポーネントが充実しているJUCEフレームワークを利用します。
JUCE 5.4.0からはVST 2.xの出力が非推奨に
Steinberg社がVST 2.x のサポートを終了するのに合わせて、2018年11月にリリースされたのJUCE 5.4.0からはVST 2.xの出力が非推奨扱いになりました。
また、JUCE 5.3.2以前ではJUCEライブラリ内にVST 2.xのCインターフェースを定義したクラスが同梱されていましたが、そのクラスも取り除かれるようになりました。
JUCEとしては非推奨ではあるものの、Steinberg社から個別にライセンスを受けることでVST 2.xを出力することができます。
具体的には、旧バージョンのVST SDKを入手し、Projucerのライブラリパスを設定することでVST 2.xを出力することができるようになります。
※本記事では、旧バージョンのVST SDKを所有していることを前提として解説していきます。
グローバルパスの設定
Projucerのメニューバーから[File]->[Global Paths...]を選択します。
Glopal Paths設定画面のうち、VST(Legacy)SDK
の項目を設定します。
旧バージョン(3.6.10以前)のVST SDKに含まれるフォルダーからVST2_SDK
フォルダを選択してOKを押します。
プロジェクト設定の[Plugin Formats]の項目にチェックを入れてプロジェクトを保存する。
ここまでの設定を行ったら、後は通常通りプロジェクトをビルドするだけでVST 2.xのdllファイルが出力されるようになります。