Ini ternyata menjadi masalah yang lebih rumit dari yang saya perkirakan.
QuickTime X tidak dapat memutar file MIDI, meskipun QuickTime 7 bisa.
Sejauh yang saya tahu itu berarti tidak ada solusi "built-in" untuk memutar file MIDI pada Mac OS X (misalnya, afplay
tidak berfungsi). Karena itu saya percaya bahwa solusi apa pun akan melibatkan pengunduhan dan pemasangan beberapa program lain.
Opsi # 1: Unduh dan instal QuickTime 7 yang masih berfungsi dengan baik di Mavericks, dan kemudian Anda dapat memutar file midi dengan:
open -a QuickTime\ Player\ 7 /path/to/your/file.mid
namun itu hanya akan memutar otomatis jika pengguna telah mengaktifkan preferensi itu, yang saya yakini tidak aktif secara default.
Opsi # 2: Gunakan FluidSynth
Untuk menginstalnya, Anda harus menggunakan Homebrew Fink, MacPorts, atau (rekomendasi saya). Setelah Homebrew diinstal, ketikkan ini di Terminal:
brew install fluidsynth
(Perintah MacPorts adalah sudo port install fluidsynth
dan Fink akan fink install fluidsynth
.)
Namun, pengunduhan fluidsynth
hanya membuat Anda separuh jalan di sana. Maka Anda memerlukan file "SoundFont", yang belum pernah saya dengar sebelumnya. Ada informasi tentang mereka di sini
Saya mengunduh satu dari S. Christian Collins bernama "GeneralUser" yang gratis. Versi saat ini (pada 2013-11-27) adalah FluidSynth versi 1.44 . {Jika tautan langsung itu rusak di masa depan, gunakan tautan sebelumnya yang akan membawa Anda ke halaman web reguler untuk GeneralUser.}
Setelah Anda mengunduh dan membuka ritsletingnya, Anda akan memiliki serangkaian file termasuk "GeneralUser GS FluidSynth v1.44.sf2" (tentu saja namanya dapat berubah di masa mendatang). Saya mengganti nama file itu dan memindahkannya ke /usr/local/share/fluidsynth/generaluser.v.1.44.sf2
.
Setelah file SoundFont fluidsynth
dipasang dan diinstal, Anda dapat memainkan midi dengan menggunakan perintah ini:
fluidsynth -i /usr/local/share/fluidsynth/generaluser.v.1.44.sf2 ~/Music/example.mid
nb Ada beberapa pesan kesalahan (yang tampaknya tidak berbahaya) yang ditampilkan saat Anda melakukannya. Jika Anda ingin menekan mereka gunakan:
(fluidsynth -i /usr/local/share/fluidsynth/generaluser.v.1.44.sf2 ~/Music/example.mid 2>&1) >/dev/null
sebagai gantinya.
Jelas saya tidak akan mengingat semua itu, jadi saya membuat zsh
fungsi yang disebutplaymidi
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
}
(Itu seharusnya berhasil bash
juga untuk saya.)
Sekarang yang harus saya lakukan adalah mengetik:
playmidi example.mid
dan example.mid
akan bermain.