見出し画像

foobar2000でMIDIを再生したい【VSTi・サウンドフォント対応】

この記事では、foobar2000 を使って MIDI を再生する方法を解説していきます。

Windows11 には、MIDIファイル(ファイル名が .mid で終わるやつ) を再生するための標準の音楽プレイヤーがありません。なので、なにかしら対応した音楽プレイヤーが必要です。
(Winsows10 以前は、Windows Media Player で再生できたっぽい?)

そこで、foobar2000 を使って MIDI を快適に再生しよう、というのが今回の趣旨です。

ゲーム中に流れるBGMがMIDIで、そちらの変更方法について知りたいという方向けではないです。その場合はこちらの方の記事を読まれるといいと思います。

いやそもそもMIDIってなんやねん

MIDI を初めて知るという人もいるかも知れないので、簡単に説明をば。

MIDI(ミディ )は、Musical Instrument Digital Interfaceの頭文字をとったもので、楽器同士を接続して 「演奏情報」をやりとりするための規格です。
(中略)
この演奏情報 (すなわちMIDIデータ )は、MIDI対応の楽器間で送受信したり、SMF (Standard MIDI File)形式のファイルとして 保存しておいて、楽器上だけでなくコンピューター上で再生したりもできます。再生される演奏は、楽器やコンピューターの 性能によって多少は音質や表現力が異なりますが、ほぼ同じように聞こえます。

https://jp.yamaha.com/files/download/other_assets/6/315426/midi_basics_ja_v10a.pdf

これだけ読んでもよくわからないと思いますが、要は「電子楽器のための演奏データ」=MIDI ということです。つまり、曲を再生するための楽譜みたいなものですね。YouTube で曲を可視化したやつ(棒が流れてくるような)とかありますが、演奏データっていうのはそんなイメージです。

MP3 とかは音声データですが、MIDI は演奏データなので再生方法が変わって来ます。なので、色々導入したり設定したりが必要なんですよね。

さっそく本題に入りましょう。


※この記事は、以前に投稿した【MIDI】東方紅魔郷のBGMをなるべく良い音で聴きたい で紹介したMIDI再生の方法を、一般の foobar2000 ユーザーに向けて書き直したものになります。内容は重複する部分がほとんどです。あらかじめご了承ください。


必要なもの

◯foobar2000:万能な音楽プレイヤー
◯MIDI Player:foobar2000のコンポーネント(MODみたいなもん)
◯FluidSynth:サウンドフォントを再生するのに使う
◯サウンドフォント:お好みのもので(ここでは GeneralUser GS を使う)
◯VSTi:すでに持っていれば(なくても問題なし)

なにやら見慣れない文字列あるぞ、と思っても安心してください。料理みたいにレシピ通りにやればうまくいきます。

foobar2000 をインストール

foobar2000 はこちらの Latest Stable Version から 64-bit をダウンロードしてください(Windows 32bit版の方は32-bit)。

インストール時に色々聞かれますが、基本的にそのままで大丈夫です。

また、foobar2000 は設定なしには使いづらいので、使いやすくするための設定をこちらでご紹介しました。よければどうぞ。

MIDI Player を foobar2000 へ導入

foobar2000 はそのままでは MIDI に対応していません。なので、MIDI Player というコンポーネント(MOD)を使います。

少し下にスクロールして、Links の Download から。

こちらから、ダウンロードしてください。ファイルを開けば、勝手にインストールが始まります。(警告されたら Yes を選択)

ダウンロードしたサイトを信頼する場合だけ続けて下さい、と言われるので、Yes を選択。

これだけでも再生できます(ピコピコサウンドですが)。でも標準的な音とは言い難いので、もっと普通の音で聞くためにはセッティングが必要です。

サウンドフォントの場合

▼サウンドフォントとは
簡単に説明すると、MIDI が曲の「楽譜」だとするとサウンドフォントは曲を演奏するための「楽器(の音色)」に相当します。これを使って、ピコピコしてない普通の楽器に交換するわけです。

