<< Chapter < Page Chapter >> Page >

A chunk begins with the chunk type , a four-byte string whose value is either MThd for a header chunk or MTrk for a track chunk. The chunk length follows this string, and indicates the number of bytes remaining in the chunk. The chunk length is a 32-bit unsigned integer in big-endian format, i.e., the most-significant byte is first.

Header chunk

The header chunk begins with the string MThd , and is followed by a fixed chunk length value of 6; as a 32-bit unsigned integer this is 0x00_00_00_06.

The file type follows, and is a 16-bit unsigned integer that takes on one of three possible values: 0 (0x00_00) indicates single track data, 1 (0x00_01) indicates multi-track data which is vertically synchronous (i.e., they are parts of the same song), and 2 (0x00_02) indicates multi-track data with no implied timing relationship between tracks. Type 1 is by far the most common, where each track contains MIDI messages on a single channel. In this way tracks can be associated with a single instrument and recorded individually

Next is the number of tracks , a 16-bit unsigned integer. The number of tracks can range from one (0x00_01) to 65,535 (0xFF_FF). In practice the number of tracks is typically about 20 or so.

The last value in the header chunk is the division , a 16-bit unsigned integer that indicates the number of ticks per quarter note . The tick is a dimensionless unit of time, and is the smallest grain of time used to indicate the interval between events. A typical value of division is 120 (0x00_78).

Track chunk

The track chunk begins with the string MTrk , and is followed by the track length , a 32-bit unsigned integer that indicates the number of bytes remaining in the track. In theory a track could be as long as 4 Gbytes!

The remainder of the track is composed of pairs of delta-times and events. A delta-time is in units of tics, and indicates the time interval between events. An event is either a MIDI message or a meta-event . Meta-events are unique to the standard MIDI file, and indicate information such as track name, tempo, copyright notice, lyric text, and so on.

A delta time uses variable-length format ( VLF ), and can be anywhere from one to four bytes in length. Short delta times require only one byte, and long delta times can require up to four bytes. Since short delta times tend to dominate the standard MIDI file (think of a chord hit that generates a burst of Note-On messages with very little time between events), most of the delta times are only one byte long and the overall file size is thus minimized. However, since very long delta times must be accommodated as well, the variable-length format can use up to four bytes to represent very long time intervals.

Variable-length format

Variable-length format ( VLF ) is used to represent delta times and the length of meta-events (to be described below). A numerical value represented in VLF requires from one to four bytes, depending on the size of the numerical value. Since the standard MIDI file is parsed one byte at a time, some type of scheme is required to let the parser know the length of the VLF number. A naïve approach would be to include an additional byte at the beginning of the VLF to indicate the number of bytes remaining in the value. However, this approach would mean that a delta time always requires a minimum of two bytes. Instead, the VLF uses the most-significant bit (MSB) as a flag to indicate whether more bytes follow.

Questions & Answers

what is biology
daniel Reply
what is diffusion
Emmanuel Reply
passive process of transport of low-molecular weight material according to its concentration gradient
AI-Robot
what is production?
Catherine
Pathogens and diseases
how did the oxygen help a human being
Achol Reply
how did the nutrition help the plants
Achol Reply
Biology is a branch of Natural science which deals/About living Organism.
Ahmedin Reply
what is phylogeny
Odigie Reply
evolutionary history and relationship of an organism or group of organisms
AI-Robot
ok
Deng
what is biology
Hajah Reply
cell is the smallest unit of the humanity biologically
Abraham
what is biology
Victoria Reply
what is biology
Abraham
HOW CAN MAN ORGAN FUNCTION
Alfred Reply
the diagram of the digestive system
Assiatu Reply
allimentary cannel
Ogenrwot
How does twins formed
William Reply
They formed in two ways first when one sperm and one egg are splited by mitosis or two sperm and two eggs join together
Oluwatobi
what is genetics
Josephine Reply
Genetics is the study of heredity
Misack
how does twins formed?
Misack
What is manual
Hassan Reply
discuss biological phenomenon and provide pieces of evidence to show that it was responsible for the formation of eukaryotic organelles
Joseph Reply
Got questions? Join the online conversation and get instant answers!
Jobilize.com Reply

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Musical signal processing with labview -- midi for synthesis and algorithm control. OpenStax CNX. Nov 09, 2007 Download for free at http://cnx.org/content/col10487/1.2
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Musical signal processing with labview -- midi for synthesis and algorithm control' conversation and receive update notifications?

Ask