MOD Dwarfを無料で使ってみよう(2)

### はじめに

前回の[『MOD Dwarfを無料で使ってみよう(1)』](https://qiita.com/Inqb8tr_jp/items/ee3a30838e90c3ee9589)では公開されているisoファイルをUSBメモリに書き込み、そのUSBメモリからブートすることでmod-live-usbを利用しました。

前回、一番最初に下記のスクリーンショットを貼り付けましたが、このスクリーンショットは前回の記事では実現できないことがいくつかあります。

![screenshot_2023-07-17T10:43:58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129361/b8078a9d-2595-12fe-eb5b-de123c9e503c.png)

* ウェブブラウザからアクセスしている
* isoファイルではNeural Amp Modeler lv2とAida-Xが収録されていない

などです。

ネット機能やNeural Amp Modeler lv2やAida-Xを収録したisoファイルを提供してもらえればよいのですが、現在のところまだ公開されていません。

しかしながらmod-usb-liveのソースファイルは公開されていますので、今回はそのソースを使って、上記2点を実現していきたいと思います。

具体的にはこちら([https://github.com/moddevices/mod-live-usb](https://github.com/moddevices/mod-live-usb))に書いてある通りなのですが、ビルドに必要な環境なども説明していけたらと思います。

### 必要なもの

* Linuxが入ったパソコン

Linuxはディストリビューションがさまざまありますが、本記事ではUbuntu 22.04を使いました。

そして実際に動かすにはDocker環境とJACK2環境が必要です。

### Ubuntu22.04の準備

インストールについては割愛します。

#### 開発ツールのインストール

```
$ sudo apt install build-essential
```

#### Dockerのインストール

Dockerについて素人なので他の方の記事を参照してください。

わたしはDocker本家([https://docs.docker.com/engine/install/ubuntu/](https://docs.docker.com/engine/install/ubuntu/))の記事を参考にインストールしました。


```systemd-nspawn```経由でmod-osを開始するので、```systemd-container```もインストールします。

```
$ sudo apt install systemd-container
```



#### JACK2のインストール

```
$ sudo apt install jackd2
```
jackd2のインストール終了時には下記の表示がされるので```"Yes"```を選択します。


![Screenshot from 2023-07-21 22-00-52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129361/7a967fc4-edb5-338a-928c-3d1948c36241.png)

#### グループへの追加

インストールが完了したら、```docker```と```audio```グループに自分自身を追加します。


```
$ sudo usermod -a -G docker,audio ユーザ名
```
グループに追加できたら、一旦ログアウトか再起動して、再ログインします。

### mod-live-usbのビルド

#### mod-live-usbのソースファイルのダウンロード

```
$ git clone --recurse-submodules https://github.com/moddevices/mod-live-usb.git
```


#### mod-osのビルド

```
$ cd mod-live-usb/
$ make mod-os
```

時間がかかります。わたしの環境(Thinkpad x230)では3時間ぐらいかかりました。



#### pluginのビルド

```
$ make plugins
```

さらに時間がかかります。

途中サードパーティのサーバからのダウンロードで止まるときがあるかもしれません。この記事の作成途中で実際にビルドしているのですが```download.linuxaudio.org```がダウンしていて、プロセスが止まってしまうことがありました。

そんなときには一旦ビルドプロセスをKILLして```mod-live-usb/plugins/Makefile```を編集して、ビルドするプラグインを```#```でコメントアウトして、再度```make plugins```を実行してください。

上記のサーバに関しては```fluidplug```パッケージに関連していますので下記のようになります。

![Screenshot from 2023-07-22 14-24-53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129361/0f7adc02-9fe5-e035-9f01-334f1c852c21.png)



### 最初のスクリーンショットの実現

ビルドが正常に完了したら一番最初のスクリーンショットは実現できます。

![screenshot_2023-07-17T10:43:58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129361/b8078a9d-2595-12fe-eb5b-de123c9e503c.png)

まずビルドした環境のIPアドレスを調べます。

```
$ ip addr
```

![Screenshot from 2023-07-21 23-20-31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129361/ebce162d-4e1b-1188-8590-3309e7fcd5b4.png)



次にLinuxに接続しているオーディオ・インターフェースを調べます。

```
$ cat /proc/asound/cards
```
![Screenshot from 2023-07-21 23-08-15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129361/23f57bc3-88a8-fa73-f735-362c5b362d91.png)

mod-osを起動する際にさきほどのUSB接続されているオーディオ・インターフェースの先頭の番号を```hw:```の後につけて、次のコマンドを実行します。ちなみに下記で48000はサンプルレート、128はバッファサイズです。

ちなみに```cat /proc/asound/cards```の出力結果は番号が起動する毎に変わることがあるので、毎回確認する方がよいです。（順番を固定することもできるのですが、本記事では説明しません。詳しくはこちら([https://wiki.archlinux.org/title/Advanced_Linux_Sound_Architecture#Set_the_default_sound_card](https://wiki.archlinux.org/title/Advanced_Linux_Sound_Architecture#Set_the_default_sound_card))を参照すると良いような気がします。)

```
$ ./mod-os/start.sh hw:1 48000 128
```
```systemd-nspawn```経由でDcokerコンテナが起動します。





終了するときは```Ctrl+]```を三回押してください。

同じネットワーク上にあるパソコン(Windowsでも構いません。ビルドしたLinuxのブラウザでも構いません。)でブラウザを立ち上げ、上記で確認したIPアドレスの後に```:8888```をつけて開きます。

```
https://192.168.0.12:8888
```

これでNeural Amp Modeler lv2やAida-X、Klon CentaurオーバードライブのクローンChow Centaurなども使えるようになります。

次回、[『MOD Dwarfを無料で使ってみよう(3)』](https://qiita.com/Inqb8tr_jp/items/461625cf450c01ddb74d)では、mod-osの一番外側のビルドと、Neural Amp Modeler lv2へのMODファイルの渡し方などを説明しようと思います。