Windows10でオフラインでMIDIファイルをWAVファイルに変換する方法
もはや趣味でMIDIファイルをやり取りする機会が少なくなってるけど、やはり実験や音さえ出ればOKな程度の作編曲ではMIDIは便利です。
昔はiTunesとかでできたらしいけど何年か前からできなくなったようで、知識が無いと怪しげなオンライン変換サイトにアップロードしてダウンロードするしかありません。
それかDTMソフトに読み込んで書き出すか。
でも何曲も処理するにはそれではあまりにも面倒なので、自動化に繋がる方法はないかと探しました。
FluidSynthというアプリを使う方法が見つかったので、備忘録を兼ねて共有します。
FluidSynth
FluidSynth | Software synthesizer based on the SoundFont 2 specifications
サウンドフォントとかいう形式のソフトウェア音源を使うシンセサイザーという触れ込みです。
ダウンロードするにはGetting FluidSynthのタブに入って、WindowsとAndroidの方は、ページの下部にあるDownload Binary Releasesからzipでダウンロードするのが手っ取り早いです。
MacとかLinuxとかの人はInstall Fluidsynthに進んで指示に従います。
なんかwebからダウンロードしてインストールしてくれる支援ソフトみたいなのが何種類かあるらしくて(GenttooとかDebianとかあるのがそれ)、そいつをインストールした上でそいつを立ち上げて、書いてあるコマンドを入力したらインストールできるっぽいです。私はWindowsなのでChocolateyでやってみたらできました。
FluidSynthのインストール
Install Fluidsynthのページの方法の人はインストールできてるはず。この方法理解できた人ならどこにインストールされたかもたぶん大丈夫と思います。
zipをダウンロードした人は、解凍(展開)して都合の良い場所に移しましょう。私はChocolateyでやった結果、C:\tools\fluidsynthというフォルダができて、ここにbin, include, libのフォルダがある状態になりました。
パスを通す
ここはChocolateyでやった人は自動で通ってるので飛ばして大丈夫です。
zipをダウンロードした人は、タスクバーの虫メガネアイコンを押したら出てくる検索ボックスに「環境変数」と入力してEnterを押します。
すると「システムのプロパティ」ウィンドウが立ち上がるので、「詳細設定」のタブの下の方にある「環境変数」をクリックします。
新しく開いたウインドウに「(ユーザー名)のユーザー環境変数」というリストが出てきますので、そこに「新規」でユーザー変数を追加します。
変数名は何でも良いですがとりあえずFluidsynthとかにしておきましょう。変数値にはFluidsynthのフォルダのパス(C:\tools\fluidsynth)を入力して「OK」。あとは「OK」でウィンドウを閉じていきましょう。
※追記 帰宅して家のPCでzipダウンロードからインストールして実行したところ、この工程がうまくいかない感じでした(コマンドプロンプトからfluidsynthを実行しても「'fluidsynth' は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません。」と表示される)。原因が分からないのでお手上げです。
急ぐ方はChocolateyでやるか、「.midをwavに変換」で書いてる工程での「出力先」をfluidsynth.exeがあるフォルダ(C:\tools\fluidsynth\bin)にしましょう。
サウンドフォントのインストール
次は音源をインストールします。フリーのがいくつかあるようです。
サウンドフォントと SFZ ファイル | MuseScore
ここではとりあえずGeneralUser GSをインストールすることにしてみます。下記のページからダウンロードしました。
S. Christian Collins - Pianist, Composer, Virtual Instrument Designer
zipでダウンロードできたら解凍(展開)すると、中にGeneralUser GS v*.sf2というファイルがあります(*はバージョン番号)。これがサウンドフォントの本体です。
続いて、サウンドフォントの置き場所を作ります。FluidSynthはデフォルトではC:\ProgramData\soundfonts に default.sf2という名前でデフォルトのサウンドフォントがあると思ってるようなので、ここにさっきのsf2ファイルをコピーして、名前をdefault.sf2にリネームします。
なおProgramDataは隠しフォルダになっているので、エクスプローラの「表示」タブの「表示/非表示」部の「隠しフォルダ」にチェックを入れましょう。入れたら半透明の隠しフォルダが表示されます。
ProgramDataが表示されたら中に入って、soundfontsというフォルダを新しく作り、あとは先ほど説明したとおり。これで準備が整いました。
.midをwavに変換
コマンドプロンプトを開きます。タスクバーの虫メガネアイコンを押したら出てくる検索ボックスにcmdと入力してEnterを押せば立ち上がります。
ここでまず、出力するwavファイルを置きたい場所(フォルダ、ディレクトリとも言う)に移動します。どこでもよければ移動しなくても構いません。その場合はたぶんC:\Users\(ユーザー名)のフォルダに出力されることでしょう。
移動の仕方はこちらを参考にしましょう。
コマンドプロンプト | カレントディレクトリの変更(CD, CHDIR)
コマンドプロンプトが出力先の場所に移動できたら、出力先フォルダに変換したい.midファイルを置きます。これはエクスプローラからの操作で大丈夫です(たぶん他の場所にあってもやる方法はあるけどここでは面倒なのでそうします)。
そしてコマンドプロンプトで次のコマンドを入力します。
fluidsynth_-F_(出力ファイル名).wav_(入力ファイル名).mid
(アンダーバーは半角スペースに置換してください)
全部うまく行ってたらwavファイルができると思います。
その他
- 音色が気に入らない場合は他のサウンドフォントを試しましょう。
- どうもmidやwavのファイル名に半角スペースがあると具合悪いみたいです。半角スペースは避けましょう。
- matlabからfluidsynthを呼び出せたら楽なんだけどなあ(無理ならコマンドプロンプトを呼び出して、という形でできないか試してみる予定)
- Pythonではfluidsynthを呼び出す方法があるようです