Я пытаюсь написать MIDI-парсер, но я достигаю события MIDI, которое не задокументировано в официальной документации (а именно http://www.midi.org/techspecs/midimessages.php).Что такое MIDI-событие 0x43?
В одном из файлов MIDI, которые у меня есть, я заметил, что сразу после события с записью 81 70 90 3c 00
я получаю следующие байты: 00 43 1e
. Тем не менее, я не видел никакой документации о 0x43
, выступающей в качестве идентификатора события MIDI. Как следует интерпретировать 0x43
, и где я могу найти дополнительную информацию об этом?
Редактирование: MIDI является интерпретируемым, потому что я загрузил его в Logic Pro без проблем. Кроме того, моя интерпретация до 0x43
была точной.
Способ работы MIDI состоит в том, что у них есть хотя бы один байт дельта-времени, чтобы сообщить интерпретатору, сколько времени он должен ждать после предыдущего события, прежде чем действовать на MIDI-событие (подробнее см. Http: // www. ccarh.org/courses/253/handout/vlv/). В этом случае '81 70' является дельта-временем, а фактический идентификатор события начинается с байта' 0x90', который является примечанием, а затем следует байт '0x3c', который говорит мне включить примечание C4 и, наконец, '0x00', который равен нулю (эти два байта эквивалентны вычитанию). –
Это также соответствует ожидаемым нотам на MIDI. –
UPDATE: Я предположил, что это нестандартное MIDI-событие на самом деле является просто неявной записью для примечания, которая в этом случае является '0x43' AKA G4, при томе' 0x1e'. Я изменил свой код, чтобы приспособиться к этому, и теперь, похоже, он правильно разобрался, поэтому я предполагаю, что это фактический случай. Теперь мне интересно, как это взаимодействие работает с нотами с битами, которые дополняют стандартные идентификаторы событий MIDI. –