こんにちは、山田ハヤオです。東方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に関連付けて開けば完了です。
サウンドフォントは自分の好きなものを使ってください。
ここまでお疲れ様でした。
コメント