MIDI
File Interpretation

Introduction
MIDI files consist of three types of data: (1) MIDI events,
(2) timing information, and (3) file structure information (file header and
track headers). Your task in this mini-project is to decode (interpret) a MIDI
file by examining the individual bytes of the file.
Part 1
Determine the following information for this
MIDI file listing:
-
File
format (Type 0, 1, or 2)
-
Number of
tracks
-
Number of
ticks per quarter note
-
Shortest
non-zero delta time, reported both in ticks and in microseconds (hint: the timing
information you need here is derived from information in two distinct places)
-
Top two longest
delta times, both in ticks and in microseconds
Part 2
Interpret each part of the file. Use a tabular format like
this:
Byte Number Description
1 – 4 Header chunk ID
5 – 8 Header chunk length = 6 bytes
etc.
Demonstrate that you understand variable-length format by
decoding several of the delta times in detail. You do not need to decode all the
delta times, just indicate their byte numbers.