Воспроизведение MIDI в Линукс

King аватар

Однажды понадобилось прослушать файлик в MIDI-формате. Ничего сверхъестественного в этом, казалось бы, не было - подумаешь, миди! У меня линукс воспроизводит множество звуковых форматов - WAV, MP3, OGG, WMA и т.д. и еще массу видеоформатов. Поэтому уверенно ткнул мышкой в мидяшный файл и приготовился слушать...

Однако не тут-то было - KDE сходу признался, что такого формата он не знает, и предложил подыскать под него предложение вручную. И тут я поймал себя на мысли, что еще не разу не слышал, как звучит MIDI в линуксе. Ни в одном дистрибутиве. Нет, попытки послушать его, конечно же, были, но что-то сразу не заладилось, а дальше срабатывал принцип "Не очень-то и хотелось"

Что же, теперь начал целенаправленно "подбирать" под него приложения из имеющейся коллекции плеерообразных программ:

  • AmaroK 1.4.8 - не ругается, усиленно делает вид, что пытается воспроизвести, но звука нет.
  • Adobe Flash Player 9 - уверенно загрузил midi-файл, но не выдав ни звука, на этом успокоился.
  • Kaffine 0.8.6 - сходу возмутился и поведал, что "не нашел расширения для обработки этого ресурса", попросту говоря - модуля для xine.
  • KMPlayer 0.10.0c - скромно отметил в строке статуса, что "Проигрыватель xine Not Running".
  • KPlayer был предельно краток: "Ошибка".

Ну и наконец, последняя надежда - KMid, мажорная версия 2.0. Кому уж, как не ему, воспроизводить его родные файлы?

И действительно - Kmid не стал отказываться от родного формата - молниеносно загрузил предложенный MIDI-файл и стал лихо воспроизводить его.
Даже более того - в своем окне он стал отображать текущий текст песни!

KMid в работе
KMid в работе

Т.е. - крутейшая програмка! И проблема всего одна - играть-то она играет, но звука нет :-P

В-общем, все имеющиеся под рукой плееры дружно опозорились. Возможно, стоило поискать к ним соответствующий модули, плагины и т.д.
С другой стороны, MIDI-формат не сегодня с дуба упал - это древнейший музыкальный формат со своей спецификой, как полезной - непревзойденной компактностью, так и не очень - возможность проигрывать только инструментальную музыку (человеческие голоса в нем не кодируются), а также зависимость тембра инструментов от конкретной звуковой платы с ее специфическими MIDI-банками, которые разработчики реализовывают как им заблагорассудится, поскольку единого стандарта на MIDI не существует. И пользователи в линукс вправе ожидать, что такой известный аудиоформат должен быть интегрирован в KDE-среду по умолчанию, как это сделано в нашей любимой Windows.

Забросил невод в Гугл. Но там не то что золотую рыбку не выудил, а и вовсе на этому тему оказалось довольно мало улова. Попадались, конечно, радикальные решения типа ARDOUR, но это же монстроидальные варианты, и устанавливать их ради одного MIDI было нелогичным.


И вот, пока я размышлял о превратностях MIDI в линуксе, ко мне в SIP вломился приятель. Узнав, на что сейчас я так нерентабельно трачу время, он сходу предложил воспользоваться штуковиной с неизвестным доселе названием Tmidity

Конечно, в репозитарии Мандривы, как в Греции, есть все Нашлась и Timidity в виде пакета TiMidity++ 2.13.2-23mdv2008.1.

И вот, итог

Проигрыватель MIDI-файлов Timidity
Проигрыватель MIDI-файлов Tmidity

Программа выглядит очень скромно, без наворотов. Еще более скромными оказались ее авторы - даже "About" о себе не оставили.

Но главное свое дело - проигрывание MIDI-файлов - Tmidity делает на ура!

Управляющие кнопки в панели управления плеером позволяют запускать, перематывать композицию, а также изменять темп её игры.

В мане программы выяснилось её японское происхождение и авторство, 2004-й год выпуска, однако сайт программы www.timidity.jp уже увы, не работает.

Ваша оценка: Ничего Средняя оценка: 9.2 (13 votes)
Shmel аватар

дааа... по ходу разработчики реально про этот формат забыли....

Добавлю теории.

Формат MIDI это просто набор нот для разных виртуальных инструментов.

