См. раздел "Встраивание музыки" в этом сообщении блога Джона Ресига. (По какой-то причине игра Mario, на которую ссылается Ресиг, воспроизводит звук в Firefox, но не в Chrome или Safari; стоило бы выяснить, почему).
Идея заключается в том, что вы используете data URI для встраивания base64 закодированной версии ваших данных в сам HTML-файл. Таким образом, вы можете написать Javascript для непрерывной генерации данных в формате MIDI, затем закодировать их в base64, а затем внедрить их в HTML5 элемент
если html5 является опцией, вы можете попробовать генерировать события osc с помощью websockets и преобразовывать их в midi сигналы с помощью серверного прокси.
Чего я не знаю, так это достаточно ли стабильны таймеры в javascript для генерации точных таймингов.
Я считаю, что ваш лучший вариант на данный момент - связаться из вашего HTML-приложения через xhr или веб-сокеты с серверной системой, работающей на вашем сервере, которая может выполнять фактический перевод в события midi. Вы можете обнаружить, что один из многих серверов комет, которые уже доступны, может облегчить эту часть вашей жизни, однако для многих приложений midi требуется относительно низкая задержка, и вам будет сложно снизить методы комет намного ниже 100 мс.