2016-12-26 1 views
2

У меня есть эти 3 события в Midi файл:Midi гекса-код Notation Different в одном тьфу

00 FF 51 03 0E 15 C3 86 A6 

20 FF 51 03 15 20 A5 83 

5C FF 51 03 0E 15 C3 

Но что, в данном случае, важно, что FF 51 стенды для темпа изменения и 03 для числа следующих байт-пар, описывающих темп. Так как это «3 байтовых пары» в каждом случае Почему существуют 5 байтовых пар, описывающих первое событие, 4 - описание второго и 3 - описание третьего? (Я надеюсь, что изображение помогает)

Как программа кодирования знает, когда начинается новое событие? Файл можно воспроизводить без каких-либо проблем.

enter image description here

ответ

3

Все три события имеют три байта данных.

Дельта-времена между событиями кодируются как величины переменной длины, поэтому вы должны продолжать читать байты до тех пор, пока самый старший бит не станет ясным. Три раза перед каждым событием: 00, 86 A6 20 и 83 5C, что приводит к декодированным временам дельта 0, 109344 и 476.

+0

О, это то, о чем я пропустил. Спасибо, мой друг, и я желаю вам приятных праздников! – user3520616

Смежные вопросы