В старину звуковые карточки содержали эти инструменты в себе,
а также MIDI процессор, который и превращал файл с нотами в
звук, используя эти "инструменты". MIDI процессор таких карт
представал в Линуксе как /dev/midi и /dev/sequencer

Но со временем (и ростом мощности CPU компьютера) производители
стали выкидывать (с целью упрощения и удешевления) MIDI процессор
из карточек. Теперь практически не встречается карточек с аппаратным
MIDI - вместо него используется программый эмулятор.

В Линуксе timidity и есть этот эмулятор. К нему можно скачивать разные
наборы инструментов - от некачественных и быстрых (единицы мегабайт),
до качественных и тормознутых (сотни мегабайт).

Timidity может работать в двух режимах - простой программы и
эмулятора. В первом случае его можно считать просто плеером и
конвертером в, например, wav формат, а во втором (сложном)
он притворяется аппаратной карточкой и в системе появляется
устройство /dev/midi, /dev/sequencer, которым могут уже пользоваться
вышеперечисленные программы, которые не удалось запустить.

King аватар

Спасибо за познавательную историю Собственно, остается один вопрос - почему разработчики Linux не включили в него такую же эмуляцию как базовую и стандартную?

Хотел бы поспорить с позицией об отсутствии стандарта MIDI. Сам стандарт изначально отнюдь не компьютерного происхождения, а железный, музыкальный, который главным образом представлял синтезаторы и ритм-машины. Тогда-то и был изобретён стандарт General Midi, а позже компанией Yamaha был активно применён в своих инструментах формат XG, который, к сожалению, уже не успел прижиться в развитых компьютерах не у музыкантов.

Честно говоря - мне это тоже не понятно...

У меня нормально играет миди файлы программа AmaroK. У вас у всех он не работет? Или это только единичные случаи?

У меня хорошо работает

У меня тоже проигрывает миди

спасибо. помогло.

Спасибо, помогло. Музыкант из меня совсем никакой, поэтому все что нужно - это иногда послушать mid-файлы. fluidsynth заставить работать не смог, а вот timidity сразу завелась. Теперь слушаю midi через audacious и его плагин. Правда гуевого timidity не нашел - у меня консольная версия, но это даже к лучшему.

synthesia-0.7.4 - кроссплатформенная штучка

Немного специфическая программа, но миди воспроизводит, со своим набором инструментов
http://www.myriad-online.com/cgi-bin/download.pl?prod=HA&lang=EN

Автору огромное спасибо, только Тимидити смог заставить мой Линукс Минт играть мидяшный звук!

Доброго дня! Я занимаюсь музыкой и это был самый первый формат, который мне нужен был в линукс МР3 все понятно они и так будут работать. Как добился я очень качественного звучания миди в линуксе.
1. Необходимо поставить синтезатор Qsynth он есть в репозиториях - это нужно для того чтобы такие программы как например Band in box и ему подобные заиграли в линуксе, как говорил автор выше они молчат.
2. Вышеупомянутая программа позволяет в своих настройках загружать музыкальные библиотеки - файлы с расширением ***.SF2 т.е. меняя банк звуков мы получаем уже совершенноо другой синтезатор. Этих банков по интернету валяется очень много. Один из них идет уже в программе.
3. Также хочу обратить ваше внимание на такую программку как Audacius она тоже есть в стандартном репозитории - это плеер типа AIMP в винде, который также как и AIMP позволяет подключать файлы с расширением ***.SF2 для проигрывания файлов в стандарте миди.

На самом деле, разработчики не забыли про формат midi и все плееры, которые не выдали ошибок и стали его проигрывать - реально способны его проигрывать.

Просто надо знать, что чтобы формат midi зазвучал в linux нужно установить на него какой либо миди-сервер и сэмлы или саундфонты. Один из таких серверов - то самое timidity.

Чтобы его запустить как сервер можно воспользоваться командой:
timidity -iA -B2,8 -Os1l -s 44100

После этого будут работать все программы, воспроизводящие миди звук.

При этом еще и ядро должно быть сконфигурировано специальным образом. Но в убунту студио мне не потребовалось подключать никаких дополнительных модулей ядра.

Для проигрывания миди звука должны быть установлены хотя бы сэмплы, такие как freepats, которые обычно включаются в репозитории. Но это не самый лучший вариант по качеству звучания.

Подробнее здесь https://help.ubuntu.com/community/Midi/SoftwareSynthesisHowTo

RSS-материал