FluidSynthを使って、MIDIファイルを再生してみました。コマンドラインから操作できるので、覚えておくといろいろ応用できるのでとても便利です。

fluidsynthとは、フリーでオープンソースのシンセサイザーです。macOS、Windows、Linuxに対応しています。この記事ではmacOSでの使い方を説明しています.

いわゆるアナログシンセやFMシンセのように、基本波形を変調して、音色を合成するというより、SoundFontという音色データを再生するサンプラーのような感じですね。なので、音質は、SoundFontのデータ次第です。

インストール方法

インストールには、次のふたつが必要です。

  • FluidSynth - 本体
  • SoundFont - 音データ

FluidSynth

MacPortユーザーであれば、次のコマンドで簡単にインストールできます。

$ sudo port install fluidsynth

Hombrewでも、homebrew-coreに登録されていますので、簡単ですね。

$ sudo brew install fluidsynth

SoundFont

次に、音色のデータSoundFontを別途インストールします。

SoundFonntにもいろいろフリーで利用できるものがネットで公開されていますが、おすすめは
GeneralUser GS (the GeneralUser SoundFont by S. Christian Collins (GS))
です。他にもいろいろ試してみましたが、これが一番、手軽 & 高音質で気に入りました。

MacPortsユーザーなら幸せなことに、パッケージが用意されています。

$ sudo port install generaluser-soundfont

他のユーザーでも、簡単に公式サイトからダウンロード&インストールできるので、問題ないはずです。

使い方

それでは、実際に再生してみましょう。

コマンドラインの使い方です。

fluidsynth {オプション} {SoundFontのパス} {MIDIファイル}

例えば、こんな風に入力すれば、MIDIが再生されるはず。

$ fluidsynth -i ~/SoundFonts/Yamaha_XG_Sound_Set.sf2 /opt/local/share/examples/generaluser-soundfont/*.mid

最初の引数-i を指定しておくと、再生終了後、FluidSynthも終了します。

指定しない場合、再生終了後もFuidSynthのシェルが起動したままになります。今回は単なるMIDIプレイヤーとして使いたいだけなので、-iを指定しておいたほうがいいでしょう。

2番目の引数は、SoundFontのファイルパスを指定しています。

SountFontのインストール方法によって違いますが、MacPortsのパッケージを使っている場合、次のコマンドで確認できます。

$ port contents generaluser-soundfont

3番目の引数は、再生するMIDIファイルです。サンプルのMIDIファイルがGeneralUser GSに含まれていますので、今回はそれを指定しています。

*.mid とアスタリスクで指定すれば、複数のMIDIファイルを連続再生することができます。

ちなみにSondFontのGeneralUser GSが想像以上に高音質でおどろきました。同梱されていたMIDIファイルThe Christmas Song.midがとても気に入ったので、季節はずれながら、よく聴いています。

ちなみに、いつもサウンドフォントのパスを指定するのは面倒なので、aliasを使って

alias midi='/opt/local/bin/fluidsynth -i /opt/local/share/sounds/sf2/GeneralUser_GS_v1.47.sf2'

などと設定しておくと

$ midi {ファイル名}

で再生できるので便利かと思われます。