XG MIDI формат файла - PullRequest
       19

XG MIDI формат файла

5 голосов
/ 21 апреля 2009

У меня есть гитара Yamaha MIDI, которая, когда я играю MIDI-файл, кодированный с использованием стандарта XG MIDI, вызывает включение и выключение определенных ламп на гитаре. Я пытаюсь определить событие MIDI, которое вызывает это, чтобы я мог программно отправить одно и то же событие без использования файла MIDI (таким же образом я могу отправить команду Note On (144) или Note Off (128)).

Однако, несмотря на то, что мне удалось найти копию протокола MIDI, я не смог найти протокол XG MIDI. Есть ли способ, помимо попытки отправить все возможные команды на устройство, пока я не найду соответствующую команду, чтобы определить, что такое MIDI-событие, которое вызывает изменение состояния индикаторов? Или я где-нибудь могу получить копию протокола XG MIDI?

Ответы [ 6 ]

4 голосов
/ 18 октября 2011

Две вещи:

  1. XG - это семантическое расширение протокола MIDI. Это ничего не меняет в структуре файла MIDI. Единственное, что если вы используете XG-совместимый инструмент для записи, скажем, изменений резонанса фильтра, это вызовет тот же эффект на любом другом инструменте XG. Но на уровне прокотола MIDI у вас все еще будет сообщение CC (Control Change) # 71 (IIRC).

  2. Протокол MIDI очень расширяем и оставляет много места для производителей. Вы можете использовать не только сообщения CC, но также номера зарегистрированных параметров (RPN) и NRPN (незарегистрированные). Кроме того, у вас есть сообщения System Exclusive (SysEx), и я бы поспорил, что должным образом созданное сообщение SysEx может изменить свет на гитаре. Попробуйте получить так называемый «Список данных» для вашего инструмента, он должен включать всю информацию о MIDI-сообщениях, которые отправляются / принимаются вашей гитарой.

4 голосов
/ 01 сентября 2009

Руководства Yamaha для своих продуктов содержат подробную информацию, которую вы ищете. Команды XG зависят от устройства. Некоторые команды XG предоставляют прямой доступ к памяти устройства, а мое руководство по тон-генератору MU2000 предупреждает, что «вы можете повредить устройство, отправив неверные данные»

3 голосов
/ 26 июля 2009

Википедия : "В 1999 году официальный стандарт GM [General MIDI] был обновлен, чтобы включить больше контроллеров, патчей, RPN и сообщений SysEx, чтобы попытаться примирить конфликтующие и патентованные дополнения Roland GS и Yamaha XG ». Это называлось General MIDI 2 .

Я рекомендую посмотреть, что может предложить Java ( javax.sound.midi ) (в C #, похоже, отсутствует солидная библиотека MIDI). Читайте о MetaMessage , ShortMessage , SysexMessage и Patch . Насколько я понимаю, специальные системные сообщения отправляются через SysexMessage (данные освещения могут быть здесь).

Если вам нужен пример кода, посмотрите Java Sound Resources .

Другие ссылки, которые я нашел:

1 голос
/ 18 февраля 2010

Я использую миди-инструментарий codeproject Лесли Санфорда для общения с гитарой. http://www.codeproject.com/KB/audio-video/MIDIToolkit.aspx

Все, что вам нужно знать о связи с гитарами, приведено в руководстве на одной странице сзади.

Вот видео редактора, который я построил - он показывает полную связь с гитарой.

Видео гитарной программы на YouTube

1 голос
/ 18 февраля 2010

Для управляемого .NET Midi Library ищите C # Midi Toolkit на codeproject.com.

0 голосов
/ 23 августа 2016

В конечном счете, вам нужно найти эту информацию от производителя. Вероятно, это сообщение sysex, хотя это может быть и контроллер.

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

Пролистайте заднюю часть ваших руководств. Это может быть там. Если нет, поищите в Google sysex для вашего устройства. В противном случае вам нужно будет попросить у Yamaha информацию.

...