Arch LinuxのVLCでMidiを再生する

Linux

こんにちは、山田ハヤオです。東方Projectとまどマギが好きです。

特にMidi音源で流すBGMが好きでよく東方永夜抄や東方紅魔郷をWineで起動してMidi音源で聞いていたりします。

まどマギの好きな曲の一つに「for the next episode」という曲があります。

正確にはアニメ版の「魔法少女まどか☆マギカ」ではなく映画の「劇場版魔法少女まどか☆マギカ[新編]叛逆の物語」及び「マギアレコード 魔法少女まどか☆マギカ外伝」で使用されているBGM。マギレコではこの曲はクエストクリア後のリザルト画面で流れる。詳しくはニコニコ大百科の項目を参照。

その曲のピアノアレンジのMidiファイルを入手したので再生しようとしたらこんなエラーが出ました。

コーデックが無いのか、じゃあインストールしてやればいいや。始めはそんなふうに軽く考えていましたが、思った以上に苦戦しました。

スポンサーリンク

Arch Wikiを確認

「Arch Linuxで困ったらとりあえずArchWIkiを見ろ」古事記にもそう書いてあります[要出典]

そのためまずはArch Wikiで調べます。あっさりと見つかりました。

VLC

Sound Fontファイルの場所を設定することでVLCでMIDIファイルを再生することができます。先に音源とfluidsynthパッケージをインストールする必要があります。

VLCを開いて

Tools > Preferences

すべての設定が表示されるようにしてください。そしてInput/Codecs -> Audio codecs -> FluidSynthを開いてください。例えばWikiに書かれているようにfluidr3をインストールした場合には、以下の場所に設定します:

/usr/share/soundfonts/FluidR3_GM2-2.sf2

https://wiki.archlinux.jp/index.php/MIDI#VLC

なんだかんたんじゃないか。まだそう思っています。

しかし、実際に必要なパッケージをインストールして設定を見ると…

そうです。FluidSynthなんて設定項目はどこにもありません。

VLCにはプラグインというものが存在します。

そこでプラグインで機能を拡張するため、Midiに対応させるプラグインを調べました。

プラグインを探せ

どのパッケージを入れるべき?

Google先生に聞いたところ、どうやら「vlc-plugin-fluidsynth」をインストールすればいいことが判明しました。

そしてUbuntuやDebianのパッケージもすぐに見つかりました。

しかしArch Linux用のパッケージが見つかりません。

少なくとも公式リポジトリには存在しないようです。

AURを探す

AURはすべてGitで管理されています。そのため表向きにはパッケージは存在していなくても裏側に過去のパッケージが残っている可能性が有ります。(これ覚えておくと結構役立ちます。)

そのためとりあえずgit cloneしてみます。

git clone https://aur.archlinux.org/vlc-plugin-fluidsynth

やっぱりありました。ウェブ上からは消えていますが、ソースコードは残っています。

あとはmakepkgを実行して完了…とはいきませんでした。

見つけたプラグインをインストールする

cd vlc-plugin-fluidsynth
makepkg -si

これでインストールされます。ビルドとインストールはすんなり成功しました。

あとは設定が追加されれば完了です。

キタ━━━━(゚∀゚)━━━━!!無事に追加されました。

でもちょっと待ってください。先程追加したパッケージのソースコードを読んでみます。

…これは酷い。ビルド済みのバイナリを直接PKGBUILDと同じ場所に配置しています。

これではバージョン管理もされませんし、何より気持ち悪いです。

Gitにコンパイル済みの実行ファイル置くなんてありえないでしょと。

パッケージを書き直す

さて、まずはこのプラグインのソースコードを探そう。と思ったのですがどこを探しても見つかりません。自分の探し方が悪いのかVLCのソースコードに組み込まれているか…

とにかくソースコードが見つからないのでは話になりません。

そこでちょっときたないですが別の手段を使うことにしました。

Debian sidのパッケージを流用する

Gooogle Chromeなどのソースコードが公開されていないプロプライエタリソフトウェアのPKGBUILDを書くときに使われる手法です。

UbuntuやDebian用のdebパッケージを展開して再配置します。

実はdebファイルはただの圧縮ファイルなのでかんたんに展開できます。

debファイルならなんでもいいので、Ubuntu 18.04やDebian 11のものでも大丈夫です。

しかしArch Linuxはローリングリリース。どうせならパッケージも最新を使いたい。

ということでDebian Sidです。SidはDebianのローリングリリース版になります。

PKGBUILDを書く

debを展開して配置し直すだけのPKGBUIDなのでちょちょいのちょいで書けます。

そして完成したソースコードがこちらになります。

既にAURに登録したので今これを読んでいるあなたはかんたんにインストールできます。

さっきと何が違うのか

最初にcloneしたパッケージとは全く違います。

バージョンも新しいものになっていますし、何よりソースコードにバイナリは入っていません。

新しいパッケージを入れ直す

まずはさっき入れた古いどうしようもないパッケージを削除します。

(入れてない人は無視してください。)

yay -Rsnc vlc-plugin-fluidsynth

そして私が追加した新しい健全なパッケージをインストールします。

yay -S vlc-plugin-fluidsynth-bin

設定を確認します。

やったぜ。これで最新のプラグインを健全な方法でインストールできました。

設定する

まだ終わりではありません(泣) ここからは設定を行っていきます。

まずはサウンドフォントをインストールしてください。

yay -S soundfont-fluid

そして先程の設定画面から「サウンドフォントファイル」の「参照」をクリックし、以下のパスのファイルを指定してください。

/usr/share/soundfonts/FluidR3_GM.sf2

これですべての設定が完了しました。

再生する

あとはMIMEファイル対応でMidiをVLCに関連付けて開けば完了です。

サウンドフォントは自分の好きなものを使ってください。

ここまでお疲れ様でした。

コメント

タイトルとURLをコピーしました