【MIDI/音ゲー】Linux Mint 20.3 cinnamon/Ubuntu Studio 20.04をインストールしたらすぐやること

LinuxなPCでWindowsアプリ「Synthesia」やAndroid/iPadアプリ「Chordana Play」といった音ゲーを遊ぼうと思ったらLinux Mintとは別にMIDIを扱うためのUbuntu Studioを用意したほうが良さそうです。

# 短く言うと

:::note info
コマンドをコピーしやすいようにしてあるので、できるだけターミナルを使って簡単に初期設定します。※ターミナルにペーストするときは「Ctrl」+「Shift」+「v」
:::

:::note info
Ubuntu StudioにはFluidSynthがインストールされています。TiMidity++もインストールして併用します。
:::

:::note info
Ubuntu StudioにSynthesiaをインストールして
「WineHQ(Synthesia)」→「TiMidity++」→「PulseAudio」→「ALSA」→発音
となるように設定します。
:::

# はじめに

LinuxなPCで音ゲーを遊ぼうと思ったら、SMF(標準MIDIファイル)を鳴らす設定がとてもたいへんでした。それは[「MIDI-WineHQ WiKi」][21]によると以下の理由によります。Linuxの初期設定では __MIDI音源を鳴らすのは外部デバイス__ に設定されていて 「外部デバイスが接続されていないシリアルポートにMIDIデータを送信するため、音楽は聞こえません。[^22]」

そのため外部デバイスに頼らず、ソフトウェアシーケンサーを使用//MIDI音源と他音源の併用//内部スピーカーを鳴らすようにするとサウンドシステムがとても複雑になります。初心者ではMIDI音を鳴らすだけでも一苦労です。
そこで、「普段使いのLinux Mint」と「SMFを扱うUbuntu Studio」を併用してubuntuで音ゲーを遊べるように過不足なく設定します。

なお、設定がうまくいくまで繰り返し再インストールすることを想定しています。

[21]: https://wiki.winehq.org/MIDI

[^22]: It (presumably) sends bytes down the serial port where you have no HW connected, so you hear no music. 

# 今回の環境

- NEC LaVie LS350/A
    - ハードウェアシンセサイザーを持たない
- MIDIキーボード（Ubuntu Studio のみで使用）
    - AKAI PROFESSIONAL MPK Mini mr2
    - CASIO LK-S250
- USB接続のマウス

__以下のOSを併用__

- Linux Mint 20.3 Cinnamon
- Ubuntu Studio 20.04.3 LTS Focal Fossa

__PC内部サウンドシステム__

- ALSA
- PulseAudio
- JACK（Ubuntu Studio でのみ使用）
- ソフトウェアシンセサイザー（Ubuntu Studio でのみ使用）
    - FluidSynth（インストール済）
    - TiMidity++（新規インストール）

__その他(サーバーは別にあり、クライアントPCとして使用する)__

- sambaサーバ/VNCサーバの母艦が別に存在する
- OSのインストール時にネットワークに接続して「アップデートと他のソフトウェア」を全てダウンロード/インストールしておく

__※インストール済アプリの確認方法__

```:Terminal
apt list --installed | grep app_name
```
```:Terminal
snap list
```
```:Terminal
flatpak list
```


# 共通

:::note info
ホームディレクトリを日本語から英語に変更します：
:::

```:Terminal
LANG=C xdg-user-dirs-gtk-update
```

***

:::note info
「設定」>>「マウスとタッチパッド」でポインティングデバイスをOFFにします(操作はマウスでするので不要だから)。
:::

***

:::note info
クライアントPCとして使うのでファイアウォールを例外なしで起動します。
:::

※Linux Mintでは「ようこそ」画面でも設定できる。

[「Ubuntu ファイアウォールの設定と確認の仕方（初心者向け）」][41] によれば、

[41]: https://freepc.jp/post-42705

ファイアウォールを使用可能にします：

```:Terminal
sudo ufw enable
```
以下、参考

```:Terminal
## ファイアウォールのステータスを確認する
$ sudo ufw status

## ファイアウォールを使用しない
$ sudo ufw disable

## SSHポートの使用を許可する
$ sudo ufw allow 22

## SSHポートの使用許可を破棄する
$ sudo ufw delete allow 22
```

