Я пытаюсь реализовать работу с MIDI-устройствами в C #. В настоящее время я реализую отправку сообщений через устройство вывода. Я вижу, что есть MidiOutProc для него. Я передаю соответствующий обратный вызов в методе midiOutOpen . Проблема в том, что обратный вызов не выполняется, когда я отправляю сообщение через устройство (отправка в порядке, я вижу, что данные были переданы через виртуальный порт MIDI, на котором я тестирую API). Должен ли я попасть в этот обратный вызов при отправке сообщения? Когда я открываю устройство, я попадаю в функцию обратного вызова с сообщением MOM_OPEN
, поэтому обратный вызов подключается правильно.
Я отправляю сообщения через функцию midiOutShortMsg .
Обновлено:
Похоже, что для устройства вывода обратный вызов с сообщением будет выполняться только с MOM_DONE
. Из документации по этому типу сообщения:
Сообщение MOM_DONE отправляется функции обратного вызова MIDI-выхода, когда указанный системный или потоковый буфер был воспроизведен и возвращается в приложение.
Таким образом, кажется, что обратный вызов не выполняется для сообщений канала, таких как Примечание Вкл. , отправленных через midiOutShortMsg
. Это так?