У меня есть файл midi, который был создан с использованием MuseScore. Он хорошо воспроизводится в проигрывателе Windows Media, но приводит к сбою моей программы чтения миди. Я использовал следующие ссылки, чтобы помочь мне: MIDI specification и Mobilefish MIDI Guide, второй в первую очередь.Ошибка чтения MIDI-файлов в программу
4d 54 68 64 = MThd
00 00 00 06 = Header length of 6
00 01 = Track format 1
00 02 = two tracks
01 e0 = 480 delta-ticks per quarter note
4d 54 72 6b = MTrk
00 00 00 86 = length of 0x86
00 ff 58 04 04 02 18 08 = time signature
00 ff 59 02 00 00 = key signature
00 c0 00 = program change (channel 1)
02 b0 07 64 = control mode change (channel 1)
02 0a = running status
40 02 = running status
5b 1e = running status
02 5d = running status
1e ac 78 90 = Aftertouch event (channel 13, not really applicable in this context)
3e 50 = running status
83 5f 3e = delta time (83 5f) and 3e, which is not a status byte
(more bytes for context): 00 01 40 50
Что существует в стандарте MIDI, который я упустил здесь?
Это ваша собственная программа чтения миди? И вы ожидаете, что мы будем более способными, чем ваша программа, только поставляя входные данные, чтобы выяснить, что пошло не так в вашей программе? Мне льстит ваша уверенность ... – rene
@rene Да, это мое. Какой вклад я должен добавить, чтобы сделать это сообщество более способным, чем моя программа? Я могу сказать, что я слежу за этим: [Спецификация MIDI] (http://www.oktopus.hu/imgs/MANAGED/Hangtechnikai_tudastar/The_MIDI_Specification.pdf), но эта ссылка может быть как раз проблемой (потому что это может быть неполный). И да, я уверен, что считаю, что сообщество сотен тысяч знает ответ. – glaba
Я только что понял, что это может быть состояние запуска. Состояние выполнения имеет дельта-времена? И если да, то требуется ли иметь дельта-время, предшествующее байтам данных? – glaba