回答:
これは、当初予想していたよりも複雑な問題であることが判明しました。
QuickTime XはMIDIファイルを再生できませんが、QuickTime 7は再生できました。
私の知る限り、Mac OS XでMIDIファイルを再生するための「組み込みの」ソリューションafplay
はありません(たとえば、機能しません)。したがって、ソリューションには他のプログラムのダウンロードとインストールが含まれると考えています。
オプション#1:QuickTime 7をダウンロードしてインストールします。QuickTime7はMavericksで引き続き正常に機能し、次の方法でMIDIファイルを再生できます。
open -a QuickTime\ Player\ 7 /path/to/your/file.mid
ただし、ユーザーがその設定を有効にしている場合にのみ自動再生されます。デフォルトではオフになっています。
オプション#2:FluidSynthを使用する
それをインストールするには、Fink、MacPorts、または(私の推奨)Homebrewを使用する必要があります。Homebrewがインストールされたら、これをターミナルに入力します。
brew install fluidsynth
(MacPortsのコマンドはsudo port install fluidsynth
Finkのコマンドになりますfink install fluidsynth
。)
ただし、ダウンロードfluidsynth
では途中でしか取得できません。次に、これまで聞いたことのない「SoundFont」ファイルが必要です。それらに関する情報はここにあります
S. Christian Collinsから「GeneralUser」と呼ばれる無料の1つをダウンロードしました。現在のバージョン(2013-11-27現在)はFluidSynthバージョン1.44です。{将来、その直接リンクが壊れる場合は、GeneralUserの通常のWebページに移動する前のリンクを使用してください。}
ダウンロードして解凍すると、「GeneralUser GS FluidSynth v1.44.sf2」などの一連のファイルが作成されます(名前は将来変更される可能性があることは明らかです)。そのファイルの名前を変更してに移動しました/usr/local/share/fluidsynth/generaluser.v.1.44.sf2
。
SoundFontファイルを配置しfluidsynth
てインストールしたら、次のコマンドを使用してMIDIを再生できます。
fluidsynth -i /usr/local/share/fluidsynth/generaluser.v.1.44.sf2 ~/Music/example.mid
nbこれを行うと表示される(一見無害な)エラーメッセージがいくつかあります。それらを抑制したい場合:
(fluidsynth -i /usr/local/share/fluidsynth/generaluser.v.1.44.sf2 ~/Music/example.mid 2>&1) >/dev/null
代わりに。
明らかに、すべてを覚えることは決してないので、次のzsh
関数を作成しました。playmidi
function playmidi {
SOUNDFONT='/usr/local/share/fluidsynth/generaluser.v.1.44.sf2'
if [ -e "$SOUNDFONT" ]
then
for i in "$@"
do
if [ -e "$i" ]
then
(fluidsynth -i "$SOUNDFONT" "$i" 2>&1) >/dev/null
else
echo "[playmidi]: cannot find file at $i"
return 1
fi
done
else
echo "[playmidi]: SOUNDFONT file not found at $SOUNDFONT"
return 1
fi
}
(それもうまくいくはずbash
です。)
今、私がしなければならないのは、入力するだけです:
playmidi example.mid
そしてexample.mid
再生されます。
これは私のために働いた:
$ brew病インストールbrew病 $ timidity file.midi
file.midi: No such file or directory
以下を使用して、非対話型CLIインターフェイスでVLCを使用できます-I dummy
。
/Applications/VLC.app/Contents/MacOS/VLC -I dummy file.mid vlc://quit
MIDIサポートを有効にするには、[設定]> [すべて表示]> [入力/コーデック]> [オーディオコーデック]> [Fluid Synth]に移動し、http: //www.schristiancollins.com/generaluser.phpのFluidSynthサウンドフォントのようなファイルにサウンドフォントを設定します。
編集:VLCの最近のバージョンからmidiサポートが削除されました。TJ Luomaの説明に従って、シェルからfluidsynthを引き続き使用できます。
brew install fluidsynth
wget http://www.schristiancollins.com/soundfonts/GeneralUser_GS_1.44-FluidSynth.zip
unzip GeneralUser_GS_1.44-FluidSynth.zip
mkdir -p /usr/local/share/fluidsynth
mv GeneralUser\ GS\ 1.44\ FluidSynth/GeneralUser\ GS\ FluidSynth\ v1.44.sf2 /usr/local/share/fluidsynth
fluidsynth -i /usr/local/share/fluidsynth/GeneralUser\ GS\ FluidSynth\ v1.44.sf2 file.mid
VLC自身のフォーラムでのこの投稿に よると、サイト管理者のFelix Paul Kuehne氏は次のように述べています。
こんにちは、どうやら、FluidSynthは最後の更新のコンパイルプロセスで迷子になりました。すぐに2.1.2に戻ってくるのでご安心ください!
したがって、現時点ではvlc 2.0.9にダウングレードするか、vlc 2.1.2を待ちます。このように、既存のソリューションは以前と同じように機能します。
正確な答えではありませんが、Mac OS Xコマンドラインでmidiデータを送信できる小さなアプリがあります。また、基本的なGarageBand機能も制御できます。http: //www.bibiko.de/music/MIDImyAPP/
物事をより便利にするために、AppleScriptアプリでTJ Luomaの答えをまとめることができます。
on open inputFile
tell application "Terminal"
do script "fluidsynth -i /usr/local/share/fluidsynth/generaluser.v.1.44.sf2 " & (quoted form of POSIX path of inputFile as string)
activate
end tell
end open
次に、ランダムな.midファイルで[情報を見る]を選択し、[開く:]をAppleScriptアプリに変更し、[すべて変更...]を押して.midファイルを開くデフォルトの方法にします。これで、MIDIファイルをダブルクリックすると、ターミナルウィンドウが開き、自動的に再生されます。