Установил однажды я виртуальную MIDI клавиатуру (vmpk), протестировал, не работает. Перерыл кучу страниц в интернете, полезной оказалась эта.
Инструкция пригодится для всех, кроме тех,
- кто использует Linux-поддерживаемые hardware synth звуковые карты
- кто использует внешние MIDI инструменты
Итак, для того, чтобы заработал MIDI требуется настроить программный синтез. Существует три основных программы, которые способны на такое: TiMidity++, Fluidsynth и ZynAddSubFX.
ZynAddSubFX – наиболее прост для тех ситуаций, когда вы хотите иметь один инструмент на выходе, т.к. он не требует сэмплов или саундфонтов (samples, soundfonts). В тех случаях, когда вы хотите прогрывать MIDI потоки с более чем одним инструментом, такие как General MIDI файлы, FluidSynth или Timidity++ более просты. FluidSynth имеет хороший графический интерфейс, но вам придётся потрудиться при поиске подходящего soundfont для него. TiMidity++ чуть труднее при установке, но samples легко устанавливаются из репозиториев.
Для своих целей я выбрал TiMidity++. Устанавливается он вот так:
sudo apt-get install timidity
Легко подключаются сэмплы (у меня установились сразу с timidity):
sudo apt-get install freepats
Сэмплы из freepats не полные на настоящий момент и полностью не покрывают стандарт General MIDI.
Если вы хотите звук получше, можете установить сэмплы Eawpatches, для этого добавьте следующий репозитарий в свой /etc/apt/sources.list файл:
deb http://www.fbriere.net/debian squeeze opencbm misc
Верифицируйте репозитарий командой:
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:
source /etc/timidity/freepats.cfg
Её заменить на такую строку:
source /etc/timidity/eawpatches.cfg
Всё, eawpatches установлены.
После установки timidity и подключения к нему сэмплов, необходимо проверить, работает ли он или нет:
timidity myfile.mid
Если звук играет, то всё ок!
Далее для использования timidity в других приложениях, необходимо запустить TiMidity++ Server. Для этого подключаем модули:
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
И запускаем сервер:
timidity -iA -B2,8 -Os1l -s 44100
Команда запускает TiMidity++ midi сервер и открывает 2 midi порта. После этой команды сторонние midi программы должны работать! Необходимо зайти в их настройки и выбрать timidity как output.
И как сделать так чтоб это работало даже когда закрываешь терминал. У меня в Убунте все само работало, но однажды перестало в outpute программы linthesia исчез timidity . Эта история повторяется на всех убунтах начиная с 8 по 11 верс. Отследить не удалось когда исчезает и почему. Подозреваю, что после установки какой-то программы, вероятно flight gear