Играть в MIDI на клиенте через Интернет? - PullRequest
3 голосов
/ 21 июня 2010

Я прочитал этот пост, который объясняет, как играть в MIDI. Мне нужно сделать веб-приложение, которое воспроизводит MIDI-секвенции по запросу пользователей. Как это сделать? Должен ли я просто создать проигрыватель Silverlight, который воспроизводит MIDI-файл? Так как же мне перенести файл в плеер? Или, может быть, есть способ взаимодействия с системой MIDI клиента.

ПРИМЕЧАНИЕ: мне нужно создать MIDI-последовательности, это не готовые файлы с моего сервера (или они должны быть созданы первыми).

Любые подходы будут приветствоваться.

1 Ответ

2 голосов
/ 21 июня 2010

Во-первых, следует четко указать, что MIDI-файлы сами по себе не "воспроизводятся" так же, как MP3.В MIDI-файле нет настоящей музыки;вместо этого они просто содержат ноты, которые должны воспроизводиться на синтезированном музыкальном инструменте.

Я не уверен, есть ли в Silverlight встроенный синтезатор MIDI (как в QuickTime, если перетащить поверх него файл MIDI).), и немного быстрого поиска в Google , кажется, подтверждает эту гипотезу .

Так что, если вы собираетесь упорядочить произвольные MIDI-данные и не имеете возможности сначала преобразовать их в MP3, то вы должны генерировать звук на стороне сервера.Если у вас есть доступ к бэкэнд-серверу .NET, вы можете использовать VST.NET framework для создания хоста VST, отправки MIDI через инструмент и сжатия результирующего аудиовыхода в MP3.Если вы работаете с Java, то вы можете использовать jVSTwRapper , похожую библиотеку.

В худшем случае вы можете склеить что-нибудь вместе с C / C ++, чтобы загрузить плагин VST, которыйобработает ваш звук.Затем он может быть запущен как внешний процесс с помощью любой серверной технологии, которую вы используете.

Но во всех этих подходах стратегия в основном одинакова:

  1. Получить файл MIDIот пользователя и отправьте его на сервер.
  2. Откройте VST плагин , который будет обрабатывать звук.
  3. Анализировать события в MIDI-файле, отправляя блоки с плавающей точкойнаправьте данные на плагин с соответствующими MIDI-сообщениями.
  4. Возьмите выходные данные из плагина и сохраните их где-нибудь на диске.
  5. После того, как все это будет сделано, возьмите выходные данные и преобразуйте их изraw PCM в MP3 (или что-то еще) через LAME или другую систему кодирования.
  6. Отправьте этот файл обратно пользователю.

Обратите внимание, что шаг 3вероятно, самый сложный в этом процессе.В Интернете есть множество руководств о , как сделать собственный VST-хост , включая тот, который я написал.;)

...