Open main menu

Difference between revisions of "User:Buddha^/GSoC2007-ProjectDiary"

Added more comments about non-standard Apple IIGS AGI MIDI files.
(Added possible explanation for the broken Apple IIGS AGI MIDI files.)
(Added more comments about non-standard Apple IIGS AGI MIDI files.)
Line 1,288: Line 1,288:
which *can* be >= 0x80! Investigating... (If this is so then it's a non-standard
which *can* be >= 0x80! Investigating... (If this is so then it's a non-standard
behaviour for a MIDI file)
behaviour for a MIDI file)
Update! Okay, so it seems these MIDI files don't use variable length quantities
for delta-time. Delta-time is always one single byte even if it might be >= 0x80.
But! That delta-time byte also acts as a shorthand for commands like 0xFC
(Stop sequence) or 0xF8 (Timer sync).
So let's read a single byte from the stream. If it's 0xFC it stops the
sequence right there. If it's 0xF8 we can probably just jump over it as we
probably don't need it. Otherwise you use the byte's value as a delta-time
and then you read the command byte, parameters etc normally (Running status
is also used). At least this is my current theory based on experiments with
a Python program I wrote for parsing these MIDI files.
417

edits