Старый поток, но я только недавно начал изучать это.
Я посмотрел на приложение Python, которое написал Деверт.Интересно, что оказывается, что данные, которые излучает Nocturn, на самом деле являются MIDI, хотя они не регистрируются в качестве устройства USB MIDI.сообщения об изменении управления (значение контроллера 0xB0) для всего.Кроме того, команды управления, которые отправляются на него, также являются сообщениями об изменении управления, хотя и только байтами данных, поскольку Nocturn, кажется, поддерживает состояние выполнения MIDI (т.е. при отправке нескольких сообщений об изменении управления не требуется повторять байт данных).
Действительно, глядя на магические данные инициализации, это на самом деле просто набор управляющих изменений: он начинается с 0xb0, а оттуда данные поступают в два раза.Например, последние два байта в строке инициализации - 0x7f 0x00, которые просто выключают светодиод для крайней правой кнопки вперед.(В результате отправки инициализации происходит что-то неуловимое, поскольку Nocturn иногда испускает некоторые сообщения, которые представляются в виде событий тайм-аута, и это поведение меняется в зависимости от того, отправлена строка инициализации или нет.)
Использование сообщений, подобных MIDI, имеет смысл, поскольку Novation хорошо знает протокол MIDI, поэтому им будет проще использовать его для связи, даже если устройство не является строго MIDI-устройством.
Обратите внимание, что инкременторы просто отправляют значения 1 или 127, то есть шаг +1 или -1, поэтому даже с некоторыми программами тривиального отображения это не очень полезно, как есть.(На самом деле, если повернуть быстро, можно получить 3 или 125, например, с 125, соответствующим -3.) Единственный контроллер, который отправляет непрерывное значение, - это ползунок, который при перемещении выдает 8-битное значение.