Я использую Mido
для python, работаю над синтаксическим анализом файлов midi в <start_time, duration, program, pitch>
кортежах и столкнулся с некоторыми проблемами.
В некоторых файлах, которые я анализирую, несколько note_on
приводят к появлению заметок наодин и тот же шаг и одна и та же программа, открываемая более одного раза.
В некоторых файлах содержится несколько note_off
, что приводит к попытке закрыть заметки, которые больше не включены из-за того, что были закрыты ранее (при условии, что может быть включена только одна заметка в той же программе и та же высота).
Некоторые дорожки не имеют program_change
в начале дорожки (или, что еще хуже, даже не имея таковой во всей дорожке).
Некоторые файлы содержат более одной дорожки, содержащей сообщения set_tempo
.
Что я должен делать в каждом из этих случаев, чтобы получить правильную интерпретацию?