ギター マルチエフェクター MOD Desktop を無料で使ってみよう(1) -lv2プラグインを増やそうWindows編-

# はじめに

この記事は MOD Audio ( https://mod.audio/ )が無料で提供しているギターマルチエフェクター、MOD Desktop の Windows版プラグインを Windowsの WSL 環境を使って増やそうという試みです。

![pic2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129361/f5297eea-c094-47ca-b84b-aa30544c60d0.png "この画像は MOD Desktop Linux版に mod-plugin-builder を使ってプラグインを増やしたものです")

今まで、MOD Desktop Linux版では mod-plugin-builder という Linux用のプラグインを作成できるツールがあって、実際に上記のように増やせたのですが、Windows版では mod-plugin-builder は利用できませんでした。

https://github.com/mod-audio/mod-plugin-builder

もともと MOD Desktop のもととなった MOD Dwarf は Linux OS をベースに作られており、そのプラグインも Linux の音楽制作で使われている lv2 という規格で作られています。

https://lv2plug.in/

lv2 は Linux 限定の規格ではないので、Windows でも使うことができますが、Windows ではたぶんほとんど使われていません。

そこで MOD Audio や Darkglass Anagram の開発にも携わっておられる falkTX さんが準備したのが、オーディオ・プラグインのためのクロスプラットフォーム・ビルドスクリプト PawPaw です。

https://github.com/DISTRHO/PawPaw

今回はその PawPaw を使って、Guitarix という Linux向けギター・マルチエフェクターを作成しておられる brummer さんの ToneTwistPlug を Windows版 MOD Desktop向けに作成しようというものです。

https://github.com/brummer10/ToneTwistPlugs

たぶん ToneTwistPlugs 以外にも PawPaw でクロスビルドできるプラグインがあると思いますので、もし成功したら教えていただけると幸いです。

# WSLの準備

WSL はわたしは Ubuntu 24.04 LTS を利用しました。
導入方法等はたくさん記事があるので、そちらを参照してください。

導入が終わったら、下記のようにアップデート＆アップグレードします。

```
sudo apt update
sudo apt upgrade
```

開発環境をインストールします。

```
sudo apt install build-essential mingw-w64 git curl cmake autoconf \
meson gperf libssl-dev libedit-dev zlib1g zlib1g-dev libbz2-dev \
libsqlite3-dev libffi-dev readline-dev tk-dev liblzma-dev
```
PawPaw は wine も利用しているようなので、インストールします。

```
sudo apt install wine
```



https://github.com/DISTRHO/PawPaw/issues/30

PawPaw には上記のような問題があって、Python3.12以降ではスクリプトが通らない部分があるので、pyenv を使って Python1.11.13 を導入します。


```
curl -fsSL https://pyenv.run | bash
```

.bashrc に下記を追記します。

```
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init - bash)"' >> ~/.bashrc
```
一度 Ubuntuターミナルを閉じて、再び起動します。


Python をインストールします。

```
pyenv install 3.11.13
```

pip で meson もインストールします。
```
pyenv global 3.11.13
pip install meson
```

これでひとまず準備完了です。

# PawPaw の環境構築

```
git clone https://github.com/DISTRHO/PawPaw.git
cd PawPaw
./bootstrap-plugins.sh win64
```

https://github.com/DISTRHO/PawPaw/issues/30

たぶん上記の問題でスクリプトがエラーで止まると思います。
これは `$HOME/PawPawBuilds/targets/win64/bin/gdbus-codegen` のシェバングが `#!/usr/bin/python3` と絶対パスで書かれているからです。

一時的に `$HOME/.pyenv/shims/python3` を `/usr/bin/python3` コピーするか、リンクします。（あとで戻しておいてください。ほかに良い方法があれば教えてください。）

再度、`bootstrap-plugins.sh` を実行します。



エラーで下記のコマンドを実行するように指示されるので実行します。
（先に下記を実行しておくとエラーで進めなくなったので、このタイミングで実行します。ほかに良い方法があれば教えてください。）

```
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install wine32:i386
```

またエラーになるので、下記を実行します。

```
cd ~/PawPawBuilds/targets/win64
mv wine wine.back
cd -
./bootstrap-plugins win64
```
止まったら、たぶん PawPaw の環境構築の終了です。


# PawPaw の使い方



```
source local.env win64
```

上記を実行したあと、希望の lv2 プラグインのレポジトリをクローンしてきて `make` すれば良いだけです。

https://github.com/brummer10/ToneTwistPlugs

```
git clone --recurse-submodules https://github.com/brummer10/ToneTwistPlugs.git
cd ToneTwistPlugs
make
```

make が通ったら、bin以下に成果物があるので、Documents/MOD Desktop/lv2フォルダを作り、コピーします。

```
mkdir /mnt/c/Users/ユーザー名/Documents/MOD\ Desktop/lv2
cp -r tubescreamer.lv2 /mnt/c/Users/ユーザー名/Documents/MOD\ Desktop/lv2/
```

# 今後

今回ビルドしたプラグインは見た目があんまり良くないので、その辺をなんとかしたいです。