Кроссбраузерный способ воспроизвести MIDI на веб странице
Для одного проекта мне понадобилось воспроизводить midi-файлы на странице. Естественно работать это должно на большинстве браузеров (ну ие6 я уже не учитываю). Но, насколько я понял, либо нужен плагин QuickTime, который есть далеко не на каждой машине, либо Flash, который судя по тому, что рассказал мне гугл, с midi работать не умеет, либо тег audio, который далеко не везде реализован и в FF, например, с midi тоже не дружит.
В общем я удивлён. Формат старый, активно используется (в кругах музыкантов), а с поддержкой туго. Есть у кого-нибудь варианты, как воткнуть воспроизведение midi на страницу?
Да, я это пробовал (FF и Opera под Linux). Не завелось. Мне скромно предложили скачать QuickTime. Или это только в линуксе такая беда, а в винде всё встроено?
MIDI это не формат, это интерфейс для передачи данных. MIDI есть далеко не во всех звуковых картах. И если только MIDI контент не будет формироваться как-то рандомно, либо онлайн, то как минимум нужно отрендерить эти, ваши, мидишные мелодии в WAV. Это можно сделать любым миди-редактором, либо секвенсором. Например, тем же FL Studio.
На счёт воспроизведения МИДИ ничего не скажу 100%, но повторюсь, что например у меня стоит внешняя проф.карта БЕЗ миди. И соотв. мой ПК не умеет воспроизводить МИДИ аппаратно.
Ок, поправлюсь. Формат файла SMF, расширение .mid, .midi.
Так понятно?
Программный midi-синтезатор, который воспроизводит эти файлы, в винде, например, стоит по дефолту, в линуксе ставится в два клика. Про аппаратное произведение никто ничего не говорил.
«В отличие от других форматов это не оцифрованный звук, а наборы команд (проигрываемые ноты, ссылки на проигрываемые инструменты, значения изменяемых параметров звука), которые могут воспроизводиться по-разному в зависимости от устройства воспроизведения.» — Как бы минусовать можно вусмерть, но факт есть факт. Потому и популярен этот формат у музыкантов, потому что это просто команды, а в 99% это просто ноты.
«Файлы MIDI являются набором команд для синтезатора (секвенсора), установленного на компьютере, но не несут в себе готовых для воспроизведения аудиоданных.» — чтобы совсем стало ясно.
Как же тогда midi-файлы на компьютере со встроенными звуковушками воспроизводятся? =)
Учите матчасть. Да, миди — это интерфейс, по которому передаются сообщения вроде «установить на канал 3 инструмент 10. взять ноту до первой октавы. отпустить ноту до.» и т.д. Но эти же сообщения прекрасно сохраняются в файл, из которого потом отправляются на программный синтезатор, который читает данные из файла, а не по аппаратному MIDI-интерфейсу. И файлы эти раньше были единственным способом музыку воспроизводить, забыли уже .mid файлы для старых нокий, например. а в 3310, так вообще редактор был. А сейчас эти же файлы также часто используются, но уже при создании музыки. В том же FL в Piano Roll нажмите File и увидите строчку Import MIDI File. И работает этот импорт без аппаратной поддержки миди.
ФЛ Студио это сексвенсор, он много чего умеет софтово :) я сказал, что браузер 100% не может такое воспроизвести, т.к. софтового способа, я уверен, нет (тем более кроссбраузерного), а аппаратно нужен МИДИ-синт у звуковой.
Вообще вы так лихо минусуете не разобравшись в сути. А по большому счёту зачем вам МИДИ??? Он генерируется он-лайн или тупо лень конвертить?
Ну я как бы в курсе, что такое MIDI. Более того, я изучал спецификации формата, т.к. нужно было партитуры генерировать на основе файла. Но выше я уже писал, что синтезаторы на 99% компьютеров стоят. Соответственно и воспроизводиться это будет на 99% компьютеров. Профит?
Чорт, я забыл про директХ. Там есть софтовый синт. Но опять-таки, например, на моей карте в dxdiag.exe нет теста миди-интерфейса. Просто вы начали писать, мол КТ не катит, Флеш тоже, хтмл5 тем более, я и подумал, что ищите нативный способ. А вы в минусы сразу. Странный народ.
Минусую потому как есть миди-файлы — это факт, они воспроизводятся на 99% компьютеров — это факт, а вы мне начинаете рассказывать про их строение.
Да, генерация происходит онлайн. И нагружать сервер конвертированием midi -> mp3 совсем не хочется, когда у клиента можно и midi воспроизвести.
С браузерами вся проблема в том, что с воспроизведением аудио у них в принципе проблемы, используются плагины, QuickTime, например. Если в системе плагина нет, то браузер аудио не прочитает. До введения тега audio в браузерах не было встроенных плееров. Но при всём при этом целятся, естественно на mp3, ogg, wav. Было желание использовать flash, но он как раз ни сам синтезатора не имеет, ни системным пользоваться не может, поэтому отпадает. Вот и получается, что единого кроссбраузерного решения я пока не нашёл.
К слову сказать, в опере при помощи тега audio я midi-файл воспроизвести смог.
встроенный кодек: виден программный Microsoft GW Wavetable Synthesizer.
Creative Audigy: видны ещё и аппаратные синтезаторы звуковой карты
Звуковая карта за 150 рублей Genius Soundmaker PCI: виден программный от Microsoft и примитивный, но встроенный на звуковую карту Genius FM Synthesizer
В винде не помню, вроде без директ икса всё работало. Насколько я понял, через «Программный звуковой синтезатор». По крайней мере windows media player воспроизводит .midi файлы.
В линуксе Timidity поставил и тоже звук появился.
Тесты не смотрел. Сейчас под линуксом сижу, там dx отсутствует.
Понятно. Ну у меня на проф.карте не видно вообще этого теста. До этого, конечно, была Креатив Лайв — там всё было. На кодеках встроенных не сидел. Отстал от жизни, но в любом случае ТС изначально не устраивал QT, а теперь это «правильный ответ». Как-то не логично. Ну рад, что он нашёл своё решение.
Логика в том, что под виндой и маками, как оказалось, всё работает. В маках QT — по дефолту, винду я ещё посмотрю на днях, возможно там другой плагин, но тоже встроенный. В линуксе проблемы, но 1% компьютеров в общем, а музыкантов среди них и того меньше. Моя ситуация позволяет ими пожертвовать, тем более, что сейчас займусь исследованиями на тему подходящего плагина, у самого линукс.
Из двух зол, как говорится…
Минус за комментарий компенсировал плюсом в карму. Хотя всё же коммент был не по теме ;)
Коммент был по теме как раз, т.к. я думал, что нужно нативное решение. В итоге я плохой, играется софтово, играет квиктайм и проблема решена. Позже, конечно, я подошёл с грубой музыкальной точки зрения, да и забыл про софтовые синты в DX ну и аналогах, наверное, в других ОС.
Есть midi как протокол, а есть general midi — соглашение о стандартных инструментах, которое поддерживают большинство синтезаторов от встроенных звуковух до рабочих станций за пару тысяч долларов. Звуковушки, или софтовый синтезатор microsoft кушают *.mid файлы с подобной информацией.