***

:::note info
リポジトリの参照先を近場に変更します。
:::

※Linux Mintでは「welcomeスクリーン」>>「アップデートマネージャー」でも設定できます。

[「Ubuntuの高速化～リポジトリ参照先の変更」][42] によれば、

[42]: https://qiita.com/kujiraza/items/c02908e0aed1001b2470

$ cat コマンドでリストを表示します：
```:Terminal
cat /etc/apt/sources.list | sed -e "/^#/d" -e "/^$/d"
```
>deb http://archive.ubuntu.com/ubuntu/ focal main restricted
>deb http://archive.ubuntu.com/ubuntu/ focal-updates main restricted
>deb http://archive.ubuntu.com/ubuntu/ focal universe
>deb http://archive.ubuntu.com/ubuntu/ focal-updates universe
>deb http://archive.ubuntu.com/ubuntu/ focal multiverse
>deb http://archive.ubuntu.com/ubuntu/ focal-updates multiverse
>deb http://archive.ubuntu.com/ubuntu/ focal-backports main restricted universe multiverse
>deb http://security.ubuntu.com/ubuntu/ focal-security main restricted
>deb http://security.ubuntu.com/ubuntu/ focal-security universe
>deb http://security.ubuntu.com/ubuntu/ focal-security multiverse

$ sed コマンドでsources.listを書き換えます(.bakファイルも生成)：
```:Terminal
sudo sed -i.bak -r 's!deb \S+!deb mirror://mirrors.ubuntu.com/mirrors.txt!' /etc/apt/sources.list
```
$ cat コマンドで再度リストを表示します：
```:Terminal
cat /etc/apt/sources.list | sed -e "/^#/d" -e "/^$/d"
```

>deb mirror://mirrors.ubuntu.com/mirrors.txt focal main restricted
>deb mirror://mirrors.ubuntu.com/mirrors.txt focal-updates main restricted
>deb mirror://mirrors.ubuntu.com/mirrors.txt focal universe
>deb mirror://mirrors.ubuntu.com/mirrors.txt focal-updates universe
>deb mirror://mirrors.ubuntu.com/mirrors.txt focal multiverse
>deb mirror://mirrors.ubuntu.com/mirrors.txt focal-updates multiverse
>deb mirror://mirrors.ubuntu.com/mirrors.txt focal-backports main restricted universe multiverse
>deb mirror://mirrors.ubuntu.com/mirrors.txt focal-security main restricted
>deb mirror://mirrors.ubuntu.com/mirrors.txt focal-security universe
>deb mirror://mirrors.ubuntu.com/mirrors.txt focal-security multiverse

```:Terminal
sudo apt update
```

```:Terminal
sudo apt upgrade
```

※エラーが出て、sources.listをもとに戻したい場合は、$ mv コマンドで：

```:Terminal
sudo mv -f /etc/apt/sources.list{.bak,}
```

***

:::note info
「ドック」のようなPlankをインストールします：
:::

```:Terminal
sudo apt update
```
```:Terminal
sudo apt install plank
```
Linux Mint：「設定」>>「自動開始させるアプリ」
Ubuntu Studio：「設定」>>「セッションと起動」>>「自動開始アプリケーション」

で、plankコマンドを登録します。

***
:::note info
PulseEffectsをインストールします。
:::

※必要ならイコライザーのプラグインを予めインストール：

~~$ | sudo apt install lsp-plugins-lv2~~

PulseEffectsをインストールします：

```:Terminal
sudo apt install pulseeffects
```

***

:::note info
Remmina(安定版)をインストールします：
:::

Remminaをインストールします：

```:Terminal
sudo apt install remmina
```

バージョンを確認します：

```:Terminal
remmina --version
```

Remminaを起動して、「Remminaメインメニュー」>>「設定」>>「アプレット」>>「ユーザーのログイン時に起動してトレイに格納する」

***

:::note info
ブラウザを併用したいのでカジュアル用途の「ungoogled-chromium」を追加インストールします。
:::

:::note warn
リポジトリキーについて不要なファイルが残ります。
:::

[「How to install ungoogled-chromiun on Ubuntu 20.04」][43]によれば、

