MIDI

 
 
The Musical Instrument Digital Interface (MIDI) protocol is an industry-standard defined in 1982 to represent musical information.

It is used in electronic instruments (keyboards, synthesizers, drum machines, sound cards), computer applications which produce sound, such as multimedia presentations, computer games and others.

MIDI does not transmit an audio signal or media, it transmits "event messages" such as the pitch and intensity of musical notes to play, control signals for parameters such as volume, vibrato and panning, cues, and clock signals to set the tempo. To create monophonic MIDI files checkout our online MIDI maker.

More information about MIDI can be found at: http://www.midi.org/

Quick guides







MIDI specification.



Information
A MIDI file (file extension: .mid) consists of a stream of 8-bit bytes. All 16-bit and 32-bit quantities are constructed by reading in two or four 8-bit bytes, respectively. The bytes are joined together in big-endian order.

In this tutorial, we use notation u1, u2, and u4 to mean an unsigned one-, two-, or four-byte quantity, respectively. uN means a variable number of bytes.

An example of a MIDI file created with the online morse code generator:


Download MIDI Download MIDI file: morse_code_a.mid

If you download this MIDI file (morse_code_a.mid) and open it with a HEX editor, you will see the following:

MIDI file in HEX editor.

A more detailed explanation about this MIDI file can be found in Figure 1 and Table 1.

Figure 1: Delta time and velocity.
MIDI delta time and velocity

Table 1: The MIDI file morse_code_a.mid dissected.
Dec Range
[Hex Range]
Hex value Description
0-3
[00-03]
4D 54 68 64 MIDI header: MThd
4-7
[04-07]
00 00 00 06 MIDI header length, always: 6
8-9
[08-09]
00 00 Single multi-channel track
10-11
[0A-0B]
00 01 Number of tracks: 1
12-13
[0C-OD]
01 E0 Time-code-based time
14-17
[OE-11]
4D 54 72 6B Track header: MTrk
18-21
[12-15]
00 00 00 86 Track header length: 86 = 134 dec
22-25
[16-19]
00 FF 03 35 00 = delta time
FF 03 = Track name
35 = String length total 53 bytes

Note:
Max: 256 bytes and ISO-8859-1 character set allowed.
26-78
[1A-4E]
47 .... 65 Track name = "Generated morse code www.mobilefish.com/services/morse_code/morse_code.php"
79-82
[4F-52]
00 FF 02 17 00 = delta time
FF 02 = Copyright Notice
17 = String length total 23 bytes

Note:
Max: 256 bytes and ISO-8859-1 character set allowed.
83-105
[53-69]
28 .... 6D Copyright Notice = "(C) 2010 Mobilefish.com"
106-109
[6A-6D]
00 FF 58 04 00 = delta time
FF 58 = Time Signature
04 = 4 data bytes
110-113
[6E-71]
04 02 18 08 04 = upper value of time signature
02 = lower value of time signature
18 = number of MIDI clocks in a metronome clock
114-117
[72-75]
00 FF 51 03 00 = delta time
FF 51 = Set Tempo in microseconds per quarter note
03 = 3 data bytes
118-120
[76-78]
08 7A 23 0x087A23 = 555555 dec
Tempo = 555555 microseconds per quarter note
Tempo = 60000000 / 555555 = 108 beats per minute per quarter note
121-123
[79-7B]
00 C0 4F 00 = delta time
C0 = Select instrument channel 0
4F = Instrument no 79
124-128
[7C-80]
81 70 90 51 7F81 70 = delta time (240 decimal, see Figure 1: A )
90 = Note on channel 0
51 = note number (More info: Online MIDI and music score maker)
7F = velocity
129-132
[81-84]
3A 80 51 00 3A = delta time (58 decimal, see Figure 1: B )
80 = Note off channel 0
51 = note number (More info: Online MIDI and music score maker)
00 = velocity
133-136
[85-88]
3A 90 51 7F 3A = delta time (58 decimal, see Figure 1: C )
90 = Note on channel 0
51 = note number (More info: Online MIDI and music score maker)
7F = velocity
137-141
[89-8D]
81 2E 80 51 0081 2E = delta time (174 decimal,see Figure 1: D )
80 = Note off channel 0
51 = note number (More info: Online MIDI and music score maker)
00 = velocity
142-146
[8E-92]
82 2C 90 51 0082 2C = delta time (300 decimal, see Figure 1: E )
90 = Note on channel 0
51 = note number (More info: Online MIDI and music score maker)
00 = velocity
147-151
[93-97]
82 2C 80 51 0082 2C = delta time (300 decimal, see Figure 1: F )
80 = Note off channel 0
51 = note number (More info: Online MIDI and music score maker)
00 = velocity
152-155
[98-9B]
00 FF 2F 00 00 = delta time
FF 2F 00 = End Of Track


