DSSIプラグインの導入方法

DSSIプラグイン倍増計画

現在、Linux系・Unix系OS向けのFLOSS(自由ソフトウェアかつオープンソース)なDigital Audio Workstation(DAW)であるRosegardenを、我がantiX 19 i386(Debian 10 BusterベースのLinuxディストリビューション)で愛用中。だが、RosegardenはLADSPA・DSSIプラグインにのみ対応しており、特にDSSIプラグインがDebian公式パッケージに少ないのが難点。今回は、以下のFLOSSなDSSIプラグインをビルドして導入してみることにした。

  • Ninjas: サンプル対象のWAVファイルを最大8等分できる典型的なスライスサンプラーのVST2・LV2プラグイン
  • SineShaper-DSSI: 典型的なモノシンセのSineShaperというLV2プラグインをLinuxMAOでDSSIプラグインにポートしたもの
  • String-Machine: ARP/Solina String EnsembleをシミュレートしたポリシンセのVST2・LV2プラグインだが、ARP/Solina String Ensembleとは異なり、インストゥルメントとコーラスエフェクトが分離している
  • Zynayumi: PSG音源チップのGeneral Instrument AY-8910とYamaha YM2149をエミュレートしたAyumiというチップチューン向けシンセを、DSSI・VST2プラグインにポートしたもの(ネイティブGUIはない模様)

それぞれビルドしていく。

Ninjasのビルド

まず、プラグイン等のインストール先を作成しておく。

mkdir -p ~/.local/bin
ln -s ~/.local ~/local
ln -s ~/.local/bin ~/bin
mkdir -p ~/.local/lib/dssi
ln -s ~/.local/lib/dssi ~/.dssi
ln -s ~/.local/lib/dssi ~/dssi
mkdir -p ~/.local/lib/ladspa
ln -s ~/.local/lib/ladspa ~/.ladspa
ln -s ~/.local/lib/ladspa ~/ladspa
mkdir -p ~/.local/lib/lv2
ln -s ~/.local/lib/lv2 ~/.lv2
ln -s ~/.local/lib/lv2 ~/lv2
mkdir -p ~/.local/lib/vst
ln -s ~/.local/lib/vst ~/.vst
ln -s ~/.local/lib/vst ~/vst

DPF(DISTRHO Plugin Framework)というFLOSSなアプリケーションフレームワーク製のようだ。依存しそうなパッケージを片っ端からインストールしてから、ビルドしていく。

sudo apt update
sudo apt install ladspa-sdk dssi-dev lv2-dev liblo-dev libx11-dev mesa-common-dev libgl1-mesa-dev libx11-dev libpugl-dev libasound2-dev libjack-jackd2-dev libaubio-dev libsndfile1-dev libsamplerate0-dev libmagic-dev python3 python3-liblo python3-rdflib
git clone --recursive https://github.com/rghvdberg/ninjas ninjas
cd ninjas
nano plugins/Ninjas/Makefile

./plugins/Ninjas/Makefileの52行目に次の1行を挿入して保存する。

TARGETS += dssi

ではビルド。

CONFIG=Release DEBUG=false CFLAGS='-msse2 -mfxsr' CXXFLAGS='-msse2 -mfxsr' make

ninjas/binディレクトリに作成されたバイナリを手動で~/.dssi等にコピー。Qtractorで試したら、DSSIプラグインだけネイティブGUIが表示されず、これではWAVファイルをインポートできないので音が出せない。DSSIプラグインは失敗、VST2・LV2プラグインは成功。

SineShaper-DSSIのビルド

依存しそうなパッケージを片っ端からインストールしてから、ビルドしていく。

sudo apt update
sudo apt install ladspa-sdk dssi-dev lv2-dev liblo-dev libx11-dev mesa-common-dev libgl1-mesa-dev libatkmm-1.6-dev libcairomm-1.0-dev libglademm-2.4-dev libglibmm-2.4-dev libgtkmm-2.4-dev libasound2-dev libjack-jackd2-dev libaubio-dev libsndfile1-dev libsamplerate0-dev libmagic-dev
git clone --recursive https://github.com/linuxmao-org/sineshaper-dssi sineshaper-dssi
cd sineshaper-dssi
./configure --prefix=$HOME/.local CFLAGS='-msse2 -mfpmath=sse -mfxsr' CXXFLAGS='-msse2 -mfpmath=sse -mfxsr'
make

makeが通らない。エラーメッセージに従いconfigureを再作成してみる。

autoreconf -if
./configure --prefix=$HOME/.local CFLAGS='-msse2 -mfpmath=sse -mfxsr' CXXFLAGS='-msse2 -mfpmath=sse -mfxsr'
make

ダメだやっぱり通らない。しかし依存パッケージの不足はないようだ。そんなこんなで2時間ほど格闘して諦めた。ビルドでこういうことは稀によくある。

cd ..
rm -rf sineshaper-dssi

String-Machineの導入

DPF製のようだ。依存しそうなパッケージを片っ端からインストールしてから、ビルドしていく。

sudo apt update
sudo apt install ladspa-sdk dssi-dev lv2-dev liblo-dev libx11-dev mesa-common-dev libgl1-mesa-dev libx11-dev libpugl-dev libasound2-dev libjack-jackd2-dev libaubio-dev libsndfile1-dev libsamplerate0-dev libmagic-dev python3 python3-liblo python3-rdflib
git clone --recursive https://github.com/jpcima/string-machine string-machine
cd string-machine
nano plugins/string-machine-chorus-stereo/Makefile

./plugins/string-machine-chorus-stereo/Makefileの49行目へ以下の2行を挿入して保存する。

TARGETS += dssi
TARGETS += jack

./plugins/string-machine-chorus/Makefileの46行目へ同様に2行を挿入して保存する。

nano plugins/string-machine-chorus/Makefile

./plugins/string-machine/Makefileの77行目へ同様に2行を挿入して保存する。

nano plugins/string-machine/Makefile

ではビルドし、インストールしていく。

mkdir build
cd build
CONFIG=Release DEBUG=false CFLAGS='-mfpmath=sse -mfxsr' CXXFLAGS='-O2 -mfpmath=sse -mfxsr' make
PREFIX=$HOME/.local make install

スクリプトを書き換えて強引に作成したDSSIプラグインのバイナリは手動で~/.dssiに、JACKクライアントのバイナリは~/binにコピーした。Rosegarden及びQtractor上で動作確認したが、DSSIプラグインのみネイティブGUIが出てこない。しかし、全プラグインから音が出た。

Zynayumiの導入

依存しそうなパッケージを片っ端からインストールしてから、ビルドしていく。

sudo apt update
sudo apt install ladspa-sdk dssi-dev lv2-dev liblo-dev libboost-all-dev libasound2-dev libjack-jackd2-dev libaubio-dev
git clone --recursive https://github.com/eriser/zynayumi zynayumi
cd zynayumi

VST SDKへのシンボリックリンクを作成する。

ln -s ~/VST_SDK/VST2_SDK './VST3 SDK'

なお、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

ではビルド。

mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=$HOME/.local -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_FLAGS='-O2 -msse2 -mfpmath=sse -mfxsr' -DCMAKE_CXX_FLAGS_RELEASE='-msse2 -mfpmath=sse -mfxsr' ..
cmake --build . --config Release
cmake --install . --prefix $HOME/.local

Rosegarden及びQtractor上で動作確認したが、全プラグイン成功したようだ。

結論

他にも以下のとおりビルドに失敗した、あるいは見送ったFLOSSなプラグインがある。

これらを含めてわかったことは、ネイティブGUIのあるDSSIプラグインはどうやら導入が難しそう。