Установил однажды я виртуальную MIDI клавиатуру (vmpk), протестировал, не работает. Перерыл кучу страниц в интернете, полезной оказалась эта.
Инструкция пригодится для всех, кроме тех,
- кто использует Linux-поддерживаемые hardware synth звуковые карты
- кто использует внешние MIDI инструменты
Итак, для того, чтобы заработал MIDI требуется настроить программный синтез. Существует три основных программы, которые способны на такое: TiMidity++, Fluidsynth и ZynAddSubFX.
ZynAddSubFX – наиболее прост для тех ситуаций, когда вы хотите иметь один инструмент на выходе, т.к. он не требует сэмплов или саундфонтов (samples, soundfonts). В тех случаях, когда вы хотите прогрывать MIDI потоки с более чем одним инструментом, такие как General MIDI файлы, FluidSynth или Timidity++ более просты. FluidSynth имеет хороший графический интерфейс, но вам придётся потрудиться при поиске подходящего soundfont для него. TiMidity++ чуть труднее при установке, но samples легко устанавливаются из репозиториев.
Для своих целей я выбрал TiMidity++. Устанавливается он вот так:
1 | sudo apt-get install timidity |
Легко подключаются сэмплы (у меня установились сразу с timidity):
1 | sudo apt-get install freepats |
Сэмплы из freepats не полные на настоящий момент и полностью не покрывают стандарт General MIDI.
Если вы хотите звук получше, можете установить сэмплы Eawpatches, для этого добавьте следующий репозитарий в свой /etc/apt/sources.list файл:
1 | deb http://www.fbriere.net/debian squeeze opencbm misc |
Верифицируйте репозитарий командой:
1 | wget -O- http: //www .fbriere.net /public_key .html | sudo apt-key add - |
После этого вы можете установить пакет ‘eawpatches’ (31 MB). Если же вы не хотите подключать репозиторий, можете скачать файл отсюда: http://www.fbriere.net/debian/dists/stable/misc/deb/eawpatches_12-1~fbriere.5_all.deb
Eawpatches подключается к Timidity следующим образом. После установки Eawpatches, необходимо найти и заменить следующую строку в файле /etc/timidity/timidity.cfg:
1 | source /etc/timidity/freepats.cfg |
Её заменить на такую строку:
1 | source /etc/timidity/eawpatches.cfg |
Всё, eawpatches установлены.
После установки timidity и подключения к нему сэмплов, необходимо проверить, работает ли он или нет:
1 | timidity myfile.mid |
Если звук играет, то всё ок!
Далее для использования timidity в других приложениях, необходимо запустить TiMidity++ Server. Для этого подключаем модули:
1 2 3 4 5 | sudo modprobe snd- seq -device sudo modprobe snd- seq -midi sudo modprobe snd- seq -oss sudo modprobe snd- seq -midi-event sudo modprobe snd- seq |
И запускаем сервер:
1 | timidity -iA -B2,8 -Os1l -s 44100 |
Команда запускает TiMidity++ midi сервер и открывает 2 midi порта. После этой команды сторонние midi программы должны работать! Необходимо зайти в их настройки и выбрать timidity как output.
И как сделать так чтоб это работало даже когда закрываешь терминал. У меня в Убунте все само работало, но однажды перестало в outpute программы linthesia исчез timidity . Эта история повторяется на всех убунтах начиная с 8 по 11 верс. Отследить не удалось когда исчезает и почему. Подозреваю, что после установки какой-то программы, вероятно flight gear