A MIDI file is organized into data chunks and its structure looks like (see also Table 2):

MIDI file
{
   u4 MIDI header or <chunk type>
   u4 MIDI header length or <length>
   u2 MIDI format or <format>
   u2 Number of tracks or <ntrks>
   u2 Time division or <division>
MIDI Header or <header chunk>
   u4 Track header or <chunk type>
   u4 Track header length or <length>
         Track event or <mtrk event>+
Track chunk or <track chunk>
 
   uN Delta time or <delta-time>
   uN Event or <event>
Track event or <mtrk event>
}


Table 2: MIDI file
# of bytes Description
u4 MIDI header or <chunk type>
byte range: 0..3

The MIDI header must have the value MThd represented by the following hex values:

4D
54
68
64


It is used to identify this file as conforming to the MIDI specification.

u4 MIDI header length or <length>
byte range: 4..7

For Standard MIDI files (SMF) this value is always 6, represented by the following hex values:

00
00
00
06


It is the number of bytes used by "MIDI format (u2)", "Number of tracks in the MIDI file (u2)" and "The speed of the music (time division) (u2)".
Thus u2+u2+u2=u6.

u2 MIDI format or <format>
byte range: 8..9

The MIDI format describes how the following track information is to be interpreted.

Table 3: MIDI format
Format Hex value Description
0
00
00
The MIDI file contains a single multi-channel track.

All the data is put into only one track (not to be confused with a channel) in an uninterrupted data stream in the file, where all the bytes are next to each other.

If you have a simple bass-line and a melody, in format 0, you would alternately encode notes of the bass-line and melody next to each other.

1
00
01
The MIDI file contains one or more simultanious tracks (or MIDI outputs) of a sequence.

In format 1 the channel data can be compartmentalized into 1 or more tracks (up to 65535).

If you have a simple bass-line and a melody, in format 1, all the melody notes would go into one track, and all the bass notes would go into another track. Also in format 1, you can imitate the format 0 interleaving style in any of the tracks.

2
00
02
The MIDI file contains one or more sequentially independant single-track patterns.

A format 2 MIDI file is a sort of a combination of the other two formats. It contains multiple tracks, but each track represents a different sequence which may not necessarily be played simultaneously. This is meant to be used to save drum patterns, or other multi-pattern music sequences.


u2 Number of tracks or <ntrks>
byte range: 10..11

The number of tracks ranges from: 1 - 65535, represented by the following hex values:

00
01
-
FF
FF



If MIDI format is 0, the number of tracks is always 1.

u2 Time division or <division>
byte range: 12..13

