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

JUCE Frameworkを使ってVST/AudioUnitプラグインを作る Mac編 -HelloWorldの巻-

More than 1 year has passed since last update.

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現在)

  • プラットフォーム選択

    • Mac, Windows, Linux用のダウンロードリンクが表示されるので、 自分の環境に合わせてダウンロードしましょう。 今回はMac編なので、『Download JUCE for Mac』を選択します。
    • 『juce-grapefruit-osx.zip』のダウンロードが完了したら、解凍します。 適当なディレクトリに置いて頂いて構いません。 スクリーンショット 2016-01-24 1.16.17.png

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

HelloWorld

Projucerでの作業

  • Projucer起動

    • 先ほど解凍した『juce-grapefruit-osx』フォルダの中にある『Projucer.app』を起動すると、新規プロジェクト作成画面が表示されます。
      ※表示されない場合は、『File』→『New Project』を選択すると新規ウインドウで表示されます。 スクリーンショット 2016-01-24 1.45.12.png
  • VST SDKのパス設定

    • 『Tools』→『Global Preferences』を選択するとこの画面が出てきます。
      『VST SDK』と『VST3 SDK』のパス設定を、先ほど配置した『VST3 SDK』ディレクトリに設定してください。
      スクリーンショット 2016-01-24 1.45.28.png
  • 新規プロジェクト作成

    • スタート画面に並んだアイコンのうち[Audio Plug-in]と書かれた下段左から2番目のアイコンをクリックしてください。
    • 『Project Name』プロジェクト名の設定 クラス名の一部に自動的に使用されます。
    • 『Target Platforms』ビルドターゲット・IDEの選択 スクリーンショット 2016-01-24 2.10.19.png
  • Configタブ - プロジェクトの設定

    • 出力したいビルド形式にチェックしてください
      • 『Build VST』 VST(2.4)形式で出力
      • 『Build VST3』VST3形式で出力
      • 『Build AudioUnit』AU形式で出力
    • 『Bundle Identifier』com."Plugin Name"."Plugin Manufacturer" としておくとよい
    • 『Plugin Name』ホストアプリケーションに読み込まれた際にプラグイン名として表示
    • 『Plugin Manufacturer』ホストアプリケーションに読み込まれた際にベンダー名として使用される スクリーンショット 2016-01-24 2.10.29.png
    • Xcode用設定項目
      • デプロイ設定が自動生成されます スクリーンショット 2016-01-24 1.58.27.png
  • Filesタブ - 自動生成ファイルについて

    • PluginProcessor.cpp/.h
      • DLLのエントリポイントやホストアプリケーションとの入出力を担当します。
      • オーディオバッファのポインタを取得します。
    • PluginEditor.cpp/.h
      • GUIを実装します。 スクリーンショット 2016-01-24 1.59.47.png
  • 音声処理部のプログラミング

  • GUIのプログラミング

  • Xcodeの起動

    • Configタブの"Open in IDE"をクリックして"Xcode"を選択。

Xcodeでの作業

  • Deplyment Targetの設定

    • 対象環境としたいOSXのバージョンより前のものを選択してください。
    • Deplyment Targetより前のOSX上では、ホストアプリケーションに認識されないケースを確認しています。 スクリーンショット 2016-01-24 2.11.59.png
  • Architecturesの設定

    • 32bitプラグイン/64bitプラグインとして出力する選択はここで行います。 スクリーンショット 2016-01-24 2.11.48.png
  • ビルド

    • 『Product』→『Build』
  • デプロイ先ディレクトリの確認

    • AudioUnit:"~/Library/Audio/Plug-Ins/Components/XXX.component" スクリーンショット 2016-01-24 2.15.14.png
    • VST:"~/Library/Audio/Plug-Ins/VST/XXX.vst" スクリーンショット 2016-01-24 2.15.27.png
    • VST3:"~/Library/Audio/Plug-Ins/VST/XXX.vst3" スクリーンショット 2016-01-24 2.15.35.png

DAW(ホストアプリケーション)で確認

  • DAW起動
    スクリーンショット 2016-01-24 2.16.06.png

    • エフェクトプラグイン選択画面 スクリーンショット 2016-01-24 2.16.20.png
  • Audio Unit
    スクリーンショット 2016-01-24 2.16.43.png

  • VST
    スクリーンショット 2016-01-24 2.16.51.png

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