必要なものをダウンロードしていきます。

まずはサウンドフォントを読み込んで再生するために FluidSynth をダウンロード。(MIDI Player がサポートしているのがこのソフトのため)

このリンクの「fluidsynth-2.3.5ーWin10ーX64. zip」というところからダウンロードしてください。

Assets からダウンロード。

圧縮されているので、展開が必要です(Program Files 内の foobar2000 のフォルダの中に展開すると見つけやすいです)。

すべて展開を選択。
見づらいので拡大して見てください。
管理者の権限が必要と言われますが、すべての項目にこれを実行するを選択し、続行します。

次に、サウンドフォントを用意します。おすすめなのは、GeneralUser GS や SGM V2.01、Neo GM でしょうか(というか、それ以外あんま知らない)。

それぞれの特徴
◯GeneralUser GS:ファイルサイズが小さいながら高音質。少しチープでデフォルメされた音ですが、味があると思います。

◯SGM V2.01:より聴き馴染みのある打ち込み音源っぽさが増して、高音質になったのが感じられると思います。ファイルサイズは200MBくらい。

◯Neo GM:生楽器っぽさで言えばこの中では一番。ただし、高音質と引き換えにファイルサイズが異様にでかい(3GBくらいある)。

ゲーム音楽を聞いて評価しています。ジャンルが違うと感想も違うと思いますので、参考程度に。とりあえずここでは、個人的におすすめなGeneralUser GS を使って話を進めていきます

青文字のリンクをクリックするとダウンロードできます。

GeneralUser GSは、このサイトの Download から最新のもの(記事作成時点では GeneralUser GS 1.471)をダウンロード。展開したら、GeneralUser GS v1.471.sf2 を使います(これもあとあと見つけやすいように、Program Files > foobar2000 の中に soundfont と名前をつけたフォルダを作って、そこに展開するのがおすすめ)。

参照からフォルダーを新規作成。
同じく警告されるので、続行。

VSTi の場合

持っていなければ、読み飛ばして頂いて結構です。

私は Sound Canvas VA を持っているので、そちらを例に説明します。ネットで検索すると、Yamaha S-YXG50 というのも有名らしいですが、そちらでもやり方は同じです。

まず、vsti という名前のフォルダを Program Files 内の foobar2000 のフォルダ内に新規作成します。管理者権限が必要と言われますが、続行を選択します。

vsti というフォルダを作成。

このなかに、Sound Canvas VA (もしくはその他の VSTi)のデータをコピペします。Sound Canvas の場合、データは Program Files > Vstplugins > Roland > Sound Canvas VA の中に保存されています。

これをすべて vsti フォルダの中にコピペする。
(管理者権限が必要と言われたら、続行を選択)

ここで、一度 foobar2000 を再起動すると良いと思います。

必要な設定をこなす

次に、foobar2000 に準備したデータを読み込ませます。

左上の Files から、Preferences > Playback > Decoding > MIDI Player > Paths と開いていきます。(隠れていたら、▽をクリックすると展開します)

すると、VSTi Plugins やら SoundFont やらという欄がありますので、ここから読み込ませます。

サウンドフォントを使う方
まず FluidSynth を読み込ませます。bin というフォルダを使うのですが、先程の手順に従っていれば、PC > Cドライブ(C:)> Program Files > foobar2000 > fluidsynth-2.3.5-win10-x64 と開いていけば目的のフォルダが見つかるはず。

次に、SoundFont の欄に展開した GeneralUser GS v1.471.sf2 ファイルを指定してください。Program Files > foobar2000 > soundfont > GeneralUser GS 1.471 の中にあると思います。

画像では隠れていますが、最後に Apply を押してください

VSTi を使う方
先ほど作った vsti というフォルダを読み込ませます。… からファイルの場所を参照してください。Program Files > foobar2000 と開いていけば見つかります。

こうやって参照すると楽です。

次に、再生に使う MIDI プレイヤーを指定します。

