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すげー。