The time division is used to decode the track event delta times into "real" time.
It has two formats:
  • metrical time

    Determines the beats (or ticks) per quarter note.

    15
    14
    13
    12
    11
    10
     9
     8
     7
     6
     5
     4
     3
     2
     1
     0
    <bitno.
    0
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     


    • Where bit number 0-14 (green) represent the delta time "beats or ticks" which make up a quarter note.
    • Where bit number 15 (red) is always 0.

    For example:
    0x0080 means:
    128 beats for a 1/4 note.
    64 beats for a 1/8 note.
    32 beats for a 1/16 note.
    16 beats for a 1/32 note.
    256 beats for a 1/2 note.
    512 beats for a whole note.

    0x0050 means:
    80 beats for a 1/4 note.
    40 beats for a 1/8 note.
    20 beats for a 1/16 note.
    10 beats for a 1/32 note.
    160 beats for a 1/2 note.
    320 beats for a whole note.

  • time-code-based time

    Determines the number of frames per second SMPTE time and the number of beats (or ticks) per frame.

    15
    14
    13
    12
    11
    10
     9
     8
     7
     6
     5
     4
     3
     2
     1
     0
    <bitno.
    1
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     


    • Where bit number 0-7 (blue) represents beats (or ticks) per frame.
    • Where bit number 8-14 (green) represents the frames per second SMPTE time. Allowed values: -24, -25, -29 or -30.

      The negative values are stored in two complements form.

      If value is -24, it represents 24 frames per second.
      If value is -25, it represents 25 frames per second.
      If value is -29, it represents 29 frames per second.
      If value is -30, it represents 30 frames per second.

    • Where bit number 15 (red) is always 1.

    For example:
    0xE878 means:

    15
    14
    13
    12
    11
    10
     9
     8
     7
     6
     5
     4
     3
     2
     1
     0
    <bitno.
    1
    1
    1
    0
    1
    0
    0
    0
    0
    1
    1
    1
    1
    0
    0
    0


    Bit number 0-7 (blue) represents 120 beats (or ticks) per frame.
    Bit number 8-14 (green) represents 24 frames per second SMPTE time.

    The value 24 is calculated as follow:

    Step 1:
    11101000      Two complements form. Bit number 8-15.
    00010111      Inverted two complements form.

    Step 2:
    00010111      Inverted two complements form.
    00000001      Add 1

    Step 3:
    00011000      Represents value 24.

    For example:
    0xE764 means:

    15
    14
    13
    12
    11
    10
     9
     8
     7
     6
     5
     4
     3
     2
     1
     0
    <bitno.
    1
    1
    1
    0
    0
    1
    1
    1
    0
    1
    1
    0
    0
    1
    0
    0


    Bit number 0-7 (blue) represents 100 beats (or ticks) per frame.
    Bit number 8-14 (green) represents 25 frames per second SMPTE time.

    For example:
    0xE350 means:

    15
    14
    13
    12
    11
    10
     9
     8
     7
     6
     5
     4
     3
     2
     1
     0
    <bitno.
    1
    1
    1
    0
    0
    0
    1
    1
    0
    0
    1
    1
    0
    0
    1
    0


    Bit number 0-7 (blue) represents 50 beats (or ticks) per frame.
    Bit number 8-14 (green) represents 29 frames per second SMPTE time.

    For example:
    0xE250 means:

    15
    14
    13
    12
    11
    10
     9
     8
     7
     6
     5
     4
     3
     2
     1
     0
    <bitno.
    1
    1
    1
    0
    0
    0
    1
    0
    0
    0
    1
    1
    0
    0
    1
    0


    Bit number 0-7 (blue) represents 50 beats (or ticks) per frame.
    Bit number 8-14 (green) represents 30 frames per second SMPTE time.
u4 Track header
byte range: 14..17

The track header must have the value MTrk and marks the start of the track event, where the actual song data are stored. The track header is represented by the following hex values:

4D
54
72
6B


u4 Track header length
byte range: 18..21

This represents the total number of bytes used in the track events.

u1 .. u4 Delta time
byte range: variable

Each <mtrk event> starts with a delta-time.
This represents the amount of time before the following event:

<delta-time><mtrk event><delta-time><mtrk event>....

An event can be a message to play or stop a note, to change the instrument, etc.
All events always starts with a delta-time even if the delta-time is zero (=0x00).

A delta-time is stored in at least 1 byte and maximum 4 bytes. Because the delta-time can be stored in a variable number of bytes, bit no. 7 bit of each byte has a special use. If this bit is zero then this byte is the last byte of the series. In all of the preceding bytes, bit no. 7 has value 1.

 7
 6
 5
 4
 3
 2
 1
 0
<bitno.
 
 
 
 
 
 
 
 


For example:
Delta-time = 0xFF7F means:

15
14
13
12
11
10
 9
 8
 7
 6
 5
 4
 3
 2
 1
 0
<bitno.
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1


Bit number 7 must be 0 because it is the last byte of the series.
Bit number 15 must be 1 because it is NOT the last byte of the series.

To determine what the actual value delta-time=0xFF7F represent, do the following:
If bit number 7 and bit number 15 are "emptied" and the most significant byte is shifted 1 bit to the right, the two bytes looks like:

15
14
13
12
11
10
 9
 8
 7
 6
 5
 4
 3
 2
 1
 0
<bitno.
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1



This represents actual hex value = 3FFF.

So, if a delta-time is between 0-127, it can be represented as one byte. The largest delta-time allowed is 0FFFFFFF, which translates to 4 bytes size. Here are examples of delta-times as 4 bytes values, and the variable length quantities that they translate to:

