Я хочу писать программы на C / C++, которые принимают входные данные с MIDI-устройства.
MIDI-устройство подключается к моему компьютеру через разъем USB.
Я ищу (реализованную на C / C++) библиотеку, которую я могу использовать для чтения MIDI-сигналов с MIDI-устройства через порт USB.
Я счастлив манипулировать данными MIDI, как только я их получаю, я просто не хочу реализовывать код для их захвата.
Я планирую написать свой код с помощью IDE Bloodshed Dev-C++ в Windows XP.





Ознакомьтесь с проектом с открытым исходным кодом LMMS. Это музыкальная студия для Linux, которая позволяет использовать MIDI-клавиатуры с программными инструментами. Если вы покопаетесь в исходные файлы с «midi» в названии, вы, вероятно, найдете то, что ищете.
Возможно, исходный код Джек тоже может помочь. Это звуковой драйвер для Posix-совместимых систем с множеством возможностей и поддерживает аудиоустройства USB и Firewire.
ПортМиди - еще одна кроссплатформенная библиотека ввода-вывода MIDI с открытым исходным кодом, которую стоит проверить. С другой стороны, если вы работаете с приложением типа sysex, то Direct Win32 работает достаточно легко.
Только что наткнулся на другой кроссплатформенный фреймворк с открытым исходным кодом, который включает поддержку MIDI: Juce.
Также я должен отметить, что в MIDI-устройстве, подключенном через USB, нет ничего особенного. Он по-прежнему будет представлен как MIDI-устройство в Windows, и вы будете использовать стандартные MIDI-интерфейсы API (mmsystem) для связи с ним.
[Июль 2014] Я только что наткнулся на RtMidi, который выглядит красивой, компактной кроссплатформенной библиотекой C++ с открытым исходным кодом.
@MiPo Где ты это видишь? Похоже на кроссплатформенный C без каких-либо зависимостей от Java.
Только что посмотрел на PortMidi, нужен Java SDK, нет