Вопрос

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

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

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

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

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

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

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

Это было полезно?

Решение

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

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

Другие советы

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

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

Нашел следующее (перевод с итальянского).Я бы сказал, что 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=

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top