Table 4: Delta-times
Delta-time value Represents actual hex value Represents dec value Bytes used
00 00000000 0 1
3A 0000003A 58 1
40 00000040 64 1
7F 0000007F 127 1
81 00 00000080 128 2
81 2E 000000AE 174 2
81 70 000000F0 240 2
82 2C 0000012C 300 2
C0 00 00002000 8192 2
FF 7F 00003FFF 16383 2
81 80 00 00004000 16384 3
C0 80 00 00100000 1048576 3
FF FF 7F 001FFFFF 2097151 3
81 80 80 00 00200000 2097152 4
C0 80 80 00 08000000 134217728 4
FF FF FF 7F 0FFFFFFF 268435455 4

u3 Event
byte range: variable

There are three types of events:
Table 5: MIDI Control Events or MIDI Channel Events or <MIDI event>
Message description Status byte (hex) Data byte 1 (hex) Data byte 2 (hex)
Note Off 1000nnnn  (8n) 0kkkkkkk 0vvvvvvv
 
Note On 1001nnnn  (9n) 0kkkkkkk 0vvvvvvv
 
Key Pressure or
Aftertouch
1010nnnn  (An) 0kkkkkkk 0ppppppp
 
Bank Select 1011nnnn  (Bn) 00000000  (00) 0ttttttt
Modulation Wheel 1011nnnn  (Bn) 00000001  (01) 0ttttttt
Breath Controller 1011nnnn  (Bn) 00000010  (02) 0ttttttt
Foot Controller 1011nnnn  (Bn) 00000100  (04) 0ttttttt
Portamento Time 1011nnnn  (Bn) 00000101  (05) 0ttttttt
Data Entry Slider (MSB) 1011nnnn  (Bn) 00000110  (06) 0ttttttt
Main Volume 1011nnnn  (Bn) 00000111  (07) 0ttttttt
Balance 1011nnnn  (Bn) 00001000  (08) 0ttttttt
Pan 1011nnnn  (Bn) 00001010  (0A) 0ttttttt
Expression Controller 1011nnnn  (Bn) 00001011  (0B) 0ttttttt
Effect Control 1 1011nnnn  (Bn) 00001100  (0C) 0ttttttt
Effect Control 2 1011nnnn  (Bn) 00001101  (0D) 0ttttttt
General-Purpose Controllers 1 1011nnnn  (Bn) 00010000  (10) 0ttttttt
General-Purpose Controllers 2 1011nnnn  (Bn) 00010001  (11) 0ttttttt
General-Purpose Controllers 3 1011nnnn  (Bn) 00010010  (12) 0ttttttt
General-Purpose Controllers 4 1011nnnn  (Bn) 00010011  (13) 0ttttttt
LSB for controllers 0 1011nnnn  (Bn) 00100000  (20) 0ttttttt
LSB for controllers 1 1011nnnn  (Bn) 00100001  (21) 0ttttttt
LSB for controllers 2 1011nnnn  (Bn) 00100010  (22) 0ttttttt
LSB for controllers 3 1011nnnn  (Bn) 00100011  (23) 0ttttttt
LSB for controllers 4 1011nnnn  (Bn) 00100100  (24) 0ttttttt
LSB for controllers 5 1011nnnn  (Bn) 00100101  (25) 0ttttttt
LSB for controllers 6 1011nnnn  (Bn) 00100110  (26) 0ttttttt
LSB for controllers 7 1011nnnn  (Bn) 00100111  (27) 0ttttttt
LSB for controllers 8 1011nnnn  (Bn) 00101000  (28) 0ttttttt
LSB for controllers 9 1011nnnn  (Bn) 00101001  (29) 0ttttttt
LSB for controllers 10 1011nnnn  (Bn) 00101010  (2A) 0ttttttt
LSB for controllers 11 1011nnnn  (Bn) 00101011  (2B) 0ttttttt
LSB for controllers 12 1011nnnn  (Bn) 00101100  (2C) 0ttttttt
LSB for controllers 13 1011nnnn  (Bn) 00101101  (2D) 0ttttttt
LSB for controllers 14 1011nnnn  (Bn) 00101110  (2E) 0ttttttt
LSB for controllers 15 1011nnnn  (Bn) 00101111  (2F) 0ttttttt
LSB for controllers 16 1011nnnn  (Bn) 00110000  (30) 0ttttttt
LSB for controllers 17 1011nnnn  (Bn) 00110001  (31) 0ttttttt
LSB for controllers 18 1011nnnn  (Bn) 00110010  (32) 0ttttttt
LSB for controllers 19 1011nnnn  (Bn) 00110011  (33) 0ttttttt
LSB for controllers 20 1011nnnn  (Bn) 00110100  (34) 0ttttttt
LSB for controllers 21 1011nnnn  (Bn) 00110101  (35) 0ttttttt
LSB for controllers 22 1011nnnn  (Bn) 00110110  (36) 0ttttttt
LSB for controllers 23 1011nnnn  (Bn) 00110111  (37) 0ttttttt
LSB for controllers 24 1011nnnn  (Bn) 00111000  (38) 0ttttttt
LSB for controllers 25 1011nnnn  (Bn) 00111001  (39) 0ttttttt
LSB for controllers 26 1011nnnn  (Bn) 00111010  (3A) 0ttttttt
LSB for controllers 27 1011nnnn  (Bn) 00111011  (3B) 0ttttttt
LSB for controllers 28 1011nnnn  (Bn) 00111100  (3C) 0ttttttt
LSB for controllers 29 1011nnnn  (Bn) 00111101  (3D) 0ttttttt
LSB for controllers 30 1011nnnn  (Bn) 00111110  (3E) 0ttttttt
LSB for controllers 31 1011nnnn  (Bn) 00111111  (3F) 0ttttttt
Damper Pedal (Sustain Pedal) 1011nnnn  (Bn) 01000000  (40) 0ttttttt
Portamento 1011nnnn  (Bn) 01000001  (41) 0ttttttt
Sostenato Pedal 1011nnnn  (Bn) 01000010  (42) 0ttttttt
Soft Pedal 1011nnnn  (Bn) 01000011  (43) 0ttttttt
Legato Footswitch 1011nnnn  (Bn) 01000100  (44) 0ttttttt
Hold 2 1011nnnn  (Bn) 01000101  (45) 0ttttttt
Sound Controller 1 (default: Timber Variation) 1011nnnn  (Bn) 01000110  (46) 0ttttttt
Sound Controller 2 (default: Timber/Harmonic Content) 1011nnnn  (Bn) 01000111  (47) 0ttttttt
Sound Controller 3 (default: Release Time) 1011nnnn  (Bn) 01001000  (48) 0ttttttt
Sound Controller 4 (default: Attack Time) 1011nnnn  (Bn) 01001001  (49) 0ttttttt
Sound Controller 5 1011nnnn  (Bn) 01001010  (4A) 0ttttttt
Sound Controller 6 1011nnnn  (Bn) 01001011  (4B) 0ttttttt
Sound Controller 7 1011nnnn  (Bn) 01001100  (4C) 0ttttttt
Sound Controller 8 1011nnnn  (Bn) 01001101  (4D) 0ttttttt
Sound Controller 9 1011nnnn  (Bn) 01001110  (4E) 0ttttttt
Sound Controller 10 1011nnnn  (Bn) 01001111  (4F) 0ttttttt
General-Purpose Controllers 5 1011nnnn  (Bn) 01010000  (50) 0ttttttt
General-Purpose Controllers 6 1011nnnn  (Bn) 01010001  (51) 0ttttttt
General-Purpose Controllers 7 1011nnnn  (Bn) 01010010  (52) 0ttttttt
General-Purpose Controllers 8 1011nnnn  (Bn) 01010011  (53) 0ttttttt
Portamento Control 1011nnnn  (Bn) 01010100  (54) 0ttttttt
Effects 1 Depth (formerly External Effects Depth) 1011nnnn  (Bn) 01011011  (5B) 0ttttttt
Effects 2 Depth (formerly Tremolo Depth) 1011nnnn  (Bn) 01011100  (5C) 0ttttttt
Effects 3 Depth (formerly Chorus Depth) 1011nnnn  (Bn) 01011101  (5D) 0ttttttt
Effects 4 Depth (formerly Celeste Detune) 1011nnnn  (Bn) 01011110  (5E) 0ttttttt
Effects 5 Depth (formerly Phaser Depth) 1011nnnn  (Bn) 01011111  (5F) 0ttttttt
Data Increment 1011nnnn  (Bn) 01100000  (60) 0ttttttt
Data Increment 1011nnnn  (Bn) 01100001  (61) 0ttttttt
Non-Registered Parameter Number (LSB) 1011nnnn  (Bn) 01100010  (62) 0ttttttt
Non-Registered Parameter Number (MSB 1011nnnn  (Bn) 01100011  (63) 0ttttttt
Registered Parameter Number (LSB) 1011nnnn  (Bn) 01100100  (64) 0ttttttt
Registered Parameter Number (MSB) 1011nnnn  (Bn) 01100101  (65) 0ttttttt
Mode Messages 1011nnnn  (Bn) 01111001  (79) 0ttttttt
Mode Messages 1011nnnn  (Bn) 01111010  (7A) 0ttttttt
Mode Messages 1011nnnn  (Bn) 01111011  (7B) 0ttttttt
Mode Messages 1011nnnn  (Bn) 01111100  (7C) 0ttttttt
Mode Messages 1011nnnn  (Bn) 01111101  (7D) 0ttttttt
Mode Messages 1011nnnn  (Bn) 01111110  (7E) 0ttttttt
Mode Messages 1011nnnn  (Bn) 01111111  (7F) 0ttttttt
 
Program Change (=select instrument) 1100nnnn  (Cn) 0mmmmmmm [none]
 
Channel Aftertouch or
Channel Pressure
1101nnnn  (Dn) 0rrrrrrr [none]
 
Pitch Bend 1110nnnn  (En) 0fffffff 0ccccccc

  • nnnn
    Refers to channel 0-15 (0 = for musicians channel no 1, 15 = for musicians no 16)

  • kkkkkkk
    Refers to key/note number 0-127 (60=middle C).

  • vvvvvvv
    Refers to velocity (0-127).
    If Note Off this value is ignored.
    If Note On, value 127 is the fastest.

  • ppppppp
    Refers to key pressure (0-127) (0 = no pressure, 127 = full pressure).

  • ttttttt
    Refers to controller type (0-127).

  • mmmmmmm
    Refers to program number (0-127).

  • rrrrrrr
    Refers to amount (0-127).

  • fffffff
    Refers to value LSB (0-127).

  • ccccccc
    Refers to value MSB (0-127).

Table 6: System Exclusive Events or <sysex event>
Message description Status byte (hex) Length byte Data
Normal SysEx Events FFFF0000  (F0) variable-length data bytes
Divided SysEx Events FFFF0111  (F7) variable-length data bytes
Authorization SysEx Events FFFF0000  (F0) variable-length data bytes

  • ssssssss
    The length byte specifies the number the number of bytes which follow the length byte, not including the status byte and the length byte.

Table 7: Meta Events or <meta-event>
Message description Status byte (hex) Type byte (hex) Length byte (hex) Data
Sequence Number 11111111  (FF) 00000000  (00) 00000010 (02) data
Text Event 11111111  (FF) 00000001  (01) len text
Copyright Notice 11111111  (FF) 00000010  (02) len text
Sequence/Track Name 11111111  (FF) 00000011  (03) len text
Instrument Name 11111111  (FF) 00000100  (04) len text
Lyric 11111111  (FF) 00000101  (05) len text
Marker 11111111  (FF) 00000110  (06) len text
Cue Point 11111111  (FF) 00000111  (07) len text
MIDI Channel Prefix 11111111  (FF) 00100000  (20) 00000001  (01) 0000nnnn
End Of Track 11111111  (FF) 00101111  (2F) 00000000  (00) [none]
Set Tempo in microseconds per quarter note 11111111  (FF) 01010001  (51) 00000011  (03) data
SMPTE Offset 11111111  (FF) 01010100  (54) 00000101  (05) data
Time Signature 11111111  (FF) 01011000  (58) 00000100  (04) data
Key Signature 11111111  (FF) 01011001  (59) 00000010  (02) data
Sequencer Specific Meta Event 11111111  (FF) 01111111  (7F) len data
  • len
    Refers to the length portion of the meta-event syntax, that is, a number, stored as a variable-length quantity, which specifies how many data bytes follow it in the meta-event.

  • text and data
    Refers to however many bytes of (possibly text) data were just specified by the length.

  • nnnn
    Refers to channel 0-15 (0 = for musicians channel no 1, 15 = for musicians no 16)



Table 8: More information about Messages
Message Description
End Of Track 11111111  (FF)