[43]: https://askubuntu.com/questions/1298493/how-to-install-ungoogled-chromiun-on-ubuntu-20-04

~~不要なchromiumを削除します~~ （新規インストールなのでおそらく不要）：

```:Terminal
sudo apt-get autoremove --purge chromium
```

リポジトリキーのやり取りをして、インストールします：
```
echo 'deb http://download.opensuse.org/repositories/home:/ungoogled_chromium/Ubuntu_Focal/ /' | sudo tee /etc/apt/sources.list.d/home:ungoogled_chromium.list
```
```
sudo wget -nv https://download.opensuse.org/repositories/home:ungoogled_chromium/Ubuntu_Focal/Release.key -O "/etc/apt/trusted.gpg.d/home:ungoogled_chromium.asc"
```
```
sudo apt update
```
```
sudo apt install ungoogled-chromium
```

[「add-apt-repositoryの問題がapt-keyで解決出来ない時のTips」][44]を参考に不要なファイルを削除しておきます：


[44]: https://zenn.dev/tantan_tanuki/articles/79329ec2f87ee9

```:Terminal
file /etc/apt/trusted.gpg.d/* | grep old
```
```
sudo rm -i /etc/apt/trusted.gpg.d/home:ungoogled_chromium.asc
```


既存のブラウザとchromiumの設定も忘れずに。

***

:::note info
Firefoxのゴシック体フォントを「Droid sans fallback」→「Noto Sans CJK JP」に変更します。
:::

OSのフォント設定については、[「Ubuntu font tester」][45]を参考にして現在使われているフォントを確認します。

また、[「Brows Fonts-Google Fonts」][46]と比較して好みのものに変更してもよいでしょう。

[45]: https://design.ubuntu.com/font/

[46]: https://fonts.google.com/

※sans＝サンセリフ≒ゴシック体
※serif=セリフ≒明朝体

:::note info
モリサワ BIZ UD フォントをインストールします。
:::

[モリサワ BIZ UD フォントが2022/04/01 google font で公開になりました。][47] リンク先からモリサワBIZフォントのzipファイルをダウンロードしておきます。

[47]: https://fonts.google.com/?query=morisawa&preview.text_type=custom

[【Linux】フォントの追加][48] を参考にして、

[48]: https://turtlechan.hatenablog.com/entry/2019/06/11/211543

$ ls コマンドでインストール済のフォントを確認します：

```:Terminal
ls /usr/share/fonts/
```

システム全体でBIZフォントを使います。$ unzipコマンドで所定のディレクトリに展開します：

```:Terminal
sudo unzip ~/Downloads/BIZ_UDGothic.zip -d /usr/local/share/fonts/
```
```:Terminal
sudo unzip ~/Downloads/BIZ_UDPGothic.zip -d /usr/local/share/fonts/
```
```:Terminal
sudo unzip ~/Downloads/BIZ_UDMincho.zip -d /usr/local/share/fonts/
```
```:Terminal
sudo unzip ~/Downloads/BIZ_UDPMincho.zip -d /usr/local/share/fonts/
```
$ ls コマンドでフォントファイル（ttfファイル）が展開されたことを確認します：

```:Terminal
ls /usr/local/share/fonts/
```

>BIZUDGothic-Bold.ttf     BIZUDPGothic-Bold.ttf     OFL.txt
>BIZUDGothic-Regular.ttf  BIZUDPGothic-Regular.ttf
>BIZUDMincho-Regular.ttf  BIZUDPMincho-Regular.ttf

$ rm コマンドでzipファイルを削除します：

```:Terminal
rm -i ~/Downloads/BIZ_UD*.zip
```

***

:::note info
OSを動作したままディスプレイをスタンバイ（消灯）にできるようにします。
:::

$ xset コマンドでディスプレイをスタンバイ（消灯）にします：

```:Terminal
xset dpms force standby
```

デスクトップエントリにするには以下の手順となります：

```:Terminal
vi ~/display_standby.desktop
```

```:Terminal
#!/usr/bin/env xdg-open

[Desktop Entry]
Name=display_standby
Exec=xset dpms force standby
Comment=OSを起動したまま消灯します
Terminal=false
Icon=cs-power
Type=Application
Categories=Utility;
```

