<< 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

is economics important in programming world?
Abdul Reply
What is oppunity cost
Kudzanayi Reply
it refers wants that are left unsatisfied in Oder satisfy another more pressing need
Thank bro
is the second altenative to foregone
How does monopoly and imperfect competion;public goods externalities ass symmetric information, ommon property ressourses; income distribution Merit goods and Macroeconomic growth and stability causes market failure?
it is where by a labour moves from one place to another
Amoako Reply
what is mobility of labour
George Reply
who best defined economics
paul Reply
what are the importance of economics
Adwoa Reply
trade should be best
help to know how our government operates in which system
1. To solve economic problems. 2. To predict economic event. 3. It also offer intellectual training to students.
How price elasticity can affect the markets of certain goods
Rhoda Reply
Heyy thanks for the teaching
Easter Reply
what is labour
Arthur Reply
Mental and physical ability of human being is considered as labour.
and usually provided by human
is all human effort both physical and mental abilities to work
why is it that most countries in Africa abuse available resources
Okeoghene Reply
What is economics
Bright Reply
economics is a science which studies human behaviour as a relationship between ends, scarce means which have alternative uses.
Why is scarcity a mind problem in economics
Alima Reply
because of the problem of allocation of resources
unequalled distribution of resources
scarcity is a mind problem due to circumstances like when a particular product is demand in a high rate at the market.
scarcity defines limited in supply relative to the demand them. so scarcity is a mind problem in economics because wants are unlimited while resources are also limited.
it is a mind problem because it's one of the fundamental issue address by economics human wants are unlimited and resources available are limited this makes the study of economics essential
its a fundamental issue
it's not a mind problem, I think it's a economic problem, how to allocate scarce resources to satisfy need and want of society
Identify the different sectors in the economy
Moses Reply
what is economics
economic is study of human behaviour according to how they satisfie their numerous want
Economics is a science which studies human behaviour as a relationship between ends and scares resources.
economic is study of human behaviour according to how they satisfie their numerous want
what is the law of demand
Adugbire Reply
the lower the price the higher the quantity demanded vice versa is true
yes ooh
what are relationship between unemployment and economic growth
Weness Reply
no relationship
When there is economic growth, there is increased opportunity in employment. When there is no economic growth mean there is recession causing a decline or downsizing in employment opportunities.
unemployment or employment determined by the level of economic growth
Got questions? Join the online conversation and get instant answers!
Jobilize.com Reply

Get the best Algebra and trigonometry course in your pocket!

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?