Это оказалось более сложной проблемой, чем я первоначально ожидал.
QuickTime X не может воспроизводить MIDI-файлы, хотя QuickTime 7 может.
Насколько я могу судить, это означает, что не существует «встроенного» решения для воспроизведения MIDI-файлов в Mac OS X (например, afplay
не работает). Поэтому я считаю, что любое решение будет связано с загрузкой и установкой какой-либо другой программы.
Вариант № 1: Загрузите и установите QuickTime 7, который по-прежнему отлично работает на 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 install fluidsynth
.)
Тем не менее, загрузка fluidsynth
только дает вам часть пути туда. Тогда вам нужен файл "SoundFont", о котором я никогда раньше не слышал. Здесь есть информация о них
Я скачал один из S. Christian Collins под названием «GeneralUser», который является бесплатным. Текущая версия (по состоянию на 2013-11-27) - версия 1.44 FluidSynth . {Если эта прямая ссылка прекратит работу в будущем, используйте предыдущую ссылку, которая приведет вас на обычную веб-страницу для GeneralUser.}
После того, как вы загрузили и распаковали его, у вас будет ряд файлов, включая «GeneralUser GS FluidSynth v1.44.sf2» (очевидно, имя может измениться в будущем). Я переименовал этот файл и переместил его в /usr/local/share/fluidsynth/generaluser.v.1.44.sf2
.
Как только файл SoundFont будет размещен и fluidsynth
установлен, вы можете воспроизвести миди с помощью этой команды:
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
будет играть.
Это сработало для меня:
источник
file.midi: No such file or directory
Вы можете использовать VLC с неинтерактивным интерфейсом CLI с
-I dummy
:Чтобы включить поддержку midi, перейдите в «Настройки»> «Показать все»> «Ввод / Кодеки»> «Аудиокодеки»> «Fluid Synth» и установите для SoundFont такой файл, как «SoundFont FluidSynth», по адресу http://www.schristiancollins.com/generaluser.php .
Редактировать: поддержка MIDI была удалена из последней версии VLC. Вы все еще можете использовать Fluidsynth из оболочки, как описано TJ Luoma:
источник
Согласно этому сообщению на собственных форумах VLC , администратор сайта Феликс Пол Кюне сказал:
Так что сейчас либо перейдите на vlc 2.0.9, либо дождитесь vlc 2.1.2. Таким образом, ваше существующее решение будет работать как раньше.
источник
Не совсем ответ, но есть небольшое приложение, которое может отправлять промежуточные данные в командной строке Mac OS X. Он также может управлять основными функциями GarageBand: http://www.bibiko.de/music/MIDImyAPP/
источник
Чтобы сделать вещи более удобными, вы можете обернуть ответ TJ Luoma в приложение AppleScript:
Затем вы можете выбрать «Получить информацию о случайном файле .mid», изменить «Открыть с помощью» на приложение AppleScript и нажать «Изменить все ...», чтобы сделать его стандартным способом открытия файлов .mid. Теперь, когда вы дважды щелкните по MIDI-файлу, он откроет окно терминала и воспроизведет его автоматически.
источник