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なプラグインがある。
- https://github.com/geraldmwangi/GuitarSynth-DPF -> DPF製のモノフォニック・ギターシンセサイザーのようだが、ビルドは通ったものの正常に動作せず
- https://github.com/smbolton/sfxr-dssi -> sfxrというチップチューン向けシンセをDSSIプラグインにポートしたものとのことだが、Waf(Pythonで書かれたビルドツール)等を用意するのが面倒で諦めた
これらを含めてわかったことは、ネイティブGUIのあるDSSIプラグインはどうやら導入が難しそう。