Отправка MIDI-сообщений на веб-странице - PullRequest
2 голосов
/ 30 мая 2009

Как я могу играть отдельные ноты MIDI на веб-странице?

Я знаю два способа сделать это:

  1. Запись элемента управления ActiveX. Тогда это работает только на Windows. Раньше я писал элементы управления ActiveX, но сейчас никто не любит их устанавливать.

  2. Написать Java-апплет. Это нормально, если у пользователя уже установлена ​​Java, но многие пользователи отключают апплеты. Я так и сделал, и вы можете увидеть результат на newfweiler.com - если это сработает на вашей конкретной установке. Вам понадобится хотя бы Java 5, хотя я полагаю, что я мог бы переписать ее в Java 1.2, если бы мне пришлось. «Real Time Sequencer» и «Java Sound Synthesizer» не работают для меня; Я думаю, что вы должны установить wavetables или что-то, чтобы они работали.

У большинства пользователей установлен Flash, но я посмотрел документацию по Flash и Flex и не увидел ничего эквивалентного javax.sound.midi.

Существует несколько способов воспроизведения MIDI-файла на веб-странице, и вы можете найти «Javascript Pianos», которые воспроизводят MIDI-файл из одной ноты при каждом нажатии клавиши. Вы не можете играть несколько нот одновременно или удерживать клавишу в течение длинной ноты.

То, что я пытаюсь сделать, является эквивалентом javax.sound.midi.Receiver.send (midiMsg, -1), используя только то, что большинство людей обычно устанавливают на машину.

Ответы [ 3 ]

1 голос
/ 28 сентября 2018

Используйте Web Audio API для воспроизведения звуков и .mid-файлов. Смотрите пример MIDI-плеера на https://surikov.github.io/webaudiofont/examples/midiplayer.html

Используйте Web MIDI API (Chrome поддерживает его) для прослушивания MIDI-клавиатуры. Смотрите пример на https://surikov.github.io/webaudiofont/examples/midikey.html

1 голос
/ 30 мая 2009

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

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

0 голосов
/ 30 мая 2009

Нашел следующее (перевод с итальянского). Я бы сказал, что Flash - это путь. Если вы хотите стать гетто, вы можете просто взять около 88 сэмплов для фортепиано и сыграть их на временной шкале.

http://translate.google.com/translate?prev=hp&hl=en&js=n&u=http%3A%2F%2Fflash.html.it%2Fguide%2Flezione%2F2936%2Fmidi-player%2F&sl=it&tl=en&history_state0=

...