Help us understand the problem. What is going on with this article?

JUCE 5.4.0以降でVST 2.xをビルドするための設定

More than 1 year has passed since last update.

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...]を選択します。
globalpath.png

Glopal Paths設定画面のうち、VST(Legacy)SDKの項目を設定します。
globalpath2.png

旧バージョン(3.6.10以前)のVST SDKに含まれるフォルダーからVST2_SDKフォルダを選択してOKを押します。
vst2sdk.PNG

プロジェクト設定の[Plugin Formats]の項目にチェックを入れてプロジェクトを保存する。
vst2check.PNG

ここまでの設定を行ったら、後は通常通りプロジェクトをビルドするだけでVST 2.xのdllファイルが出力されるようになります。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away