Preferences > Playback > Decoding > MIDI Player を開きます。Output > Player から FluidSynth もしくは Sound Canvas などの VSTi が選択できるようになっているはずです。

こんな感じで選べる。

これを選択すれば、音源の読み込み完了です。これでMIDIファイルを再生できるようになりました

ここから先は補足です。①では詳細な設定について、②ではMIDIファイルのタグ編集について説明します。

補足①:詳細な設定

さきほどの設定画面についてもう少し詳しく説明します。

▼ サンプルレートの変更
一番右上の Sample rate で解像度の選択ができます。デフォルトでは44100だと思いますが、96000にすると解像度が上がります。(音源によっては稀にピッチが上がってしまいます)

▼ループ回数の設定
Looping 内の Playback から、ループ再生の設定ができます。おすすめは、Loop and fade when detected です。ループの有無を自動で判別してくれます。

曲にループがある場合、これを設定しないと曲が1ループで終わってしまって非常に物足りなくなります。

またループ回数を指定するには、設定の Advanced > Playback > MIDI Player > Playback timing when loops present > Loop count に数字を入力してください(指定しない場合が '2' なので、増やしたければ '3' 以上にすると良いです)。

▼ VSTi の設定
Player の横にある Configure から VSTi の詳細な設定画面を開けます(開けなかったら、Microsoft Visual C++ 2008 Runtime Libraries が必要かもしれません)。

Sound Canvas の場合、ここから OPTION > SYSTEM を開き、Map Mode で音源を選択できます。これを忘れると、SC-88Pro ではなく SC-8820 で再生されますので注意。

あとは Flavor から味付けを選択できますが、個人的には Defalt でいいです。

こんな感じでしょうか。他にも色々ありますが、私は触っていません。

補足②:タグ編集

MIDI ファイルのタグを編集する方法について。(曲名やアーティスト名といったデータのことです)

普通のタグ編集ソフトだと、MIDI ファイルに対応していないと思います。少なくともMP3tagではそうでした。

しかし、foobar2000 で曲ファイルを右クリックして Properties を選べばタグ編集ができます。
(Shift を押してまとめて選択すれば、アルバム名やアーティスト名の入力が楽)

さらに、流石にジャケットの表示は無理だろうと思っていたら、曲の入ったフォルダにアルバム名とまったく同じ .jpg ファイル(アルバム名.jpg)を入れておけばジャケットとして認識されます。
なぜか png だとうまくいきません。

これは嬉しい。

余談:Windows 標準のMIDI音源を鳴らしたかった

Windows には、標準で Microsoft GS Wavetable SW Synth という MIDI 音源が収録されています。

結構しょぼい音源でお世辞にも音がいいとは言えませんが、個人的に初めて MIDI を聴いたときの印象がこれなので、思い入れがあります。これを使って foobar2000 で再生する方法はないものか。結論をいうと、ありませんでした。

コンポーネント作者のレス。
見づらいですが、2段落目でサポートしていないと明言しています。

ただ、代替案はあります。

1つめは、Sound Canvas VA 内臓の SC-55 という音源を使う方法。これを選択すると Windows標準音源をかなり高音質化したような音になります(SC-55 の下位互換みたいなものとして SC-33 というのがあって、Windows音源はそれをベースにしてるらしい)。割とかけ離れてますが、求めてたものにはなる、みたいな。

その辺について詳しくはこちら。

あるいは、Windows 音源をサンプリングしたサウンドフォントを使うかですね。(かなりグレーだけど)

違う音楽プレイヤーを使えって話ですよね。はい。

最後に

この記事を作成するにあたって、参考にさせていただいたサイトをまとめて紹介いたします。情報が少ない中でこれらのサイトには非常に助けられました。この場を借りてお礼申し上げます。

▼新・旧バージョンのコンポーネント公式サイト

▼VSTi の導入方法を解説した動画

▼FluidSynth を導入すれば良いことに気づかせてくれた、貴重な日本語サイトです

それでは、また。

この記事が気に入ったらサポートをしてみませんか?