Каков наилучший способ программирования MIDI для Windows? - PullRequest
0 голосов
/ 06 апреля 2010

Я хочу написать небольшую программу, которая получает входные данные от внешнего устройства и затем отправляет MIDI-сигналы в любое MIDI-совместимое программное обеспечение. Каков наилучший способ, с точки зрения MIDI, пойти на это? Есть ли какие-то конкретные библиотеки, в которые я должен обратиться?

Спасибо.

Ответы [ 2 ]

2 голосов
/ 08 апреля 2010

PortMidi! http://portmedia.sourceforge.net/

Он прост в использовании, приведены примеры для Windows.

0 голосов
/ 02 октября 2012

Протокол MIDI довольно прост, большинство API MIDI предлагают манипулирование с событиями MIDI и их параметрами. Отличается способ перечисления и открытия MIDI-устройств.

Правильный ответ зависит от ваших требований.

  • Какой вход с какого внешнего устройства вы будете использовать? Будет ли это другое MIDI-устройство, мышь, клавиатура или что-то, что позволит анализировать события ввода? Или вам понадобится аппаратный доступ низкого уровня? Это может повлиять на выбор языка программирования, если Java, C ++ или что-то другое, и, следовательно, выбор библиотеки.
  • Какой язык программирования вы предпочитаете? C ++, Java ... Если вы планируете разрабатывать на Java, вы можете сделать это с помощью API, предоставляемого JDK.
  • Должна ли программа быть мультиплатформенной? Если это необходимо, и вы планируете разрабатывать на C ++, вам следует использовать мультиплатформенную библиотеку MIDI, например, http://portmedia.sourceforge.net/, упомянутую darasan, или https://github.com/jdkoftinoff/jdksmidi В противном случае вы можете просто придерживаться API собственной платформы (Windows API, ALSA, не уверен насчет Mac).
  • Планируете ли вы использовать какое-то конкретное MIDI-устройство? Возможно, есть библиотека, которая обеспечивает легкий доступ к некоторым функциям устройства через MIDI, с которыми вам придется работать самостоятельно (например, некоторые предопределенные данные SysEx)

С большим количеством вопросов можно рекомендовать больше библиотек (или меньше библиотек).

...