```:Terminal
chmod 755 ~/display_standby.desktop
```

```:Terminal
mv ~/display_standby.desktop ~/Desktop/
```

※デスクトップで右クリック→「＋ここに新しいランチャーを作成」でも作れます。

$ mv コマンドでアイコンをデスクトップからランチャーに移動します：

```:Terminal
mv ~/Desktop/display_standby.desktop ~/.local/share/applications/
```

***

:::note alert
デスクトップアイコンを非表示にする(動作確認中)
:::

```:Terminal
gsettings set org.gnome.desktop.background show-desktop-icons false
```

再度表示するには

```
gsettings set org.gnome.desktop.background show-desktop-icons true
```

***

# Linux Mint 20.3 のみ

:::note warn
サウンド関係はPulseAudioに自動で設定してもらうので、手動では行いません。
:::
:::note info
スナップ操作の効果音をオフにします。
:::

「設定」>>「サウンド」>>「サウンド」>>「ウィンドウのタイル表示/スナップ操作」>>tile.ogaをオフ
***
:::note info
VLC media playerをインストールします。
:::
***
:::note info
ffmpegをインストールします。
:::

ffmpegをインストールします：
```:Terminal
sudo apt install ffmpeg
```
※参考：動画ファイルから音声ファイルを抽出には以下の手順で行います：

```:Terminal
ffmpeg -i movie_file_name
```
```
# 前略
  Duration: 00:03:55.24, start: 0.000000, bitrate: 129 kb/s
    Stream #0:0(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 127 kb/s (default)
# 後略
```
Audio:　でファイル形式を確認して、

```:Terminal
ffmpeg -i 「動画ファイル名」 -vn -acodec copy 「音声ファイル名」
```
***

:::note info
Visual Studio Codeをインストールします。
:::

[「Download Visual Studio Code」][51]からcode_*.debファイルをダウンロードしたのち、インストールします：

[51]: https://code.visualstudio.com/download

```:Terminal
sudo apt install ~/Downloads/code_version_name.deb
```

***

:::note alert
（非推奨）snapdをインストールします。
:::

[Linux Mint 20.x : Snap アプリをインストールできるようにする][52]を熟読して、Linux Mint で snapd が使えない理由を理解した上で snapd をインストールします：

[52]: http://baker-street.jugem.jp/?eid=116

```:Terminal
sudo rm /etc/apt/preferences.d/nosnap.pref
```
```:Terminal
sudo apt update
```
```:Terminal
sudo apt install snapd
```

***

# Ubuntu Studio 20.04 のみ

:::note warn
サウンド関係は手動で設定します。MIDIについてはFluidSynthとTiMidity++を併用します。
:::
***
:::note info
youtube-dl をインストールします。
:::

[「最新のyoutube-dlコマンドをインストールするには？」][61] に従い以下の手順でインストールします：

[61]: https://linuxfan.info/install-latest-youtube-dl

```:Terminal
sudo apt remove -y youtube-dl
```
```:Terminal
sudo ln -s /usr/bin/python3 /usr/local/bin/python
```
```:Terminal
sudo wget https://yt-dl.org/downloads/latest/youtube-dl -O /usr/local/bin/youtube-dl
```
```:Terminal
sudo chmod a+rx /usr/local/bin/youtube-dl
```
```:Terminal
hash -r
```
```:Terminal
sudo youtube-dl -U
```

***
:::note info
WebAppManager をインストールします（Linux Mint で便利だから）。
:::

[「LinuxMintのWebAppManagerをUbuntu20.04にインストールする方法」][62] によれば、

[62]: https://websetnet.net/ja/how-to-install-linux-mints-web-app-manager-in-ubuntu-20-04/

Linux MintのRepositoryの[「Index of /pool/main/w/webapp-manager/」][63] から「webapp-manager_*_all.deb」をダウンロードしてインストールします：

[63]: http://packages.linuxmint.com/pool/main/w/webapp-manager/


```:Terminal
sudo apt install ~/Downloads/webapp-manager_*_all.deb
```
削除するときは：

```:Terminal
sudo apt remove --auto-remove webapp-manager
```

※Linux Mintリポジトリを追加して「Web App Manager」の更新情報を受信→インストールの手順もありますが、今回は省略。

