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

## はじめに

オーディオインターフェースとギターがあれば試せる、マルチエフェクター＆アンプシミュレーターであるMOD Desktopについてこれまで説明してきたわけですが、今回は番外編です。

MOD Desktopにはインストールしてそのままでも多くのプラグインがありますが、今回はそのプラグインの数を増やそうという試みです。



## 注意事項

残念ながら今回説明する方法でビルドしたプラグインはWindowsやMacでは使えません。
Linux環境のみです。

たぶん Darkglass Anagram ~~でも使えます~~　ではまだ使えません。


## Darkglass Anagram について

:::note info
**注意** 技術的には Darkglass Anagram は lv2 プラグインホストなので、下記の方法が利用できるはずなのですが、Anagram へのアクセスが現在遮断されていると思われるため、プラグインを追加できません。
:::


:::note alert
**警告** Darkglass Anagram にファクトリーリセットがあるかわかりませんが、ssh のアクセス等は管理者権限で行うため、容易にシステムを破壊することができます。たぶん書き込み制限がかかっているので、ほどほどには安全だろうと思いますが、自己責任で作業をおこなってください。
:::

Darkglass Anagram が発表＆販売され２週間ほど経ちました。
実は Darkglass Anagram も MOD Audio が開発した MOD OS の Anagram 用に変更を加えたものを利用しています。

https://youtu.be/CzaVPM_Ja3U?si=wuy2WlTeOLiNfB8B&t=162

上記のDarkglass Anagram公式ビデオでは MOD Audio の設立者こと MOD Father 、Gianfranco Ceccolini さんがプロジェクト・マネージャーに、MOD Audio の主要開発者である Filipe Coelho (FalkTx)さんも開発に参加していることがわかります。


OS の名前は Pablito です。

https://www.darkglass.com/pablito-releases/

そして Anagram の利用しているライセンスページにも mod-plugin-builder の名前があります。

https://www.darkglass.com/pablito-licenses/

ということで、たぶん Darkglass Anagram でも mod-plugin-builder でビルドしたプラグインが利用できるだろうということで説明していきたいと思います。



## 必要なもの

* Ubuntu Linux

##  mod-plugin-builder

MOD Desktopでlv2プラグインをビルドするには**mod-plugin-builder**というツールを使います。

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

### 前準備

mod-plugin-builder をインストールする前に Ubuntu にビルドツールをインストールします。

```
$ sudo apt install acl bc curl cvs git mercurial rsync subversion wget \
bison bzip2 flex gawk gperf gzip help2man nano perl patch tar texinfo unzip \
automake binutils build-essential cpio libtool libncurses-dev pkg-config python-is-python3 libtool-bin \
libmxml1 libmxml-dev liblo7 liblua5.1-0-dev juce-tools
```

rust の開発環境は Ubuntu のレポジトリではなく、 rust 公式の方法でインストールします。

```
$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
```


mod-plugin-builderをgit cloneします。

```
$ git clone --recurse-submodules https://github.com/moddevices/mod-plugin-builder.git
```

MOD Desktop用の開発環境を整えます。
```
$ cd mod-plugin-builder
$ ./bootstrap.sh generic-x86_64
```

Darkglass Anagram用の開発環境の構築は次のようにおこないます。
```
$ cd mod-plugin-builder
$ ./bootstrap.sh darkglass-anagram
```


