JUCE frameworkについて
JUCE(Jules' Utility Class Extensions) framework はC++言語で様々なマルチメディア系アプリケーションを作るのを支援するフレームワークです。公式サイト
付属のエディタ『Projucer』から複数のIDE(VisualStudio, Xcode, Makefile)向けのプロジェクトファイルを自動で出力してくれるので、ワンソースでクロスプラットフォームなアプリケーションの作成を実現できます。
一機能としてVSTプラグインやAudioUnitプラグイン(以下AU)を作成することができます。
本記事はその機能を使って、VST/AUプラグインを作る工程を紹介します。
※VST = Steinberg's Virtual Studio Technology
準備
JUCE Frameworkの入手
-
Get JUCE (2016/05/07現在)
- 公式サイトのダウンロードページでメールアドレスを入力して。"submit"してください。
-
プラットフォーム選択
- Mac, Windows, Linux用のダウンロードリンクが表示されるので、
自分の環境に合わせてダウンロードしましょう。
今回はMac編なので、『Download JUCE for Mac』を選択します。 - 『juce-grapefruit-osx.zip』のダウンロードが完了したら、解凍します。
適当なディレクトリに置いて頂いて構いません。
- Mac, Windows, Linux用のダウンロードリンクが表示されるので、
VST SDKの入手
- Get VST SDK
- Steinberg社の開発者向けページ
中の『VST 3.6.5 Audio Plug-Ins SDK』と書かれたダウンロードリンクから入手します。 - 『vstsdk365_XX_XX_XXXX_build_XX.zip』のダウンロードが完了したら、
zipを解凍して『VST3 SDK』フォルダを適当なディレクトリに置いてください。
これからの説明を簡単にするため、今回は以下のディレクトリに置きます。
ディレクトリ:~/SDKs/VST3 SDK
- Steinberg社の開発者向けページ
HelloWorld
Projucerでの作業
- Projucer起動
- 先ほど解凍した『juce-grapefruit-osx』フォルダの中にある『Projucer.app』を起動すると、新規プロジェクト作成画面が表示されます。
※表示されない場合は、『File』→『New Project』を選択すると新規ウインドウで表示されます。
- 先ほど解凍した『juce-grapefruit-osx』フォルダの中にある『Projucer.app』を起動すると、新規プロジェクト作成画面が表示されます。
- VST SDKのパス設定
- 『Tools』→『Global Preferences』を選択するとこの画面が出てきます。
『VST SDK』と『VST3 SDK』のパス設定を、先ほど配置した『VST3 SDK』ディレクトリに設定してください。
- 『Tools』→『Global Preferences』を選択するとこの画面が出てきます。
-
新規プロジェクト作成
- スタート画面に並んだアイコンのうち[Audio Plug-in]と書かれた下段左から2番目のアイコンをクリックしてください。
- 『Project Name』プロジェクト名の設定 クラス名の一部に自動的に使用されます。
- 『Target Platforms』ビルドターゲット・IDEの選択
-
Configタブ - プロジェクトの設定
- 出力したいビルド形式にチェックしてください
- 『Build VST』 VST(2.4)形式で出力
- 『Build VST3』VST3形式で出力
- 『Build AudioUnit』AU形式で出力
- 『Bundle Identifier』com."Plugin Name"."Plugin Manufacturer" としておくとよい
- 『Plugin Name』ホストアプリケーションに読み込まれた際にプラグイン名として表示
- 『Plugin Manufacturer』ホストアプリケーションに読み込まれた際にベンダー名として使用される
- 出力したいビルド形式にチェックしてください
-
Filesタブ - 自動生成ファイルについて
- PluginProcessor.cpp/.h
- DLLのエントリポイントやホストアプリケーションとの入出力を担当します。
- オーディオバッファのポインタを取得します。
- PluginEditor.cpp/.h
- GUIを実装します。
- PluginProcessor.cpp/.h
-
音声処理部のプログラミング
- こちらの記事をご参照ください ⇒ JUCEでHello Sine!
-
GUIのプログラミング
- こちらの記事をご参照ください ⇒ ProjucerのGUIエディタを紹介してみる
-
Xcodeの起動
- Configタブの"Open in IDE"をクリックして"Xcode"を選択。
Xcodeでの作業
- Deplyment Targetの設定
- 対象環境としたいOSXのバージョンより前のものを選択してください。
- Deplyment Targetより前のOSX上では、ホストアプリケーションに認識されないケースを確認しています。
- Architecturesの設定
- 32bitプラグイン/64bitプラグインとして出力する選択はここで行います。
-
ビルド
- 『Product』→『Build』
-
デプロイ先ディレクトリの確認
- AudioUnit:"~/Library/Audio/Plug-Ins/Components/XXX.component"
- VST:"~/Library/Audio/Plug-Ins/VST/XXX.vst"
- VST3:"~/Library/Audio/Plug-Ins/VST/XXX.vst3"
DAW(ホストアプリケーション)で確認
- Audio Unit
- VST