JUCE製プラグインの導入方法

JUCEとは

JUCEとは、C++言語によるクロスプラットフォームなマルチメディア系アプリケーション向けフレームワークとのこと。しかし、JUCE製プラグインのオープンソースの中には、Linux用Makefileが用意されていないものがしばしばある。例えばSFZeroというSFZ形式のFLOSSなサウンドフォントシンセ、例えばMagical 8bit Plug 2というFLOSSなチップチューン向け8ビットシンセ、等々。これらをLinuxでビルドしようとすれば、自分でLinux用Makefileを用意しなければならない。で、ちょっとやってみた。

JUCEの導入

まず、我がantiX 19 i386(Debian 10 BusterベースのLinuxディストリビューション)にJUCEを導入。

sudo apt update
sudo apt install juce-modules-source juce-tools
projucer

これでProjucerというJUCE用IDEが起動するので、セットアップを済ます。これがさっぱりわからない。なお、VST2プラグインのビルドのためにレガシーVST SDKのパスを設定しなければならないようだが、私は事前にvst-sdk_3.6.14_build-24_2019-11-29.zipをダウンロードして~/上に展開しているので、このパスを指定した。

wget https://download.steinberg.net/sdk_downloads/vst-sdk_3.6.14_build-24_2019-11-29.zip
unzip vst-sdk_3.6.14_build-24_2019-11-29.zip

JUCE製プラグインのクローン

SFZeroの場合はこう。

git clone --recursive https://github.com/stevefolta/SFZero SFZero

Magical 8bit Plug 2の場合はこう。

git clone --recursive https://github.com/yokemura/Magical8bitPlug2 Magical8bitPlug2

JUCEプロジェクトファイルの読み込み

Projucerで拡張子jucerのJUCEプロジェクトファイルを読み込む。SFZeroの場合はこう。

projucer SFZero/SFZero.jucer

Magical 8bit Plug 2の場合はこう。

projucer Magical8bitPlug2/Magical8bitPlug2.jucer

Linux用Makefileの書き出し

まず、Projucerの左上の歯車アイコンをクリックして、開いているプロジェクトを自分の環境に合わせて再セットアップする。これがさっぱりわからないので、当てずっぽうに弄る。次に、左パネル下方にLinux用Makefileを作成する。これがさっぱりわからないので、当てずっぽうに弄る。なお、SFZeroにはmodule/SFZeroディレクトリ内にユーザーモジュールが存在するので、左パネルのModuleのところも当てずっぽうに弄る。最後に、メニューバーでFile -> Save All。

JUCE製プラグインのビルド

Builds/LinuxMakefileディレクトリ内にLinux用Makefileが自動的に作成されているので、ビルドする。なお、SFZeroではmodule/SFZero/SFZero/JUCE5ディレクトリ内に修正モジュールが用意されているので、ファイルを差し替えてからビルドする。

cd SFZero/Builds/LinuxMakefile
CONFIG=Release DEBUG=false CFLAGS='-msse2 -mfpmath=sse -mfxsr' CXXFLAGS='-msse2 -mfpmath=sse -mfxsr' make

Magical 8bit Plug 2の場合はこう。

cd Magical8bitPlug2/Builds/LinuxMakefile
CONFIG=Release DEBUG=false CFLAGS='-msse2 -mfpmath=sse -mfxsr' CXXFLAGS='-msse2 -mfpmath=sse -mfxsr'

結果

Projucerでトライアル・アンド・エラーを相当やったとは言え、結果的にはビルドできた。ほぼほぼ当てずっぽうだったのにJUCEすげー。