***

:::note info
synapticパッケージマネージャーをインストールします(Linux Mintで便利だから)。
:::

[「synapticパッケージマネージャーのインストールについて」][64] に従い、以下のようにインストールします：

[64]: https://nagamitsu1976.hatenadiary.jp/entry/2016/05/12/115716

```:Terminal
sudo apt-get install synaptic apt-xapian-index 
```

```:Terminal
sudo update-apt-xapian-index -vf
```

***

:::note info
MP3Gainをインストールする
:::
:::note warn
apt-get updateでエラーが出るようになります。
:::

[「Ubuntu 20.04 対応の PPA 一覧」][65]を参考にして、以下のようにMP3Gainをインストールします：

[65]: https://sicklylife.hatenablog.com/entry/2020/04/23/192836

```:Terminal
sudo add-apt-repository -n -y ppa:sicklylife/ppa
```
```:Terminal
sudo apt update
```
```:Terminal
sudo apt install mp3gain
```

「QtGain」をインストールします：

```:Terminal
sudo apt install qtgain
```

エラーが出るか確認します：

```:Terminal
sudo apt-get update
```
ttp://ppa.launchpad.net がなんちゃらで「N: リポジトリの作成とユーザ設定の詳細は、apt-secure(8) man ページを参照してください。」と表示される場合は

[「apt-get updateでエラーが出た（Ubuntu）」][66]を参考にして、対処します。

[66]: https://hombre-nuevo.com/linux/linux0020/


***

:::note info
「MuseScore 3」を起動しI/Oを「ALSAオーディオ」に変更します。
:::

「編集」>>「環境設定」>>「I/O」>>「ALSAオーディオ」にチェック

AKAI PROFESSIONAL MPK mini を接続して動作するか確認します。

***

:::note info
WineHQをインストールします(「Music Studio Producer」「Synthesia」を使いたいから)。
:::

[【WineHQ】Linux Mint 20.3とUbuntu Studio 20.04にターミナルでWineHQをインストール/日本語表示][67] に従います。

[67]: https://qiita.com/johnnystg/items/fc386b786e5f58a4f0e8

***

:::note info
TiMidity++をインストールします(ログイン毎にデーモンモードで起動)。
:::

[【Linuxで音ゲーを実行#5】WineHQでMIDI出力アプリがフリーズ/音が出なかった][68] に従います。

[68]: https://qiita.com/johnnystg/items/891ad5e9d85627b37a8e

***

:::note info
WindowsアプリMusic Studio ProducerをWineHQにてインストールします。
:::

MuseScore 3 と Music Studio Producerを使うことでformat0形式SMF（標準MIDIファイル）のピアノ譜を作ることができます。クラウドでSMFを共有してAndoroidアプリChordana playで遊べるようにします。

***

:::note info
WindowsアプリSynthesiaをWineHQにてインストールします。
:::

[【MIDI/音ゲー】Linux Mint/UbuntuのWineHQでWindowsアプリSynthesiaを起動する][69] に従います。

[69]: https://qiita.com/johnnystg/items/42730265a245c7786acf

***

:::note info
~~Remmina(snap版)をインストール~~
:::

※無理してsnap版を使う必要はないかも。以下、興味があれば。

Ubuntu Studioではsnap版を使えとうるさい。
Remminaの有無や最新のバージョンについて確認

```:Terminal
apt show remmina
```
Remminaをインストール

```:Terminal
sudo snap install remmina
```

[「How to install Remmina」#snap ][44]を参考に、次に以下の5つの接続設定をする

[44]: https://remmina.org/how-to-install-remmina/#snap

```:Terminal
sudo snap connect remmina:audio-record :audio-record
```
```:Terminal
sudo snap connect remmina:avahi-observe :avahi-observe
```
```:Terminal
sudo snap connect remmina:cups-control :cups-control
```
```:Terminal
sudo snap connect remmina:mount-observe :mount-observe
```
```:Terminal
sudo snap connect remmina:password-manager-service :password-manager-service
```

バージョンの確認

```:Terminal
remmina --version
```

Remminaを起動して、「Remminaメインメニュー」→「設定」→「アプレット」→「ユーザーのログイン時に起動してトレイに格納する」

***