Okazało się, że jest to bardziej skomplikowany problem, niż początkowo się spodziewałem.
QuickTime X nie może odtwarzać plików MIDI, chociaż QuickTime 7 może.
O ile wiem, oznacza to, że nie ma „wbudowanego” rozwiązania do odtwarzania plików MIDI w systemie Mac OS X (na przykład afplay
nie działa). Dlatego uważam, że każde rozwiązanie będzie wymagało pobrania i zainstalowania innego programu.
Opcja nr 1: Pobierz i zainstaluj QuickTime 7, który nadal działa dobrze w Mavericks, a następnie możesz odtwarzać pliki midi poprzez:
open -a QuickTime\ Player\ 7 /path/to/your/file.mid
jednak nastąpi automatyczne odtwarzanie tylko wtedy, gdy użytkownik włączy tę preferencję, która moim zdaniem jest domyślnie wyłączona .
Opcja nr 2: Użyj FluidSynth
Aby go zainstalować, musisz użyć Fink, MacPorts lub (moja rekomendacja) Homebrew. Po zainstalowaniu Homebrew wpisz to w Terminalu:
brew install fluidsynth
(Komenda MacPorts byłaby, sudo port install fluidsynth
a Fink byłaby fink install fluidsynth
).
Jednak pobieranie prowadzi fluidsynth
tylko częściowo. Potrzebujesz więc pliku „SoundFont”, o którym nigdy wcześniej nie słyszałem. Nie ma informacji o nich tutaj
Pobrałem jeden z S. Christian Collins o nazwie „GeneralUser”, który jest bezpłatny. Obecna wersja (stan na 27.11.2013) to FluidSynth wersja 1.44 . {Jeśli ten bezpośredni link zepsuje się w przyszłości, użyj poprzedniego linku, który przeniesie Cię na zwykłą stronę internetową dla GeneralUser.}
Po pobraniu i rozpakowaniu będziesz mieć serię plików, w tym „GeneralUser GS FluidSynth v1.44.sf2” (oczywiście nazwa może ulec zmianie w przyszłości). Zmieniłem nazwę tego pliku i przeniosłem go do /usr/local/share/fluidsynth/generaluser.v.1.44.sf2
.
Po umieszczeniu i fluidsynth
zainstalowaniu pliku SoundFont możesz odtworzyć plik midi za pomocą tego polecenia:
fluidsynth -i /usr/local/share/fluidsynth/generaluser.v.1.44.sf2 ~/Music/example.mid
nb Istnieją pewne (pozornie nieszkodliwe) komunikaty o błędach, które są wyświetlane, gdy to robisz. Jeśli chcesz je wyłączyć, użyj:
(fluidsynth -i /usr/local/share/fluidsynth/generaluser.v.1.44.sf2 ~/Music/example.mid 2>&1) >/dev/null
zamiast.
Oczywiście nigdy tego nie zapamiętam, więc utworzyłem zsh
funkcję o nazwieplaymidi
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
}
(Myślę, że to też powinno działać bash
).
Teraz wszystko, co muszę zrobić, to wpisać:
playmidi example.mid
i example.mid
zagrają.
To działało dla mnie:
źródło
file.midi: No such file or directory
Możesz używać VLC z nieinteraktywnym interfejsem CLI z
-I dummy
:Aby włączyć obsługę midi, przejdź do Preferencje> Pokaż wszystko> Kodery-dekodery> Kodeki audio> Fluid Synth i ustaw soundfont na plik taki jak Soundfont FluidSynth z http://www.schristiancollins.com/generaluser.php .
Edycja: obsługa midi została usunięta z najnowszej wersji VLC. Nadal możesz używać Fluidsynth z powłoki, jak opisano w TJ Luoma:
źródło
Według tego postu na forach VLC Felix Paul Kuehne , administrator witryny, powiedział
Więc na razie zmień wersję na vlc 2.0.9 lub poczekaj na vlc 2.1.2. W ten sposób istniejące rozwiązanie będzie działać tak, jak kiedyś.
źródło
Nie do końca odpowiedź, ale istnieje mała aplikacja, która może wysyłać dane midi w wierszu poleceń Mac OS X. Może także kontrolować podstawowe funkcje GarageBand: http://www.bibiko.de/music/MIDImyAPP/
źródło
Aby było wygodniej, możesz zakończyć odpowiedź TJ Luomy w aplikacji AppleScript:
Następnie możesz wybrać opcję Uzyskaj informacje o losowym pliku .mid, zmienić „Otwórz za pomocą:” na aplikację AppleScript i nacisnąć „Zmień wszystko ...”, aby ustawić domyślny sposób otwierania plików .mid. Teraz, po dwukrotnym kliknięciu pliku MIDI, otworzy się okno Terminala i odtworzy go automatycznie.
źródło