Ubuntu20.04 で TiMidity++ を使ってみる

(夏休み企画 2/20)

# TiMidity++

Timidity++ は MIDI 音源ソフト。 

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/8df13003-0281-3651-0bb4-3c15ed19e03f.png)

資料
Ubuntu Weekly Recipe の連載「第149回　MIDIとUbuntuの素敵な出会い（1） MIDIファイルを演奏してみる」
https://gihyo.jp/admin/serial/01/ubuntu-recipe/0149
に沿って作業。

# 環境

- Ubuntu 20.04LTS
- TiMidity++ version 2.14.0

# インストール

まず timidity 本体と操作画面をインストール

```

$ sudo apt-get install timidity timidity-interfaces-extra;
```
音源パッケージのインストール

```

$ sudo apt-get install freepats fluid-soundfont-gm fluid-soundfont-gs;
```

# 起動

資料のように

```

$ timidity -ig -Oe;
```
とするとエラーが出た。

```

$ timidity -ig 
```

で以下のように起動する。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/a51bd2f6-ee5e-7942-4870-a761b6a43170.png)
これは GTK+ を使った GUI.
ちなみに dash メニューから起動すると以下のような GUI が出る。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/29e2e7c5-ca85-75a0-5646-5eb1f5665012.png)
これと同じように起動するには

```


$ timidity -ia
```

として起動する。
以下、この GUI を元に説明。


# MIDI ファイルを用意する

ex., Public domain MIDI File 
「The Mutopia Project」
https://www.mutopiaproject.org/
などから、拡張子が .mid となっているファイルをダウンロード。
なお、timidity は zip 圧縮しているファイルもそのまま読める。

# MIDI ファイルを読み込む


「file...」パネルを押すとダイアログが出るが・・・
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/f32f7b7e-3018-6731-a1f7-3785993d0281.png)

ボタンが見えない。透かしてみると本当にうっすらと「確認」「すべてを追加」「Cancel」と文字が書いてある。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/5583b86c-81be-2474-715e-a33de53546f0.png)

また、ファイル選択も不安定だったりしてなんだかなあ。

追加したファイルは曲名のパネルを押すと一覧が出てくる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/a2e035de-840d-36e0-a6f2-387f422d940a.png)

再起動してもこれは保持される。リストを消すには「file...」→「演奏ファイルリスト (Ctrl-F)」で「削除」または「すべてを削除」

# 演奏


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/64bfa02c-6732-b2ce-f353-fb080699939f.png)

プレイするがシークバーやボリュームコントロールは効かない。
代わりに

- 「V」キーでボリューム Down
- 「Shift」+「V」でボリュームUP
- 「F」で10秒フォワードシーク
- 「B」で10秒リワインドシーク

そのほか、

- 「G」キーでスペクトログラム表示。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/d993101d-8a8e-9966-5027-5635ab4c87a8.png)

- 「file...」→「トレース画面の表示/非表示 (Ctrl+T)」でかっこいい鍵盤が出た
なお、キー操作で(Ctrl+T)を押してもトレース画面にはならない模様。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/608596a4-4587-efc9-2a25-b90b3f0b3db5.png)

このパネルで ch をいじくることができるかと思ったが触れないようだ。

起動時にトレース画面表示指定するには起動オプションを以下の組み合わせにする。

```

$ timidity -iat

```


# MIDI入力と接続

ALSA 経由でGUIツールを使って操作してみよう。

```

$ sudo apt install aconnectgui
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/dbc075be-e832-9588-2901-f5968ba5b33b.png)

となる。


timidiy をインタラクティブモードで動かしていると 外部からの MIDI 信号は受け付けられないようだ。

```

$ timidity -iA
```
として、デーモンモードで起動

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/37f3878e-86c1-50c9-6934-597425406f13.png)

入力できるようになった。


```

$ sudo apt install vkeybd

```

として仮想キーボードをインストール

起動。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/1904b418-743e-415a-c2dd-201b1722a4bc.png)


このままでは音が鳴らないが、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/c5481dc3-7f96-10a8-7d2b-521ef5bfa904.png)
これで TiMidity から音が出た。