~~Pythonのバージョン3.12.3ではエラーが出るかもしれません。~~
~~その場合はダウングレードしてください。~~
~~ダウングレード方法は[こちら](https://qiita.com/Inqb8tr_jp/items/f8e20b89b02e2b494e96#python-%E3%81%AE%E3%83%80%E3%82%A6%E3%83%B3%E3%82%B0%E3%83%AC%E3%83%BC%E3%83%89)をご覧ください。~~

https://github.com/moddevices/mod-plugin-builder/issues/181

2時間ぐらいかかるでしょうか。

終了したら **$HOME** に **mod-workdir** ディレクトリが作成されているはずです。

### lv2プラグインのビルド

ビルド方法は **mod-plugin-builder** 内で次の書式でおこないます。

MOD Desktop の場合
```
$ ./build generic-x86_64 プラグイン名
```

Darkglass Anagram の場合
```
$ ./build darkglass-anagram プラグイン名
```


プラグイン名は **mod-plugin-builder/plugins/package** 以下にあるディレクトリ名です。

現在のところ **mod-plugin-builder/plugins/package** 以下には184のプラグインのビルドデータがあります。一つずつビルドするのは面倒なので次のコマンドでまとめてビルドします。

```
$ ls -C1 ./plugins/package | while read line ; do ./build generic-x86_64 $line ; done 
```

またまた時間がかかります。

ビルドされたファイルは **mod-workdir/generic-x86_64/plugins/** 以下にできます。少し前にわたしがビルドしたときには528のフォルダができています。

できたフォルダを ~~mod-desktop-0.0.12-linux-x86_64/mod-desktop/plugins~~  **~/Documents/MOD Desktop/lv2/** 以下にコピーすれば、MOD Desktopから使えるようになります。


MOD Desktop
```
$ cp -rn ~/mod-workdir/generic-x86_64/plugins/* ~/Documents/MOD Desktop/lv2/ 
```

Darkglass Anagram ではビルドしたプラグインをどこに配置するのかわかりませんが、たぶん USB でパソコンか Mac でつないで、ssh で繋ぐことができるはずです。

```
$ ssh root@192.168.51.1

                         @@@
                         @@@
                 @@@@@@@      @@@
               @@@  @@@@@@@   @@@
              @@        @@@@       @@@@@@@
         @@@  @@  @@@    @@@@    @@     @@@@
  @@@    @@@   @@@@@@@    @@@@  @@@@     @@@@
  @@@            @@@@     @@@@  @@@@@    @@@@   @@@
        @@@@@@@@           @@@   @@@     @@@@   @@@
    @@@@@@@@@@@@@@@@       @@@           @@@@
  @@@@@          @@@@@     @@           @@@@  @@@
 @@@                 @@@   @@         @@@@@   @@@
 @@     @@@            @@  @        @@@@@
 @@    @@@@@            @ @      @@@@@     @@@@
  @@@   @@@       @@@@@@@@@@@@@@@        @@@   @@@
     @@@@    @@@@@      @ @             @@@@@    @@
          @@@@@        @  @@             @@@     @@
  @@@   @@@@@         @@   @@@                  @@@
  @@@  @@@@           @@     @@@@@@          @@@@@
      @@@@           @@@       @@@@@@@@@@@@@@@@@
@@@   @@@@     @@@   @@@            @@@@@@@@
@@@   @@@@    @@@@@  @@@@     @@@@            @@@
      @@@@     @@@@  @@@@    @@@@@@@   @@@    @@@
       @@@@     @@    @@@@    @@@  @@  @@@
         @@@@@@@       @@@@        @@
                  @@@   @@@@@@@  @@@
                  @@@      @@@@@@@
                       @@@
                       @@@

              Welcome to Pablito!
             What took you so long?

```
上記は MOD Desktop の主要開発者である FalkTX さんの MOD Audio Forum からの引用です。

https://forum.mod.audio/t/darkglass-anagram/12504/12?u=inqb8tr-jp

ssh でログインするとこんな画面が表示されるはずです。
パスワードは ``darkglass`` か ``anagram`` なんかじゃないでしょうか。

あとは scp コマンドなんかで Ubuntu Linux 上の ``~/mod-workdir/darkglass-anagram/plugins/`` フォルダの中身を Darkglass Anagram のたぶん plugins か lv2 という名前のフォルダにコピーします。



わたしのMOD Desktop環境では821のプラグインが使えるようになっています。

## ~~Python のダウングレード~~ (必要ない)

古いバージョンのPythonのインストール。

```
$ sudo apt update
$ sudo add-apt-repository ppa:deadsnakes/ppa
$ sudo apt install python3.11
$ sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.11 1
$ sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.12 2
```
下記のコマンドで古いバージョンの Python を選択します。
```
$ sudo update-alternatives --config python3
There are 2 choices for the alternative python3 (providing /usr/bin/python).

  Selection    Path                 Priority   Status
------------------------------------------------------------
* 0            /usr/bin/python3.12   2         auto mode
  1            /usr/bin/python3.11   1         manual mode
  2            /usr/bin/python3.12   2         manual mode

Press <enter> to keep the current choice[*], or type selection number: 1
update-alternatives: using /usr/bin/python3.11 to provide /usr/bin/python (python3) in manual mode

```

## 過去の記事

https://qiita.com/Inqb8tr_jp