Dies stellte sich als ein komplizierteres Problem heraus, als ich ursprünglich erwartet hatte.
QuickTime X kann keine MIDI-Dateien abspielen, QuickTime 7 jedoch.
Soweit ich das beurteilen kann, gibt es keine "eingebaute" Lösung, um MIDI-Dateien unter Mac OS X abzuspielen ( afplay
funktioniert beispielsweise nicht). Daher glaube ich, dass jede Lösung das Herunterladen und Installieren eines anderen Programms beinhalten wird.
Option Nr. 1: Laden Sie QuickTime 7 herunter und installieren Sie es, das auf Mavericks weiterhin einwandfrei funktioniert. Anschließend können Sie Midi-Dateien wie folgt abspielen:
open -a QuickTime\ Player\ 7 /path/to/your/file.mid
jedoch wird , dass nur automatisch abgespielt , wenn der Benutzer diese Einstellung aktiviert ist, was ich glaube , ist aus der Standardeinstellung.
Option 2: Verwenden Sie FluidSynth
Um es zu installieren, müssen Sie entweder Fink, MacPorts oder (meine Empfehlung) Homebrew verwenden. Sobald Homebrew installiert ist, geben Sie dies im Terminal ein:
brew install fluidsynth
(Der Befehl von MacPorts wäre sudo port install fluidsynth
und der von Fink wäre fink install fluidsynth
.)
Durch das Herunterladen fluidsynth
gelangen Sie jedoch nur teilweise dorthin. Dann brauchen Sie eine "SoundFont" -Datei, von der ich noch nie gehört hatte. Es gibt Informationen über sie hier
Ich habe einen kostenlosen "GeneralUser" von S. Christian Collins heruntergeladen . Die aktuelle Version (Stand 27.11.2013) ist FluidSynth Version 1.44 . {Wenn dieser direkte Link in Zukunft nicht mehr funktioniert, verwenden Sie den vorherigen Link, der Sie zur regulären Webseite für GeneralUser führt.}
Sobald Sie das heruntergeladen und entpackt haben, werden Sie eine Reihe von Dateien haben, einschließlich "GeneralUser GS FluidSynth v1.44.sf2" (offensichtlich kann sich der Name in Zukunft ändern). Ich habe diese Datei umbenannt und in verschoben /usr/local/share/fluidsynth/generaluser.v.1.44.sf2
.
Sobald die SoundFont-Datei gespeichert und fluidsynth
installiert ist, können Sie mit dem folgenden Befehl ein Midi abspielen:
fluidsynth -i /usr/local/share/fluidsynth/generaluser.v.1.44.sf2 ~/Music/example.mid
nb Es gibt einige (scheinbar harmlose) Fehlermeldungen, die angezeigt werden, wenn Sie das tun. Wenn Sie sie unterdrücken möchten, verwenden Sie:
(fluidsynth -i /usr/local/share/fluidsynth/generaluser.v.1.44.sf2 ~/Music/example.mid 2>&1) >/dev/null
stattdessen.
Offensichtlich werde ich mich nie an all das erinnern, also habe ich eine zsh
Funktion namens erstelltplaymidi
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
}
(Das sollte auch funktionieren, bash
glaube ich.)
Jetzt muss ich nur noch Folgendes eingeben:
playmidi example.mid
und example.mid
wird spielen.