Trying to determine what is causing a specific MIDI file to misbehave in my program (type 0).
I ran it through test-midi-files before and after I modified it.
The before file has a ton of errors as such:
WARNING: offset 88 track 1 tick 0 -- Bad MIDI value (255)
WARNING: offset 4049 track 1 tick 1915 -- Bad MIDI value (255)
WARNING: offset 4185 track 1 tick 1935 -- Bad MIDI value (255)
...
After modifying, it also now has some of these:
WARNING: offset 71602 track 1 tick 3753082 -- Long VLQ value (128/255/20)
WARNING: offset 71607 track 1 tick 3753082 -- Bad MIDI value (129)
WARNING: offset 72126 track 1 tick 4577392 -- Long VLQ value (128/255/20)
WARNING: offset 72131 track 1 tick 4577392 -- Bad MIDI value (153)
...
WARNING: offset 249287 track 1 tick 295710527 -- Incomplete track data (1)
So, just curious, are all midi CC values restricted to 0-127 unless it has a CC MSB and LSB?
I'm having a hard time tracking down exactly where these errors are in an event viewer. Sekaiju does not list any tick or byte offsets.
I have another program simply called MIDIEE (MIDI Event Editor) which will not open the file and gives the error
"Event with a parameter >= 128"
I can go to the locations in a hex editor, and see, for example, the first one is "00 80 FF 14" which is a note off on a non-existent instrument.
[UPDATE BEFORE I EVEN FINISHED POSTING]
Well, update, I'll post this anyway for the CC value question, but the problem is the program that generated this MIDI file has some flaws, and every one of those bad MIDI values is the same "80 FF 14" in tons of spots throughout the file. Because it is a note off event, my program never touches it unless it is on a percussion channel. Therefore, I will continue to test out other files, and chalk these issues up to a bad test file. If I run this file through Anvil Studio's "repair" option, it converts it to a type 1 file and fixes it, and there are no errors afterwards.