20.08.2013 Views

Musical Instrument Digital Interface, - Hol.gr

Musical Instrument Digital Interface, - Hol.gr

Musical Instrument Digital Interface, - Hol.gr

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Musical</strong> <strong>Instrument</strong> <strong>Digital</strong> <strong>Interface</strong>,<br />

Antony’s Web Site: http://users.hol.<strong>gr</strong>/~antony07<br />

is a digital communications protocol. In August of 1983, music manufacturers a<strong>gr</strong>eed on a document that<br />

is called "MIDI 1.0 Specification". Any device that has MIDI capabilities must adhere to this specific data<br />

structure to ensure that all MIDI devices are capable of working together. This protocol is a language that<br />

allows interworking between instruments from different manufacturers by providing a link that is capable<br />

of transmitting and receiving digital data. It is important to remember that MIDI transmits commands, but<br />

it does not transmit an audio signal.<br />

The MIDI specification includes a common language that provides information about events, such as note<br />

on and off, preset changes, sustain pedal, pitch bend, and timing information. The specification has been<br />

updated more recently with specific data structures for handling sample dumps, MIDI time code, general<br />

MIDI and standard MIDI files. To see a complete listing of all MIDI data, go to: Types of Data<br />

Transmitted through MIDI<br />

MIDI information is transmitted through a MIDI cable that has DIN-type male plug connectors with five<br />

pins. Two of the pins are used to transfer digital binary information (MIDI Code). One of the pins issues a<br />

steady stream of five volts, while the other pin alternates between 5 volts and 0 volts to represent binary<br />

information (on and off). The third pin is a <strong>gr</strong>ound and the remaining two pins are currently not in use.<br />

The MIDI data is sent down the cable one<br />

bit at a time as a stream of information,<br />

which is called a serial interface. A<br />

parallel interface allows the information<br />

to be sent down separate wires so that the<br />

message reaches the device at the same<br />

time, making it faster than a serial<br />

interface. Computer chips communicate<br />

via a parallel interface.


The serial interface<br />

was chosen by MIDI<br />

manufacturers because<br />

it is less expensive and<br />

more efficient than a<br />

parallel interface. The<br />

speed of a MIDI serial<br />

interface is 31,250 bits<br />

per second. There are<br />

10 bits needed for<br />

every MIDI digital<br />

word or 3125<br />

messages per second.<br />

Snap your finger and<br />

think about how many<br />

many events could be<br />

transmitted during that<br />

time. Consequently,<br />

the serial interface<br />

speed is more than<br />

adequate for most<br />

music applications.<br />

There are many different<br />

types of MIDI connections.<br />

The MIDI Out sends<br />

digital messages from one<br />

MIDI device and into the<br />

MIDI In of another MIDI<br />

device.<br />

In order to really<br />

understand the concept<br />

of digital information,<br />

we must be familiar<br />

with the decimal, binary<br />

and hexadecimal<br />

counting systems.<br />

Understanding Decimal,<br />

Binary,& Hexadecimal,<br />

will help us to learn<br />

about the three counting<br />

systems and how they<br />

are applied to MIDI<br />

The MIDI Thru connector receives a copy of any digital message coming into the MIDI In connection<br />

and sends a duplicate of this information out of the MIDI Thru port into the MIDI In of a third MIDI<br />

device. This allows the user to have more than two MIDI devices connected as a studio. The MIDI Out<br />

port from the second or third device in the dia<strong>gr</strong>am below would not work because it is sending MIDI<br />

information from that particular synthesizer. The MIDI Thru port is receiving the MIDI In information<br />

and passing it on to the next device.<br />

When MIDI devices are linked together by a series of MIDI In and MIDI Thru connections, it is referred<br />

to as a Daisy-Chain Network.<br />

A MIDI interface may only<br />

have two connections, a<br />

MIDI In and a MIDI Out.<br />

Copies of MIDI In information may be sent to numerous<br />

devices by using MIDI Thru Boxes, known as Star<br />

Networks.<br />

Example of a MIDI Echo / MIDI<br />

Merger


This gives the user the<br />

ability to send information<br />

to a computer, while the<br />

computer sends MIDI<br />

information out from a<br />

software pro<strong>gr</strong>am. Some<br />

music software pro<strong>gr</strong>ams<br />

will have a MIDI Echo<br />

device that allows a copy of<br />

the information to be<br />

merged with the information<br />

that is leaving the computer<br />

from the MIDI Out ports.<br />

This enables the sequencing<br />

software to simultaneously<br />

record the information that it<br />

is receiving at the MIDI In<br />

port, while sending a copy<br />

of that information out of<br />

the MIDI Out port along<br />

with previously recorded<br />

tracks of MIDI events.<br />

Return to MIDI Connections Menu<br />

Now it is time to try connecting a few different MIDI studios. After each example there is a answer page<br />

to see the complete connections.<br />

All three keyboards have<br />

MIDI connections.<br />

Synthesizer A is the<br />

Master keyboard and<br />

Synthesizer B & C are the<br />

MIDI slave devices.<br />

Studio A<br />

Studio B<br />

Both keyboards have<br />

MIDI connections.<br />

Synthesizer A is the<br />

Master keyboard and<br />

Synthesizer B is the<br />

MIDI slave device.<br />

Which connections<br />

would you use so that<br />

synthesizer A is<br />

sending MIDI<br />

information to<br />

synthesizer B.<br />

To see the Answer


Which connections would<br />

you use so that synthesizer<br />

A is sending MIDI<br />

information to synthesizer<br />

B and synthesizer C.<br />

To see the Answer<br />

Studio C<br />

In this example we have added a computer and MIDI interface. The<br />

first order of business is to connect the master keyboard to the computer<br />

so they can communicate with each other.<br />

Next connect the three tone generators (synthesizers without keyboards)<br />

The MIDI Out on the MIDI interface may also act as a MIDI Thru that<br />

relays a copy of the MIDI In information. This will allow the keyboard<br />

to communicate with the computer and the three tone generators. Use<br />

the concept of the daisy-chain network set-up from the MIDI Thru<br />

port of the keyboard.<br />

To see the Answer<br />

Studio D<br />

A multi-port Star <strong>Interface</strong> receives MIDI data at the MIDI In ports<br />

and then copies the information and sends it out to two or more Thru<br />

ports. Each MIDI In port may be assigned to specific MIDI Thru ports.<br />

Again, try connecting the keyboard controller so that it sends<br />

information to the MIDI interface.


Then connect the MIDI interface to the Keyboard. Finally, connect the<br />

three remaining Tone Generators using a star set-up. Do not use a daisychain<br />

set-up for these connections.<br />

To see the Answer<br />

Return to MIDI Connections Menu<br />

MIDI <strong>Interface</strong>s<br />

The pictures below are MIDI interfaces for the<br />

Macintosh computer. <strong>Interface</strong>s may be<br />

purchased in many different styles and varying<br />

de<strong>gr</strong>ees of complexity.<br />

pictures from Opcode and Apple Computer<br />

The pictures below<br />

are MIDI interfaces<br />

for Windows based<br />

computers. Possible<br />

interfaces may be<br />

an external device<br />

or inserted into the<br />

computer as an<br />

add-on card.<br />

pictures from Music Quest Inc. and Dell Computer Corporation


We will explore three basic numbering systems, called decimal, binary, and hexadecimal.<br />

A base 10 number system, the decimal system, is based on ten numbers: 0, 1, 2, 3, 4, 5, 6, 7, 8, and 9.<br />

The next number in the sequence is a combination of two digits, where the second digit is multiplied by<br />

10. 10 is equal to (1 X 10) + 0. Two digits may go as high as 99, and then a third digit is needed for the<br />

next number. The third digit is multiplied by 100. This concept continues with the next digit multiplied by<br />

1000, the next by 10,000, and so on. A number like 6594 would be calculated as (6 X 1000) + (5 X 100) +<br />

(9 X 10) + (4 X 1). This concept is easy to <strong>gr</strong>asp, because we use the decimal system in every day<br />

applications.<br />

Computers work in a digital environment that<br />

has only two variables, 0 and 1. All numbers in<br />

the decimal system may be translated into 0's<br />

and 1's of the binary system. By having only<br />

one digit or box, there are two possibilities.<br />

This binary system is a base 2 numbering<br />

system that uses only two numbers, 0 and 1.<br />

By having two digits or boxes, there are four<br />

possibilities. The upper number is the decimal<br />

counting system and the bottom numbers<br />

represent the binary counting system. In binary,<br />

the first digit (right box) corresponds to a<br />

decimal value of 0 or 1, while the second digit<br />

(left box) corresponds to a decimal value of 0 or<br />

2. The multiples of the decimal counting system<br />

are 1, 10, 100, 1000, etc. The multiples of the<br />

binary counting system are 1, 2, 4, 8, 16, 32, 64,<br />

128, etc.<br />

By having three digits or boxes, there are eight possibilities. The upper<br />

number is the decimal counting system and the bottom numbers<br />

represent the binary counting system. The first digit (right box) may<br />

have a value of 0 or 1. The second digit (middle box) may have a value<br />

of 2 or 0 and the last digit (left box) may have a value of 4 or 0.


(Remember that 0 is a number, 0-15) The upper number is<br />

the decimal counting system and the boxes represent the<br />

binary possibilities.<br />

This is the<br />

same dia<strong>gr</strong>am,<br />

but now you<br />

only see the<br />

binary<br />

representation.<br />

By having<br />

four digits<br />

or boxes,<br />

there are<br />

sixteen<br />

possibilities.<br />

The first digit (right box) may have a value of 0 or 1, and the second<br />

digit may have a value of 2 or 0, the third digit may have a value of 4 or<br />

0, and the last digit (left box) may have a value of 8 or 0.<br />

Finally, we see all the combinations, with the upper numbers<br />

representing the decimal counting system followed by the<br />

[hexadecimal counting system]. The bottom number is the binary<br />

equivalent of the upper numbers.<br />

The hexadecimal counting system is a base 16 system. Each digit or slot may be represented by sixteen<br />

possible numbers. Hexadecimal uses the first ten numbers of the decimal system: 0, 1, 2, 3, 4, 5, 6, 7, 8,<br />

and 9. The number 10 has two digits so in hexadecimal it is represented by the letter A. The number 11,<br />

by B, 12 by C, 13 by D, 14 by E and 15 by F.<br />

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 1A, 1B,<br />

1C, 1D, 1E, 1F, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 2A ........etc.<br />

Two digits or slots are needed to represent the next number in the sequence. The decimal number 16<br />

would equal 10 in hexadecimal. (1 X 16) + 0. Continuing in the series, 17(decimal) would equal<br />

11(hexadecimal), 18(decimal) would equal 12(hexadecimal), and so on until 31(decimal), which would<br />

equal 1F(hexadecimal). The next hexadecimal number would be 20, (2 X 16) + 0, which would equal 32<br />

in decimal. The hexadecimal number 9C would equal (9 X 16) + 12 = 156 in decimal.


multiple of each digit 1286432168421<br />

binary counting system 1 0 1 1 0110<br />

The binary number 10110110 is the equivalent of 182 in decimal. That is, (128 x 1) + (64 x 0) + (32 x 1)<br />

+ (16 x 1) + (8x0) + (4 x 1) + (2 x 1) + (1 x 0).<br />

multiple of each digit 256 16 1<br />

hexadecimal counting system 1 A F<br />

The hexadecimal number 1AF is the equivalent of 431 in decimal. That is (256 x 1) + (16 x 10) + (1 x<br />

15). The multiples of the digits in the hexadecimal counting system are 1, 16, 256, etc.<br />

So why do we have to learn all these numbers to understand MIDI?<br />

Remember that MIDI digital information is transmitted using the binary system. The serial interface<br />

translates musical actions or events into binary numbers that it receives and sends one at a time down a<br />

MIDI cable. By understanding the binary counting system, we can look at MIDI information and<br />

understand what is being transmitted through a MIDI cable. The binary number 10010000 is not easy to<br />

calculate, but reading the number in the hexadecimal equivalent 90 makes more sense when it is applied to<br />

a MIDI message.<br />

10010000, 00110111, 01111011 = 90, 37, 7B, which may be interpreted as;<br />

Note ON, MIDI channel 1, play the 55th note, at a velocity of 123 out of 127 possibilities.<br />

multiple of each digit 1286432168421<br />

binary counting system 1 0 1 1 0110<br />

If we look at the binary number above there is an easier way to add up the number. Instead of counting the<br />

binary number as (128 x 1) + (64 x 0) + (32 x 1) + (16 x 1) + (8x0) + (4 x 1) + (2 x 1) + (1 x 0) = 182<br />

(Decimal), split the binary number into two sections.<br />

multiple of each digit 8421 8421<br />

binary counting system 1011 0110<br />

hexadecimal counting system B 6<br />

(8 X 1) + (4 X 0) + (2 X 1) + (1 X 1) = 11 or B in hexadecimal<br />

(8 X 0) + (4 X 1) + (2 X 1) + (1 X 0) = 6 in hexadecimal<br />

B6 hexadecimal number (11[B] x 16) + 6 = 182 in decimal<br />

If we use eight binary digits we have 256 possible numbers. 00000000 to 11111111. We can use two<br />

hexadecimal numbers to represent 256 numbers, 00 to FF. All MIDI events may be represented with eight<br />

binary or two hexadecimal numbers.<br />

You may download a document,Conversion of Numbers, that was created using the pro<strong>gr</strong>am Max. This<br />

document compares the similarities between the decimal, binary and hexadecimal counting systems.By<br />

clicking on the document your browser should download the file. The document may be changed back to


its original version by using the pro<strong>gr</strong>am StuffIt Expander. If your browser is set up to recognize StuffIt<br />

Expander, it may have already unstuffed the document. If not, you will need to obtain a copy of the<br />

pro<strong>gr</strong>am StuffIt Expander from Aladdin.<br />

The pro<strong>gr</strong>am MAXplay is needed to run the document Conversion of Numbers. If you would like<br />

information about the application Max, please contact Opcode Systems, Inc.. You may download a free<br />

copy of this application by clicking on the MAXplay icon below. This is a run-time only version of the<br />

application Max; it may not be used to create new Max documents. MAXplay will work only on a<br />

Macintosh computer.<br />

Specific examples of MIDI data structures<br />

The MIDI language is represented with binary code. Each 0 or 1 is called a bit. Four bits equal a nibble<br />

and eight bits equal a byte.With MIDI, each digital word consists of a total of 10 bits: 8 bits (1 byte) plus<br />

one start bit. (The MIDI messages in this pro<strong>gr</strong>am will not display the start and stop bits.)<br />

When we look as a digital word, 10010110, the bit at the far left is considered the Most Significant Bit.<br />

The remaining seven bits, 10010110, are considered the Least Significant Bits. Most MIDI messages<br />

consist of one, two or three bytes. Each byte may be classified as a status or data byte.<br />

A MIDI processor will look at the Most Significant Bit to see if it is a 1 or a 0. Status bytes start with a<br />

1, while data bytes start with a 0. A status byte is the first word in a digital MIDI message, and it is used<br />

as an identifier or an instruction.<br />

Channel messages are composed of status bytes that are followed by one or more data bytes. The data<br />

bytes are information that is pertinent to the status byte. Because a data byte starts with a 0 in the binary<br />

number, 01101100, there are 128 possible values. In hexadecimal, the values range from 00 to 7F. You<br />

may want to download the MAXplay pro<strong>gr</strong>am, Conversion of Numbers, to better understand the<br />

relationship of a MIDI slider with binary and hexadecimal information.<br />

You may download a document,Conversion of Numbers, that was created using the pro<strong>gr</strong>am Max. This<br />

document compares the similarities between the decimal, binary and hexadecimal counting systems.By<br />

clicking on the document your browser should download the file. The document may be changed back to<br />

its original version by using the pro<strong>gr</strong>am StuffIt Expander. If your browser is set up to recognize StuffIt<br />

Expander, it may have already unstuffed the document. If not, you will need to obtain a copy of the<br />

pro<strong>gr</strong>am StuffIt Expander from Aladdin.<br />

The pro<strong>gr</strong>am MAXplay is needed to run the document Conversion of Numbers. If you would like<br />

information about the application Max, please contact Opcode Systems, Inc.. You may download a free<br />

copy of this application by clicking on the MAXplay icon below. This is a run-time only version of the<br />

application Max; it may not be used to create new Max documents. MAXplay will work only on a<br />

Macintosh computer.<br />

• Conversion of Numbers(MAXplay document) (17k)<br />

• MAXplay 3.0 (Application) (644k)


To look at some specific examples of MIDI binary information, you may want to download two more<br />

MAXplay pro<strong>gr</strong>ams that demonstrate what occurs when a note is turned on and the relationship of the<br />

keyboard notes to hexadecimal, decimal and binary information.<br />

• MIDI Note On(MAXplay document) (17k)<br />

• MIDI Note Conversion (MAXplay document) (17k)<br />

Specific examples of MIDI data structures<br />

Turning on a MIDI Note<br />

Binary code 10010000 00111100 01110010<br />

Hexadecimal 9 0 3 C 7 2<br />

9 0 Status Byte Note On with MIDI channel 1.<br />

3 C<br />

Data Byte, that is the actual note which is the 60th note on a range of 0 to 127, which is<br />

Middle C.<br />

7 2<br />

The key velocity information on how fast the note was pressed. This data byte also has a<br />

range of 0 to 127. A higher velocity will create more volume with the sound.<br />

Creating a Pro<strong>gr</strong>am Change<br />

Binary code 11001111 00011010<br />

Hexadecimal C F 1 A<br />

C F Status Byte Pro<strong>gr</strong>am Change on MIDI channel 16.<br />

1 A<br />

Data Byte that is the actual pro<strong>gr</strong>am number that was pressed on the synthesizer. The<br />

pro<strong>gr</strong>am would be the 26th pro<strong>gr</strong>am setting. That is (1 x 16) + (A, which is 10)<br />

Using the Sustain Pedal<br />

Binary code 10110111 01000000 01111111<br />

Hexadecimal B 7 4 0 7 F<br />

B 7 Status Byte Control Change on MIDI channel 8.<br />

4 0 Data Byte that selects sustain pedal as a controller.<br />

7 F Data Byte that turns on the sustain pedal.


Using the Volume Pedal<br />

Binary code 10111010 01000000 00000101 00000110 ......<br />

Hexadecimal B A 0 7 0 5 0 6 ......<br />

B A Status Byte Control Change on MIDI channel 11.<br />

0 7 Data Byte that selects volume as a controller.<br />

0 5, 0 6, ..... Data Bytes that increase the volume.<br />

There are four main categories of MIDI data. The following charts represent information on the current<br />

hexadecimal numbers that are used in MIDI transmission. Each MIDI message includes a Status Byte. If<br />

they are required, Data Bytes will follow each Status Byte. Some of the example below have links that<br />

may be clicked for more detail about the MIDI event.<br />

MIDI Message<br />

• Channel<br />

Messages<br />

• System<br />

Exclusive<br />

Status<br />

Byte<br />

• System<br />

Common<br />

• System Real-<br />

Time<br />

Channel Messages<br />

Data Byte Data Byte<br />

Note Off 8n Note Number Velocity<br />

Note On 9n Note Number Velocity<br />

Polyphonic<br />

Aftertouch<br />

An Note Number Pressure<br />

Control Change Bn Control Number Data Information<br />

Control Change Bn 01 Modulation Wheel Data<br />

Control Change Bn 02 Breath Controller Data<br />

Control Change Bn 04 Foot Controller Data<br />

Control Change Bn 05 Portamento Time Data<br />

Control Change Bn 06 Data Entry Slider Data<br />

Control Change Bn 07 Main Volume Data


Control Change Bn 08 Balance Controller Data<br />

Control Change Bn 0A Pan Controller Data<br />

Control Change Bn 0B Expression Controller Data<br />

Control Change Bn<br />

40 Sustain Pedal<br />

(Damper)<br />

00: Off 7F: On<br />

Control Change Bn 41 Portamento 00: Off 7F: On<br />

Control Change Bn 42 Sostenuto 00: Off 7F: On<br />

Control Change Bn 43 Soft Pedal 00: Off 7F: On<br />

Control Change Bn 45 <strong>Hol</strong>d 2 00: Off 7F: On<br />

Control Change Bn<br />

5B External Effects<br />

Depth<br />

00: Off 7F: On<br />

Control Change Bn 5C Tremelo Depth 00: Off 7F: On<br />

Control Change Bn 5D Chorus Depth 00: Off 7F: On<br />

Control Change Bn<br />

5E Celeste (Detune)<br />

Depth<br />

00: Off 7F: On<br />

Control Change Bn 5F Phaser Depth 00: Off 7F: On<br />

Control Change Bn 79 Reset All Controllers Data to reinitialize<br />

Control Change Bn 7A Local Control 00: Off 7F: On<br />

Control Change Bn 7B All Note Off 00<br />

Control Change Bn 7C Omni Off 00<br />

Control Change Bn 7D Omni On 00<br />

Control Change Bn 7E Mono On 00-0A Number of Channels<br />

Control Change Bn 7F Poly On 00<br />

Pro<strong>gr</strong>am Change Cn<br />

Pro<strong>gr</strong>am Number 00 to<br />

7F<br />

No second data byte<br />

needed.<br />

Channel Aftertouch Dn Note Number Pressure Value<br />

Pitch Wheel En Least Significant Bit Most Significant Bit<br />

n=MIDI Channel Number [ Hexadecimal numbers 0 to F = 1 to 16 MIDI channel number)<br />

Return to Types of Data Menu


MIDI Message<br />

System Exclusive F0<br />

System Exclusive<br />

Universal<br />

System Exclusive<br />

Universal<br />

System Exclusive<br />

Universal<br />

System Exclusive<br />

Universal<br />

System Exclusive<br />

Universal<br />

Status<br />

Byte<br />

System Exclusive<br />

Data Byte Data Byte<br />

Manufacture ID<br />

Code<br />

F0 7E Sample Dump<br />

Manufacture Data<br />

Data on sample, bits, length, rate,<br />

and loop points<br />

F0 7F MIDI Time Code Data on Complete Message<br />

F0<br />

MIDI Machine<br />

Control<br />

Data commands<br />

F0 MIDI Show Control Data commands<br />

F0<br />

Return to Types of Data Menu<br />

MIDI Message Status<br />

Byte<br />

MIDI Time Code<br />

Quarter Frame<br />

Song Position<br />

Pointer<br />

Standard MIDI<br />

Song File<br />

System Common<br />

F1 Frame Number Data<br />

F2<br />

Data for Song File<br />

Data Byte Data Byte<br />

Data on number of SSP 6<br />

Bytes everyQuarterNote<br />

No second data byte. F1 status<br />

byte is repeated with data byte.<br />

Data on number of SSP 6 Bytes<br />

everyQuarterNote<br />

Song Select F3 Song Number No second data byte.<br />

Tune Request F6 Data to change tuning Data to change tuning<br />

End of Exclusive F7 No data bytes No data bytes<br />

Return to Types of Data Menu


System Real-Time<br />

MIDI Message Status Byte Data Byte Data Byte<br />

TimingClock MIDISync F8 No data bytes<br />

No data bytes. 24<br />

Status bytes per<br />

quarter note.<br />

Start FA No data bytes No data bytes<br />

Continue FB No data bytes No data bytes<br />

Stop FC No data bytes No data bytes<br />

Active Sensing FE No data bytes No data bytes<br />

System Reset FF<br />

Sets instrument to<br />

default<br />

• MIDI Channels<br />

• MIDI Reception Modes<br />

• Multi-Timbral <strong>Instrument</strong>s<br />

MIDI Channels<br />

No data bytes<br />

All MIDI devices receive MIDI information at the MIDI In port. All MIDI channel message information<br />

has an identification of a specific MIDI channel. The second nibble of a MIDI byte has sixteen<br />

possibilities that identify the MIDI channel. In the example below, the first four digits (1100) represent a<br />

pro<strong>gr</strong>am change and the last four digits (1111), refer to MIDI channel 16.<br />

Binary code 11001111<br />

Hexadecimal C F<br />

Consider the analogy of a television set that has sixteen channels. All sixteen may be viewed, but only one<br />

channel may be on the screen at any given moment. A MIDI device may be set-up to respond in a similar<br />

fashion. It may receive information on all sixteen channels, but it only responds to one MIDI channel at<br />

time. The MIDI device will ignore all channel messages that do not correspond to the same MIDI channel.<br />

This type of reception mode is called Omni-Off Poly. Now, let's look at the four types of MIDI reception<br />

modes.<br />

Return to MIDI Channels & Modes Menu<br />

MIDI Reception Modes<br />

Mode 1 - Omni-On Poly - The receiving device listens and responds<br />

to all incoming MIDI channel data. The device will ignore the channel<br />

destination of each status byte and attempt to play all MIDI messages.


Poly, is dependent on the number of voices that a MIDI device can play<br />

at any given moment in time. Some devices may only have eight note<br />

polyphonic capabilities, while other devices may play up to sixty-four<br />

voices simultaneously.<br />

Mode 2 - Omni-On Mono - The receiving device listens and responds<br />

to all incoming MIDI channel data in the same fashion as Mode 1,<br />

though the instrument will only play one note at a time. The mode is not<br />

very practical and has little use in most MIDI applications.<br />

Mode 3 - Omni-Off Poly - This is the most frequently used mode. The<br />

MIDI device will listen to all incoming channel data but only responds<br />

to information set to one particular channel. Poly is dependent on the<br />

number of voices that a MIDI device can play at any given moment in<br />

time. Some devices may only have eight note polyphonic capabilities,<br />

while other devices may play up to sixty-four voices simultaneously. If<br />

a device is multi-timbral, then it may be set-up to have more than one<br />

instrument playing simultaneously, and each instrument will play the<br />

notes polyphonically up to the device's limit.<br />

Mode 4 - Omni-Off Mono - The MIDI device will listen to all<br />

incoming channel data but only responds to information set to one<br />

particular channel. It will only play one note at any given moment. A<br />

typical use for this mode is a MIDI Guitar Controller, where each string<br />

of the guitar is assigned to a separate MIDI channel and each string will<br />

play only one note at a time.<br />

Return to MIDI Channels & Modes Menu<br />

Multi-Timbral <strong>Instrument</strong>s<br />

A multi-timbral MIDI device is able to respond to two or more different sounds simultaneously. It is like<br />

having two or more synthesizers combined into one device. A multi-timbral instrument can be set-up to<br />

play a piano sound on channel 1, a bass sound on channel two, a string sound on channel 3, and a solo<br />

instrument sound on channel 4. This type of device works well with a sequencer pro<strong>gr</strong>am that has specific<br />

information assigned to separate tracks, because each timbre ( pro<strong>gr</strong>am) will only respond to a specific<br />

MIDI channel.<br />

In the example on<br />

the left, a sequencer<br />

application in the<br />

computer can send<br />

multiple tracks of<br />

MIDI notes on<br />

channels 1 through<br />

10. The keyboard is<br />

set-up to respond to<br />

MIDI information on<br />

channels 1 through<br />

3, while the multitimbral<br />

device on the<br />

right is responding to<br />

MIDI information on


A MIDI controller is a device that is<br />

able to transmit performance related<br />

MIDI events. The most common type<br />

of controller is a MIDI device with a<br />

keyboard. There are keyboard<br />

controllers without sound modules.<br />

The instrument produces no sound of<br />

it own, rather it generates MIDI<br />

events from the keyboard. A<br />

keyboard controller usually will have<br />

weighted keys that have the "feel"<br />

and "response" of a piano. Keyboard<br />

controllers usually have 76 or 88<br />

keys.<br />

channels 4 through<br />

10.<br />

Listed below is an overview<br />

of different MIDI controllers.<br />

• Synthesizers<br />

• Percussion<br />

Controllers<br />

• Guitar Controllers<br />

• MIDI Pedal<br />

Controller<br />

• Wind Controllers<br />

• Disklavier Piano<br />

• MID Grand Piano<br />

Using a keyboard is not the only way to control a MIDI device.<br />

There are alternate controllers than include drumpads, keyboard<br />

mallets, wind controllers, guitar and bass controllers, and MIDI<br />

pedals. Experimentation with MIDI controllers has led to the<br />

development of muscle controllers that are attached to the body,<br />

glass plate harps, violin controllers, and many other imaginative<br />

devices.<br />

Many synthesizers include keyboard<br />

controllers. Tone Generators are synthesizer<br />

modules without the keyboard.<br />

pictures from Alesis Studio Electronics and Yamaha Corporation of America<br />

Return to MIDI Controllers Menu


The picture on the right is a MIDI<br />

Percussion Controller. It resembles<br />

a vibraphone but has the added<br />

flexibility of MIDI.<br />

Return to MIDI Controllers Menu<br />

A MIDI Guitar<br />

Controller may either<br />

resemble a guitar in<br />

appearance (as in the<br />

upper picture) or may<br />

be an actual guitar<br />

with a special MIDI<br />

pickup installed (as in<br />

the lower example).<br />

MIDI Drum-Pad Controllers give the<br />

percussionist added flexibility. Each pad<br />

may be assigned to a certain drum<br />

sound, special effect or other MIDI<br />

parameters.<br />

pictures from KaT, Inc.<br />

Guitar Controllers may be set-up to<br />

control a different MIDI device on<br />

each string. The ability to combine the<br />

guitar's expressiveness with MIDI<br />

controls gives the user unlimited<br />

potential.<br />

pictures from Yamaha Corporation of America and Roland Corporation<br />

Return to MIDI Controllers Menu


Below is a MIDI<br />

footpedal board,<br />

which is often used<br />

as an auxiliary<br />

controller to switch<br />

between patches or<br />

effects.<br />

MIDI Wind<br />

Controllers are<br />

designed to mimic<br />

the expressive<br />

articulation of a<br />

woodwind or brass<br />

instrument. They<br />

usually have a very<br />

dynamic feel and<br />

may have a more<br />

humanistic effect on<br />

the sounds or<br />

samples.<br />

pictures from Yamaha Corporation of America and Music Industries Corporation<br />

Return to MIDI Controllers Menu<br />

Inside the<br />

disklavier<br />

are optical<br />

sensors<br />

and key<br />

solenoids<br />

for<br />

recording<br />

and<br />

playback.<br />

The Yamaha Disklavier is an acoustic<br />

piano which also functions as a MIDI<br />

controller and player piano.<br />

pictures from Yamaha Corporation of America


Return to MIDI Controllers Menu<br />

The Yamaha MIDI Grand is the ultimate MIDI<br />

controller.<br />

It gives the performer the feel and<br />

sound of a <strong>gr</strong>and piano with the<br />

control of multiple MIDI devices.<br />

pictures from Yamaha Corporation of America<br />

The following files are QuickTime Movie clips of concert footage that incorporates a Yamaha MIDI<br />

Grand Piano in a few compositions. The performances were presented by the faculty and students of the<br />

Electronic Music Class at Santa Barbara Community College in Santa Barbara, California.<br />

Excerpt from: Animus Vivére (Will to<br />

Live) by Peter Raschke<br />

Music for Vocal Chant, MIDI Grand<br />

Piano, Synthesizer, and Percussion<br />

Ensemble.<br />

Text is from "The Liturgy of the Hours".<br />

Performance from Santa Barbara City<br />

College Sonic Sequences Concert, May 26, Excerpt from: Animus<br />

1995.<br />

Vivére QTM (6.8MB)<br />

@1995 Copyright Protected<br />

Excerpt from: Tone Poem<br />

Mov.I QTM (9.7MB)<br />

Excerpt from: Tone Poem<br />

Mov.II QTM (9.2MB)<br />

Excerpts from: Tone Poem by Peter<br />

Raschke<br />

[ Spiritual - Mystical - Enchanted -<br />

Tempestuous ]<br />

Music for MIDI Grand Piano,<br />

Synthesizer, Timpani, Wind Chimes,<br />

Cymbals, Gong and Tubular Chimes.<br />

Performance from Santa Barbara City<br />

College Sonic Sequences Concert,<br />

December 17, 1993. @1993 Copyright<br />

Protected


Excerpt from: Building Blocks by Peter<br />

Raschke<br />

Music for Soprano Saxophone, two<br />

Flutes, MIDI Grand Piano, Synthesizer,<br />

and Timpani.<br />

Performance from Santa Barbara City<br />

College Sonic Sequences Concert, May<br />

28, 1993.<br />

Performance from Santa Barbara City<br />

College Faculty Concert, October 24,<br />

1993.<br />

@1993 Copyright Protected<br />

Excerpt from: Building<br />

Blocks QTM (11.7MB)<br />

General MIDI is an addition to the original MIDI specification. It follows a standard that assigns 128<br />

instrument sounds that are assigned to specific numbers. There are sixteen specific families or types of<br />

instruments and eight instruments within each <strong>gr</strong>oup. A separate <strong>gr</strong>oup of percussion sounds is usually<br />

available on MIDI channel ten, and they are assigned to specific notes on a MIDI keyboard.<br />

Piano Bass Reed Synth F/X<br />

Chromatic Perc. Strings Pipe Ethnic<br />

Organ Ensemble Synth Lead Percussive<br />

Guitar Brass Synth Pad Sound F/X<br />

Any MIDI device that conforms to the General MIDI Standard will assign each instrument to a specific<br />

number and will allocate at least a 24 note polyphonic capability. The General MIDI Standard was created<br />

so that generic Standard MIDI Files created on a sequencer or notation application may be played back<br />

on another device while preserving the inte<strong>gr</strong>ity of the original selection.<br />

This Standard has also been inte<strong>gr</strong>ated into the Quick-Time Movie format in the form of the <strong>Musical</strong><br />

<strong>Instrument</strong>s Extension. This pro<strong>gr</strong>am allows the tracks from a Standard MIDI File to be loaded as a<br />

Quick-Time movie that may be played back without a MIDI module. Plug-ins on a web browser will use<br />

the same extension to play MIDI files on the web. Quick-Time 3.0 now supports all 128 voices. Listed<br />

below is the complete list of the General MIDI <strong>Instrument</strong>s. Some of the voices below are pro<strong>gr</strong>ammed to<br />

play a MIDI file with the selected sound by pressing on the link.<br />

1.Acoustic Piano<br />

General MIDI <strong>Instrument</strong> List<br />

Piano return to the top<br />

2.BrtAcou Piano 3.ElecGrand Piano 4.Honky Tonk Piano<br />

5.Elec.Piano 1 6.Elec.Piano 2 7.Harsichord 8.Clavichord<br />

Chromatic Percussion return to the top<br />

9.Celesta 10.Glockenspiel 11.Music Box 12.Vibraphone


13.Marimba 14.Xylophone 15.Tubular Bells 16.Dulcimer<br />

Organ return to the top<br />

17.Drawbar Organ 18.Perc. Organ 19.Rock Organ 20.Church Organ<br />

21.Reed Organ 22.Accordian 23.Harmonica 24.Tango Accordian<br />

Guitar return to the top<br />

25.Acoustic Guitar 26.SteelAcous. Guitar 27.El.Jazz Guitar 28.Electric Guitar<br />

29.El. Muted Guitar 30.Overdriven Guitar 31.Distortion Guitar 32.Guitar Harmonic<br />

Bass return to the top<br />

33.Acoustic Bass 34.El.Bass Finger 35.El.Bass Pick 36.Fretless Bass<br />

37.Slap Bass 1 38.Slap Bass 2 39.Synth Bass 1 40.Synth Bass 2<br />

41.Violin<br />

Strings return to the top<br />

45.Tremelo Strings<br />

42. Viola 43.Cello 44.Contra Bass<br />

46.Pizz. Strings<br />

47.Orch. Strings 48.Timpani<br />

Ensemble return to the top<br />

49.String Ens.1 50.String Ens.2 51.Synth.Strings 1 52.Synth.Strings 2<br />

53.Choir Aahs 54. Voice Oohs 55. Synth Voice 56.Orchestra Hit<br />

Brass return to the top<br />

57.Trumpet 58.Trombone 59.Tuba 60.Muted Trumpet<br />

61.French Horn 62.Brass Section 63.Synth Brass 1 64.Synth Brass 2<br />

Reed return to the top<br />

65.Soprano Sax 66.Alto Sax 67.Tenor Sax 68.Baritone Sax<br />

69. Oboe 70.English Horn 71.Bassoon<br />

72.Clarinet<br />

Pipe return to the top<br />

73.Piccolo 74.Flute 75.Recorder 76.Pan Flute<br />

77.Blown Bottle 78.Shakuhachi 79.Whistle 80.Ocarina<br />

Synth Lead return to the top<br />

81.Lead1 Square 82.Lead2 Sawtooth 83.Lead3 Calliope 84.Lead4 Chiff<br />

85.Lead5 Charang 86.Lead6 Voice 87.Lead7 Fifths 88.Lead8 Bass Ld<br />

Synth Pad return to the top<br />

89.Pad1 New Age<br />

90.Pad2 Warm 91.Pad3 Polysynth 92.Pad4 Choir<br />

93.Pad5 Bowed 94.Pad6 Metallic 95.Pad7 Halo 96.Pad8 Sweep<br />

Synth F/X return to the top<br />

97.FX1 Rain 98.FX2 Soundtrack 99.FX3 Crystal 100.FX4 Atmosphere<br />

101.FX5 Brightness 102.FX6 Goblins 103.FX7 Echoes 104.FX8 Sci-Fi


105.Sitar<br />

Ethnic return to the top<br />

106.Banjo 107.Shamisen 108.Koto<br />

109.Kalimba 110. Bagpipe 111. Fiddle 112. Shanai<br />

Percussive return to the top<br />

113.TinkerBell 114.Agogo 115.SteelDrums 116.Woodblock<br />

117.TaikoDrum 118.Melodic Tom 119.SynthDrum 120.Reverse Cymbal<br />

Sound F/X return to the top<br />

121.Guitar Fret Noise 122. Breath Noise 123.Seashore 124.BirdTweet<br />

125.Telephone 126.Helicopter 127.Applause 128.Gunshot<br />

Standard MIDI File is the protocol that is used to transfer MIDI information from one type of device to<br />

another. A MIDI sequencer file could be transferred to another sequencer or to a notation pro<strong>gr</strong>am. In the<br />

example below a MIDI sequence file is converted to a Standard MIDI file and then imported into a<br />

notation pro<strong>gr</strong>am.<br />

This standard was added to the MIDI specification in 1988. It is a universal language that saves all MIDI<br />

notes, velocities, and controller codes as a generic file that may be interpreted by any pro<strong>gr</strong>am that<br />

supports the Standard MIDI File. In music applications that support Standard MIDI Files, the user may<br />

access and create Standard MIDI Files with the import and export commands. Standard MIDI files have<br />

the extension .mid added to the end of the document name.


There are three types of Standard MIDI Files, that include:<br />

• Type 0 - which combines all the tracks or staves in to a single track.<br />

• Type 1 - saves the files as separate tracks or staves for a complete score with the tempo and time<br />

signature information only included in the first track.<br />

• Type 2 - saves the file as separate tracks or staves and also includes the tempo and time signatures<br />

for each track.<br />

The internet is an excellent source for Standard MIDI Files. Because the files are MIDI information, they<br />

are usually fairly compact is size and they may also be compressed before they are sent over the internet. I<br />

have listed a few sites that have Standard MIDI Files available for the user. Please use the comment area<br />

in Pro<strong>gr</strong>am Information and Comments page for more sources that should be added to this page.<br />

Links to some sites that have Standard MIDI Files available on the WWW<br />

• Classical MIDI Archives<br />

• The Internet Piano Page<br />

• Monster MIDI Links<br />

• Twin Cities MIDI Home Page<br />

• Harmony Central<br />

• MIDI File Central<br />

• Abundant Legal MIDI Files<br />

• The MIDI Farm<br />

• The Ultimate TV & Movie MIDI Page<br />

• The Music Room<br />

• The Cool Crescendo Site of the Day<br />

• My Mega Midi Archive<br />

• Complete MIDI File Directory<br />

• Standard MIDI Files on the Net<br />

Once you have downloaded some MIDI files, they may be played back with any sequencer or music<br />

notation software. Usually you have to use the Import command to bring up the MIDI File on you<br />

computer pro<strong>gr</strong>am. If you are interested in playing MIDI Files on a Web site, go to Using MIDI on a Web<br />

Site for more information on MIDI Files and MIDI Plug-ins.


Over the past few years the use of MIDI on the internet has gone through many changes. To make things<br />

even more complicated, all browsers do not process MIDI files the same way. There are different HTML<br />

tags that are needed for specific browsers. For an overview of a brief history of the use of MIDI options on<br />

a web site, I recommend "MIDI Options for Web Authors", at the Crescendo web site. Currently, the best<br />

support for playing MIDI files over the internet is to use a plug-in. There are many different companies<br />

that have created plug-ins and I am not recommending any specific plug-in.Currently this page is using the<br />

html embed tag that brings up a Quicktime movie file. The Quicktime movie file is a MIDI file that is<br />

saved as a movie file with the (.mov) extension.<br />

On the Standard MIDI Files page is a list of recommended web sites that have MIDI files. Some of the<br />

sites have links to more MIDI file sites and by no means does this list cover all MIDI files on the web. A<br />

MIDI file will contain note and performance information as well as instructions for the type of sound for<br />

each track of the MIDI file. The actual sound is not included in the MIDI file, instead a pro<strong>gr</strong>am change<br />

recommending a certain type of sound in the General MIDI format. If your browser is set up properly with<br />

a MIDI enhanced plug-in, then the sounds that you are hearing on this web site are from your computer.<br />

Below are examples of "Solfeggio", by Carl Philipp Emanuel Bach . Each MIDI file is exactly the same in<br />

notes and performance instructions. The only event that is different is the pro<strong>gr</strong>am change to play various<br />

sounds from your computer.<br />

Solfeggio, with piano<br />

Solfeggio, with<br />

Harpsichord<br />

Solfeggio, with sitar<br />

Solfeggio, with<br />

Orchestral Harp<br />

Here are examples of a "Walt in Ab" by Johannes Brahms, first with a piano sound and then with a<br />

vibraphone sound.<br />

Waltz in Ab with piano.<br />

Waltz in Ab, with a vibraphone<br />

sound.<br />

Finally, the Prelude in e minor by Frederic Chopin played as the original solo piano composition. A<br />

synthesizer voice is used in the MIDI file immediately below and the two arrangements on the right take<br />

the upper piano voice and double the part with one of the following instruments.<br />

Prelude in e minor, solo piano<br />

Prelude in e minor, synth piano<br />

version<br />

Prelude in e minor, piano with<br />

violin<br />

Prelude in e minor, piano with<br />

clarinet<br />

The sound quality of these MIDI Files is limited by the sound set-up that you have on your computer.<br />

Transferring the MIDI Files to a sequencer and a favorite synthesizer may enhance the sound quality. The<br />

purpose of this exercise is to show you the possibilities of using MIDI Files on a web page. The nice thing<br />

about MIDI Files is that they take up very little memory in the computer and they download relatively fast<br />

compared to digital sound files (Audio vs. MIDI Files).<br />

Plug-ins, such as QuickTime Movie(MoviePlayer) from Apple, LiveAudio by Netscape, Beatnik by<br />

Headspace, Crescendo Plus by LiveUpdate, MacZilla by Knowledge Engineering and MIDIPLUG, by<br />

Yamaha are located at Netscape Products for free downloads.


On this page we will look at computer software applications that use MIDI. This page in no way<br />

encompasses the vast use of MIDI in computer pro<strong>gr</strong>ams. Included are examples of some pro<strong>gr</strong>ams that<br />

demonstrate the wide variety of uses with the MIDI specification. Different types of software include:<br />

Sequencers Music Patch Editors and Librarians<br />

<strong>Digital</strong> Audio with MIDI<br />

Object-Oriented Pro<strong>gr</strong>amming<br />

sequencers<br />

Music Notation MIDI in Multimedia Applications<br />

Computer Aided Instruction for<br />

Music<br />

Sequencers<br />

When you first glance at an interface of a MIDI sequencer, it has the<br />

similar look of a tape recorder. You have the typical transport controls as<br />

well as tracks of music information. The big difference is the actual<br />

information that is recorded. With an analog tape recorder the acoustic<br />

waveform is recorded on a magnetic tape. With a digital tape recorder<br />

digital numbers are recorded to represent the acoustic signal. A MIDI<br />

sequencer records MIDI events. There are MIDI sequencers that also<br />

have the capability of recording digital audio and they will be discussed<br />

later.<br />

The dia<strong>gr</strong>am below displays eight MIDI tracks of information with each<br />

track sending notes, pro<strong>gr</strong>am changes, controller parameters to the<br />

individual instruments. The sequencer does not playback the actual<br />

sounds, but sends MIDI information to the synthesizers that generate the<br />

sounds. Once the MIDI information is stored in a sequencer there are<br />

many ways to manipulate the data. The dia<strong>gr</strong>am below is an overview,<br />

but the user can get a more detailed look at the information by clicking on<br />

certain icons.


The picture to the right<br />

represent about ten<br />

measures of MIDI notes for<br />

one track. The analogy of a<br />

player piano roll is used in<br />

that the sequencer is<br />

sending note information to<br />

a synthesizer in the same<br />

way that a piano roll sends<br />

note information to the<br />

player piano. An attractive<br />

feature about a MIDI<br />

sequencer is that if the<br />

performance has a few<br />

mistakes the notes may be<br />

moved, made shorter or<br />

stretched instead of having<br />

to re-record the entire<br />

section.<br />

To the right is an<br />

example of an<br />

event listing of<br />

note information.<br />

Here the notes are<br />

listed with their<br />

location in each<br />

measure as well<br />

as position in<br />

absolute time.<br />

MIDI sequencers<br />

include timing<br />

information on<br />

the tempo of the<br />

composition.<br />

MIDI events may<br />

Another attractive feature of a<br />

MIDI sequencer is the ability to<br />

add control changes after the<br />

recording. In the example to the<br />

left the key velocity for each note<br />

is represented in a <strong>gr</strong>aph. The user<br />

may change the velocities with the<br />

stroke of a pencil using a mouse.<br />

Other control options include<br />

pro<strong>gr</strong>am changes, pitch bend,<br />

fader controls, modulation wheel,<br />

panning, and many more.<br />

Piano roll editing and <strong>gr</strong>aphic<br />

editing is one way to manipulate<br />

the MIDI data. It is possible to<br />

view the same information in<br />

notation form or in an event<br />

listing.


e recorded at a<br />

slow tempo and<br />

then played back<br />

at a faster speed.<br />

To get a better<br />

understanding of<br />

time and tempo<br />

features I<br />

recommend MIDI<br />

Timing Concepts<br />

Another important feature of MIDI<br />

sequencers is the input options.<br />

Advanced sequencers will give the<br />

user three options for inputting data.<br />

Real Time Recording - Incoming<br />

data is recorded as the performer<br />

plays on a MIDI controller.<br />

So far this<br />

demonstration<br />

has centered<br />

on Computer<br />

Based MIDI<br />

sequencers<br />

(right image).<br />

Other types of<br />

MIDI<br />

sequencers<br />

include:<br />

Step Time Recording - Allows<br />

the performer to input notes of<br />

events one step at a time from the<br />

controller, or with the computer<br />

keyboard or mouse.<br />

Loop Recording - Allows the<br />

user to decide on a specific<br />

amount of measures with a repeat<br />

mode to enter data. It is very<br />

similar to a drum machine tap<br />

mode.<br />

Dedicated<br />

Sequencers -<br />

are multitrack<br />

recorders of<br />

MIDI digital<br />

information.<br />

They are<br />

called<br />

dedicated<br />

because their<br />

only<br />

function is to record MIDI information. An excellent choice for a sequencer if<br />

you move your equipment around a lot for "gigs", and they usually cost less<br />

than a computer.<br />

Workstation, On Board Sequencers - Many work stations (synthesizers,<br />

drum machine, sequencer), now have small sequencers built in that allow<br />

multi-track recording of MIDI information.


eturn to the menu<br />

<strong>Digital</strong> Audio with MIDI sequencers<br />

A powerful<br />

combination is MIDI<br />

sequencing and digital<br />

audio. This allows the<br />

user to have MIDI<br />

files playing<br />

synthesizers in sync<br />

with digital audio<br />

tracks. The pro<strong>gr</strong>ams<br />

are more expensive<br />

than a MIDI sequencer<br />

and the computer need<br />

to have fast<br />

microprocessors as<br />

well as large amounts<br />

of memory to store the<br />

digital files.<br />

To the right and below<br />

are examples from the<br />

pro<strong>gr</strong>am ProTools by<br />

digidesign.<br />

Highlighted in yellow<br />

are digital audio tracks<br />

as well as MIDI tracks.


eturn to the menu<br />

Music Notation<br />

It was during the mid-<br />

1980's that music<br />

notation became<br />

accessible to anyone<br />

that had a computer<br />

and quality printer<br />

with the beginning of<br />

desktop music<br />

publishing. Laser<br />

Printers with<br />

PostScript music fonts<br />

are able to create highquality<br />

music<br />

manuscript.<br />

There is a wide range of<br />

notation pro<strong>gr</strong>ams<br />

available depending on<br />

the price range. Most<br />

pro<strong>gr</strong>ams allow the user<br />

to input data in step time<br />

or real time. Incoming<br />

data is recorded as the<br />

performer plays on a<br />

MIDI controller in Real<br />

Time Mode. Step Time<br />

Mode allows the<br />

performer to input notes<br />

of events one step at a<br />

time from the controller,<br />

or with the computer<br />

keyboard or mouse.<br />

There is usually a <strong>gr</strong>aphic interface that gives the user many options on<br />

note and rest values as well as musical marking symbols, text, musical<br />

expressions, etc.<br />

Files may be saved as a document file or exported as a Standard MIDI<br />

file that could then be read by another notation pro<strong>gr</strong>am or a MIDI<br />

sequencer pro<strong>gr</strong>am. Some pro<strong>gr</strong>ams will allow the user to create a full<br />

score of a composition as well as extracting the individual parts with<br />

transposition for individual instruments. The <strong>gr</strong>aphic interface is usually<br />

very intuitive and in little time a composition can appear as a<br />

professional copy.


eturn to the menu<br />

Computer Aided Instruction for Music<br />

Computer pro<strong>gr</strong>ams that involve music instruction have advanced to new levels in recent years. There are<br />

four main categories of software and the range is from the very beginning user to the advanced user. The<br />

categories include:<br />

Flexible Practice - works on music<br />

aural skills and music theory<br />

applications as well as<br />

performance skills. This type of<br />

pro<strong>gr</strong>am allows the student and<br />

teacher to customize the pro<strong>gr</strong>am<br />

by entering new material.<br />

Drill and Practice - work on music<br />

aural skills and music theory<br />

applications. The software is<br />

customized for specific tasks and<br />

instructional support but new<br />

material may not be added to the<br />

pro<strong>gr</strong>am.<br />

Simulation - exciting because they<br />

allow the user to interact with the<br />

computer pro<strong>gr</strong>am. The user may<br />

play practice a melody or<br />

improvise with an accompaniment<br />

pattern.<br />

Multimedia - offer a combination<br />

of sound, <strong>gr</strong>aphics, text, and<br />

hypertext in a learning<br />

environment. There are many<br />

pro<strong>gr</strong>ams available, but most of<br />

them do not use MIDI support.<br />

Most Web Browsers and some<br />

HyperCard pro<strong>gr</strong>ams do have<br />

MIDI support.<br />

The pro<strong>gr</strong>ams that are listed below have MIDI capabilities. There are many excellent CAI music pro<strong>gr</strong>ams<br />

that do not use MIDI, but they are not discussed on this page. I recommend the book Experiencing<br />

MUSIC TECHNOLOGY for a complete review of CAI music software pro<strong>gr</strong>ams.<br />

Flexible Practice<br />

Practica Musica is an in depth Flexible Practice pro<strong>gr</strong>am that teaches music<br />

theory and aural skills. When the software is connected with a MIDI<br />

interface the pro<strong>gr</strong>am becomes very powerful with input from a MIDI<br />

controller. If the user doe not want to use MIDI sounds the internal sounds<br />

in the pro<strong>gr</strong>am are also an excellent option. For a college level aural skills<br />

course an instructor may enter their own melodies with the an editor<br />

selection.


Simulation<br />

Vivace is simulation CAI music<br />

pro<strong>gr</strong>am that provides Intelligent<br />

Accompaniment for vocalists,<br />

winds and brass instruments.<br />

Vivace is an interactive system<br />

that is able to listen to and follow<br />

the musician by responding to the<br />

sound source through a<br />

microphone. As the musician plays<br />

or sings their melody line, Vivace<br />

will respond with an<br />

picture from Coda Music<br />

accompaniment that reacts<br />

musically to the soloist's tempo<br />

interpretations.<br />

The company Coda provides over 4,200 titles with a wide range of<br />

ability levels and a repertoire that includes selections from classical, jazz<br />

and current pop and rock tunes. This pro<strong>gr</strong>am has been very successful<br />

in educational pro<strong>gr</strong>ams from <strong>gr</strong>ade school through college. There are<br />

now band method accompaniments that offer an exciting new approach<br />

in encouraging the beginning student to practice their music lessons.<br />

Vivace is a way for a student to practice with an accompaniment that<br />

would not be available on a regular basis.<br />

Simulation<br />

Band in a Box is another simulation CAI music pro<strong>gr</strong>am that works as an<br />

accompaniment for the musician. The pro<strong>gr</strong>am allows the user to pro<strong>gr</strong>am<br />

in a wide variety of chords and rhythm style accompaniment. The<br />

accompaniment may range from the standard piano, bass, and drums to a<br />

more elaborate ensemble with guitar, strings, horns and a melody line. The<br />

keyboard above will display the piano accompaniment and the bass line.<br />

The user can adjust the tempo, transpose the key signature, and set up the<br />

song to repeat a specific number of times to rehearse a selection. This<br />

pro<strong>gr</strong>am is very helpful for the rehearsal of a jazz improvisation solo<br />

without the jazz band, saving valuable time in a jazz band rehearsal.<br />

return to the menu<br />

Music Patch Editors and Librarians<br />

The pro<strong>gr</strong>ams that are described here are applications that deal with MIDI. There are many Sound Editing<br />

Pro<strong>gr</strong>ams that work with digital audio sound files. Examples would include Sound Edit 16, Alchemy,


Sound Designer, and Pro Tools. These pro<strong>gr</strong>ams allow the user to manipulate sound file samples, but they<br />

do not use MIDI techniques to edit the sound file.<br />

Music Patch Editors work directly with the sound patches within a synthesizer. Patch editors are<br />

designed specifically for individual synthesizers because each company uses their own system exclusive<br />

information to create their pro<strong>gr</strong>ams. First the hexadecimal code F0 is used to identify the status byte of<br />

system exclusive. The status byte is followed by a data byte that identifies the manufacturer. All data bytes<br />

that follow pertain to MIDI information created by that particular manufacturer. At the end of the system<br />

exclusive message will be the hexadecimal code F7 end of exclusive command.<br />

Patch Editors allow the user to change the size of envelopes, types of filters, samples, waveforms, panning<br />

information, modulation effects and basically anything that changes the parameters of the patch. Each<br />

manufacturer uses different techniques to create sounds for the synthesizer so each Patch Editor must be<br />

designed for the specific synthesizer. Universal Patch Editors are pro<strong>gr</strong>ams that support many different<br />

MIDI devices. That way a user may by one pro<strong>gr</strong>am that will support their studio that has products from<br />

Roland, Yamaha, Korg or other manufactures.<br />

The example on the left is the Universal<br />

Patch Editor Galaxy. Here the user is able to<br />

make changes to the envelopes, original<br />

oscillators, filters and other effects.<br />

Image from the book Experiencing MUSIC<br />

TECHNOLOGY<br />

Patch Librarian software allows the user to organize their sounds, but<br />

they may not edit the sounds. Librarians are a <strong>gr</strong>eat way to create a bank<br />

of sounds for a specific composition or creating your top 64 or 128<br />

sounds.<br />

Sometimes a sound<br />

from one synthesizer<br />

may be layered with<br />

MIDI to another sound<br />

in a different<br />

synthesizer to create a<br />

new combined sound.<br />

The librarian will<br />

allow the user to move<br />

patches so the<br />

combination is on the<br />

same number.<br />

return to the menu<br />

Image from the book<br />

Experiencing MUSIC<br />

TECHNOLOGY


The computer pro<strong>gr</strong>am<br />

Max allows the musician to<br />

use a <strong>gr</strong>aphical<br />

environment to represent<br />

musical events. This<br />

pro<strong>gr</strong>am allows the user to<br />

manipulate and control<br />

MIDI events in new ways<br />

that are not limited by the<br />

conventions of a music<br />

sequencer or notation<br />

software.<br />

The pro<strong>gr</strong>am can send<br />

MIDI event information to<br />

synthesizers as well as<br />

performance event<br />

information to a compact<br />

disc or CD-ROM.<br />

Object-Oriented Pro<strong>gr</strong>amming<br />

Max creates a flexible design of<br />

manipulating any type of MIDI<br />

event in a random or structured<br />

order. You may send commands<br />

to a synthesizer, or create a<br />

system exclusive parameter<br />

change in a sound patch. Any<br />

type of MIDI event may be<br />

altered or changed with the<br />

pro<strong>gr</strong>am. Max is an excellent<br />

composition tool as well as an<br />

excellent source for music<br />

instruction. Go to Understanding<br />

Decimal Binary & Hexadecimal,<br />

or The MIDI Language to see<br />

examples of Max using MIDI<br />

data.<br />

return to the menu


MIDI in Multimedia Applications<br />

MIDI takes up less space than digital audio files which makes it a valuable option in many Multimedia<br />

pro<strong>gr</strong>ams. Some pro<strong>gr</strong>ams use a combination of MIDI and digital audio files. MIDI may be used in the<br />

HyperCard and SuperCard pro<strong>gr</strong>ams. It may be imported into the audio tracks of a QuickTime Movie and<br />

sophisticated Multimedia pro<strong>gr</strong>am like Director may use MIDI files as well as sound files. The new<br />

internet browsers have plug-in capabilities that allow MIDI files to played over a web site (see Using<br />

MIDI on a Web Site).<br />

Sometimes, this subject is a little confusing because both formats are referred to as digital information.<br />

This page will try to explain the content of both signals and clear up some misconceptions about the two<br />

formats.<br />

• <strong>Digital</strong> Signal<br />

Files<br />

• Computation of <strong>Digital</strong><br />

Signals<br />

<strong>Digital</strong> Signals<br />

• MIDI Files<br />

First let us start by describing an analog signal. The word analog implies a resemblance or similar<br />

comparison of one thing representing another. An analog signal is a transformation of an acoustic signal,<br />

movement of molecules in a medium such as air, to a voltage signal that travels down an electrical wire.<br />

The voltage in the wire is an analog or representation of the acoustic signal. A typical set-up may be a<br />

musical instrument that creates a tone. This tone energy creates a disturbance in the air particles by<br />

pushing air molecules that condense and cause a rarefaction of the air when it returns. This movement is<br />

happening at a fast rate that equals the initial source of the soundwave. This tone is then received by a<br />

microphone that has a sensitive diaphragm that responds to the movement of air. At this point we use a<br />

term called transducer, because the energy is converted from an acoustic signal to an electrical signal than<br />

represents the same waveform. This voltage signal is then carried down a wire to an amplifier, where the<br />

signal is amplified and then sent down another wire to a loudspeaker, which transforms the signal back to<br />

acoustic energy that is received by the auditory system.<br />

Another example of analog signals are the use of the older modular type synthesizers that use voltage to<br />

carry the musical signal down a wire. Alterations to the signal, such as filters, ring modulators, simple<br />

frequency modulation, sample and hold are modifiers that are used to alter the analog signal.<br />

In the digital world, numbers are used to represent a digital waveform. An audio signal is represented in<br />

digital memory with a binary code that stores a massive amount of numbers that are used to represent a<br />

signal. An ADC (Analog to <strong>Digital</strong> Converter) is a computer chip that is used to convert an analog signal


into digital information. This process is called sampling and has changed the world of sound in a dramatic<br />

fashion.<br />

Once the signal is represented as binary numbers, it may be manipulated with processes like combining<br />

sounds, splicing, truncation, looping, and reversing a sound and other digital signal processing. The signal<br />

is then converted back to an analog signal through a DAC (<strong>Digital</strong> to Analog Converter).<br />

In order to sample a sound event we must understand the process that is used to convert the acoustic<br />

waveform to a digital sample.<br />

The user has to determine the sampling period or rate and must also decide on the bit resolution. Let's use<br />

a time period of one second for a sample. During that second of time, the sampling rate determines the<br />

number of samples that will be taken during that one second. The bit resolution determines where to<br />

represent the signal during that discrete moment in time. If the resolution is at 16 bits, then there would be<br />

65536 locations to represent the waveform at each given sample. That would be a range from -32768 to 0<br />

to 32767. If the resolution is 8 bits, there would be 256 possible locations. The term quantizing is when<br />

the actual sample is shifted to one of the bit locations that best represents the signal at that discrete<br />

moment in time. If we changed the sampling rate, the period of time or space between each sample is<br />

changed. In the dia<strong>gr</strong>am below are four examples of different quantization and sampling rates.


Different Quantization and Sampling Rates<br />

In dia<strong>gr</strong>am (A) and (B) the sampling rate is the same, but the quantization resolution is better in dia<strong>gr</strong>am<br />

(B). In dia<strong>gr</strong>am (C) & (D), the sampling rate has been doubled and the bit resolution has been increased in<br />

dia<strong>gr</strong>am (D). What a dramatic difference the sampling rate and bit resolution can make on recreating an<br />

acoustic waveform.<br />

The Nyquist Theorem determines that the bandwidth of any digital sampling length will always be onehalf<br />

of the sampling rate. This means that a sample taken at a rate of 44k would have 22k (22,000)<br />

pictures or snap shots of the waveform in one second of time. A higher rate will have more samples per<br />

second and will also take up more computer memory. The Nyquist Frequency is the frequency of the<br />

highest component of a sound and the Nyquist Rate is twice the Nyquist Frequency.<br />

More computer memory is also used when the bit resolution is higher (16 bits to represent a number<br />

verses 8 bits). Computer memory and the content that is being sampled will determine the sampling rate<br />

and bit resolution to use. For example, sounds that do not have a high frequency content could be sampled<br />

at a lower rate and still imitate most of the same fidelity as the original sound.<br />

It is important that the signal that is being sampled does not have frequencies above the Nyquist<br />

Frequency. Every time that a sample is made, there is also duplicates of the signal that are also created that<br />

are called Folding Components.


When a sample goes beyond the sampling rate, the duplicate of the signal crosses over into the sampling<br />

range and is considered the Folding Frequency. We use the term aliasing to describe the folding<br />

frequencies which are doubles of the frequencies. In the sampling process filters are used before the ADC<br />

to make sure that the folding frequency will not happen when the signal is sampled.<br />

In digital sampling, the number<br />

of bits per sample also determines<br />

the signal to noise ratio. The<br />

signal to noise ratio depends on<br />

how loud the signal is. The<br />

following ratio is used to<br />

determine the decibel ratio.<br />

Return to Audio vs. MIDI Menu<br />

dB = 20 log 2 N / 1 or 2 N - 1 /<br />

0.5<br />

# Bits dB<br />

2 12<br />

4 24<br />

8 48<br />

12 72<br />

16 96<br />

24 144<br />

Computation of <strong>Digital</strong> Signals<br />

Clearly, digital sampling is a very complicated concept<br />

and in order to truly capture an acoustic waveform, a<br />

quality sample will need a large amount of computer<br />

memory. Use the following formula to get a better idea<br />

of how large the file size is of a sampled audio sound.<br />

(# seconds) * (# channels) * (sampling rate) * (bit resolution) / 8 =<br />

file size<br />

Take the number of seconds and times it by the number of channels (mono or stereo). Times that by the<br />

sampling rate and the bit resolution. Then divide the total by eight to get the file size.<br />

Example 1- Sampling a four second sound of a speaking voice.<br />

Because the voice is in the lower range of the audio spectrum we could sample the sound at 11kHz with<br />

one mono channel and 8 bit resolution.<br />

(4 secs.) * (1 chan.) * (11kHz) * (8 bits) / 8 = 44k<br />

Example 2 - Sampling a four second sound of a musical selection.<br />

First we need to change the sampling rate to 44kHZ to capture the spectrum of the complex musical sound<br />

and we will record a stereo sample with 16 bit resolution.<br />

(4 secs.) * (2 chan.) * (44kHz) * (16 bits) / 8 = 704k<br />

Both examples are four seconds of sound, but the final output is very different in size (44k vs. 704k). If<br />

we tried to take example 2 and record a minutes worth of sound, the sound file would expand to 10,560k<br />

or 10.6megabytes, while a minutes worth of sound from example 1 would be 660k. Both examples are<br />

one minute long, but the difference in the size of the files is 9900k or 9.9 megabytes.<br />

Return to Audio vs. MIDI Menu


MIDI Files<br />

It is important to understand that MIDI contains performance data or instructions for creating music. The<br />

actual analog audio signal or digital audio signal, are not moving through a MIDI cable.<br />

The type of performance data that is communicated by MIDI includes:<br />

1. turning on and off notes<br />

2. expressing the velocity of each note<br />

3. sending pro<strong>gr</strong>am changes<br />

4. use of the sustain pedal and other controller, such as pitch bend or modulation wheel<br />

5. timing relationships of all MIDI notes and events<br />

6. for others, go to Types of Data Transmitted through MIDI page<br />

If we look at the hexadecimal and binary code of a MIDI file, we will discover that the amount of<br />

information is drastically reduced in comparison with a digital audio file. A one second digital audio file<br />

may be around 700k, while a one second MIDI file might contain 1 to 3k of information. With MIDI we<br />

are not recording or sampling the actual note. Instead, we are sending information to turn on a MIDI<br />

devices sound. Go to the MIDI Language for more detail.<br />

Return to Audio vs. MIDI Menu<br />

Explanation of Absolute and Examples of MIDI Time Code in a<br />

Relative Time<br />

Sequence<br />

MIDI Timing Clock Studio design using SMPTE/MIDI<br />

Time Code<br />

Different types of Time Code Related Terms<br />

• SMPTE Time Code<br />

• MIDI Time Code<br />

The first concept that needs to be understood is the difference between absolute and relative time. MIDI<br />

Time Code and SMPTE Time Code are representations of absolute time in that they follow hours, minutes<br />

and seconds just like your watch. Absolute time is always the same and you cannot speed it up or slow it<br />

down. Relative time is a reference to a musical piece that has an inner tempo. A composition may take<br />

three minutes to perform at a tempo of 80 bpm (beats per minute), but would take only a minute and a half<br />

if the tempo was increased to 160 bpm. An advanced MIDI sequencer is able to work with both absolute<br />

time and relative time and make adjustments when there are changes in the relative time of a composition.<br />

In the chart below the upper line represents absolute time and includes an example of 17 seconds of time.<br />

Both MIDI Time Code and SMPTE Time Code may be used to represent absolute time which is fixed and<br />

may not be moved. Following the absolute time line are examples of repeated quarter notes at 3 different<br />

tempos (relative time). Notice that 2 measures have passed at 4 seconds with a tempo of 120 bps, but it<br />

would take 8 seconds for the same two measures at a tempo of 60 bpm and 16 seconds for the same two


measures at a tempo of 30 bpm.<br />

return to the menu<br />

MIDI Timing Clock (MIDI Sync) is a status byte (F8) that is sent 24 times per quarter note for note<br />

resolution. Advanced sequencers will also subdivided each MIDI clock twenty times for a resolution of<br />

480 times per quarter note. Standard - 24 PPQ. Professional - 480 PPQ. If the tempo changes, the speed of<br />

the MIDI Timing Clock will pass at a faster rate, but the number of status bytes (F8) per quarter note will<br />

stay the same.<br />

An F8 status byte is a system real time message that is<br />

used in a MIDI sequence to connect all the different<br />

rhythm values. The image above is a simple sequence<br />

consisting of quarter notes in the 1st measure, half notes<br />

in the 2nd measure, a whole note in the 3rd measure,<br />

followed by eighth-notes and sixteenth notes in the 4th<br />

and 5th measure, and finally a whole note in the last<br />

measure.<br />

To the left is a <strong>gr</strong>aph depicting the same information in an<br />

event listing. Notice that the first number represents the<br />

measure, followed by the beat and finally the F8 timing<br />

clock resolution. In the first three measures each note<br />

starts exactly on the beat which corresponds to a timing<br />

clock reference of 0. Notice at the 4th measure that the<br />

timing clock has changed to values of 240. Remember<br />

that 480 times is the total for each quarter note and the<br />

240 value is an eight note. In measure 5, the value<br />

changes to 120 which now represents the sixteenth note.<br />

If the tempo of this sequence was changed to a different<br />

number, the numbers and values on these two charts


would not change. What would change is the location of<br />

the notes in respect to absolute time. The value of the new<br />

tempo would map out a new chart for placement along<br />

the MIDI Time Code.<br />

Now we will look at what MIDI Time Code and SMPTE<br />

Time Code have in common (absolute time) and how it is<br />

used in conjunction with MIDI Timing Clock (relative<br />

time).<br />

return to the menu<br />

A Time Code is an electrical or digital signal that gives a common timing reference for syncing MIDI<br />

devices with other electronic devices. The evolution of timing references has changed dramatically since<br />

the beginning of MIDI, from the use of click track, PPQ Clocks, FSK Clocks, to the more sophisticated<br />

use of SMPTE Time Code and MIDI Time Code.<br />

SMPTE Time Code (Society of Motion Picture and Television Engineers) Was originally developed<br />

by NASA to sync computers together. SMPTE is a digitally encoded labeling system that strips a tape<br />

with an exact timing reference. It is a 1200 Hz modulated square wave that uses a biphase modulation to<br />

encode the signal on a tape. SMPTE is used to sync video with music, audio and sound effects. It may be<br />

used with a multi-track tape recorder and a synchronizer to sync a MIDI sequence with the tape or to sync<br />

two multi-track tape recorders. It is important to remember that a SMPTE Time Code signal is made up of<br />

digital words that contain 80 bits. These bits are used to represent the type of SMPTE signal, the actual<br />

location which includes hours, minutes, seconds, and frames, as well as user bits for dates and reel<br />

numbers. This digital number is converted to an audio tone so that it may be recorded on to an analog<br />

tape.<br />

There are two different ways to record a SMPTE Time Code on to a tape. LTC Time Code<br />

(Longitudinal Time Code) is SMPTE Time Code encoded on one of the audio tracks or in-between the<br />

audio tracks of a video tape. This type of time code needs to be running in order to be read. A window<br />

burn is used on a working copy of a tape with LTC in order to address the code in slow or paused position.<br />

VITC Time Code (Vertical Interval Time Code) is SMPTE Time Code encoded on the Video signal in<br />

the Interval between frames. This allows for the use of SMPTE at very slow speeds without the need of a<br />

window burn or the loss of an audio track.<br />

There are four different SMPTE formats in the standard. Each format refers to the number of frames per<br />

second. In film there are 24 frames which corresponds to the number of pictures per second. In European<br />

film and video the number of frames per second is 25. In the United States the original black and white<br />

TV pro<strong>gr</strong>ams ran at exactly 30 frames per second. This changed with the advent of color to run at 29.97<br />

frames per second. In order to compensate for this discrepancy, there is a SMPTE format called "drop<br />

frame" at 30 frames per second. There are exactly 30 frames for every second, except two frames are<br />

dropped at the beginning of every minute, except at minutes 0, 10, 20, 30, 40 and 50. A total of 108


frames are dropped for each minute to adjust to the 29.97 frames per second. The standard that is used for<br />

most applications is "30 drop frame" and listed below are some examples.<br />

The number to the right<br />

represents 23 hours, 59<br />

minutes, 59 seconds, 29<br />

frames, and 79 bits. By<br />

adding one more bit to<br />

this number would<br />

change the number to 24<br />

hours.<br />

The number to the left<br />

represents a specific<br />

moment in time. The<br />

number represents 1 hour,<br />

6 minutes, 12 seconds, 9<br />

frames and 6 bits. There<br />

are 80 bits for every<br />

frame.<br />

When MIDI was invented there was no specific data for synchronizing with SMPTE Time Code. If a<br />

musician was trying to use MIDI sequences to synchronize with a video tape they needed a sync device.<br />

Song Position Pointer is a System Common status byte F2, that is generated every six MIDI clocks. It is<br />

used as a reference to find a location in a song by counting the Song Position Pointer total and diving by<br />

16 (4 per quarter note in a 4/4 time signature) to find the measure. A Tempo Map is used by a sequencer<br />

to change tempo at certain locations in a sequence. In order to synchronize with Song Position Pointer, a<br />

sync device is used to decide tempo and tempo changes in a song and the amount of measures in a song,<br />

using SPP and tempo map. The sync device can then figure out the amount of SMPTE time that passes at<br />

certain "hits". This was a very complicated way of synchronizing a MIDI sequence to a video tape, so in<br />

1987, MIDI Time Code, was added to the MIDI specification in order to have a direct link of MIDI with<br />

SMPTE Time Code.<br />

return to the menu<br />

MIDI Time Code is a digital conversion of the SMPTE Time Code that allows MIDI devices to lock to<br />

the SMPTE Time Code in real time. Every frame of the SMPTE Time Code is broken down into 4 frames<br />

of MIDI Time Code with an average of 120 times a second. There are System Common Quarter - Frame<br />

messages which are used when the system is running and System Exclusive Full Messages to address any<br />

location.<br />

MIDI Time Code Quarter Frame Messages (QFM) are used when a system is running. It takes a total<br />

of 8 QFM to address one SMPTE Frame. That means that SMPTE is updated every two frames. Each<br />

QFM starts with the F1 Status byte, followed by a Data byte were the first nibble will be 0 through 7<br />

followed by a nibble that is the actual number.<br />

F1 - MIDI Time Code Quarter Frame Address - Status<br />

Byte<br />

nx - Data Byte


n= First nibble - 0 - Frame count LS nibble<br />

n= First nibble - 1 - Frame count MS nibble<br />

n= First nibble - 2 - Seconds count LS nibble<br />

n= First nibble - 3 - Seconds count MS nibble<br />

n= First nibble - 4 - Minutes count LS nibble<br />

n= First nibble - 5 - Minutes count MS nibble<br />

n= First nibble - 6 - Hours count LS nibble<br />

n= First nibble - 7 - Hours count MS nibble and SMPTE<br />

Type<br />

x= Second nibble - Actual number of the Time Code 0<br />

through 9<br />

The<br />

relationship<br />

between the<br />

SMPTE time<br />

code numbers<br />

and MIDI time<br />

code quarter<br />

frame message<br />

is listed in the<br />

example below.<br />

0 1 1 6 2 5 1 2<br />

F1<br />

70<br />

F1<br />

61<br />

F1<br />

51<br />

F1<br />

46<br />

Example of MIDI Time Code in a MIDI Sequencer<br />

In the example to the right<br />

are red arrows pointing to<br />

specific MIDI time code data<br />

in a sequencer track. The<br />

upper right arrow is pointing<br />

to a specific absolute time<br />

number of 1 hour, 3 minutes,<br />

7 seconds and 8 frames.<br />

Below this arrow is an arrow<br />

pointing to the music that is<br />

being played at this location.<br />

The arrow on the left is<br />

pointing to an offset number.<br />

Offset is a way of setting the<br />

MTC time at a certain<br />

number to begin a sequence<br />

or cue.<br />

F1<br />

32<br />

F1<br />

25<br />

F1<br />

11<br />

F1<br />

02


There are red<br />

arrows in the<br />

dia<strong>gr</strong>am to the<br />

right that are<br />

locating a<br />

highlighted<br />

note in this<br />

MIDI<br />

sequence at<br />

measure 5,<br />

beat 2. The<br />

tempo for this<br />

sequence is set<br />

at 220 bpm<br />

and the time<br />

code (upper<br />

right arrow<br />

indicates that<br />

the note will<br />

start at 4<br />

seconds, 19<br />

frames and 74<br />

Here is an event listing of the<br />

notes and the arrows are<br />

pointing to an exact moment in<br />

time. In the top arrows the note<br />

D2 is played in measure 39,<br />

beat 1, with a MIDI clock<br />

resolution of 70. This note<br />

occurs at 1 hour, 1 minute, 22<br />

seconds, 6 frames and 51 bit<br />

resolution.<br />

In the lower arrows the note C2<br />

is played in measure 48, beat 1,<br />

with a MIDI clock resolution of<br />

220. The time reference of this<br />

note is 1 hour, 1 minute, 38<br />

seconds, 29 frames, and 34 bit<br />

resolution.<br />

It is important to remember that<br />

if the tempo of the music<br />

changed, the time code<br />

numbers would change, but the<br />

value and placement of the<br />

notes would stay the same. The<br />

next two example clearly show<br />

the relationship of the MIDI<br />

time code with the MIDI timing<br />

clock.


its and will<br />

end at 5<br />

seconds, 13<br />

frames and 79<br />

bits.<br />

This example is<br />

the exact same<br />

sequence as<br />

above with the<br />

tempo slowed<br />

down to 110<br />

bps. Again the<br />

same note at<br />

measure 5, beat 2<br />

is highlighted,<br />

but with the<br />

slower tempo the<br />

time code<br />

numbers have<br />

changed. The<br />

note will first<br />

start at 9<br />

seconds, 9<br />

frames and 66<br />

bits and end at<br />

10 seconds, 27<br />

frames and 78<br />

bits.<br />

The highlighted note would start 4 seconds, 19 frames, and 72 bits later in<br />

the second example with the tempo cut in half. The duration of the<br />

highlighted note in the second example would be for 1 second, 18 frames<br />

and 12 bits, while the duration of the highlighted note in the first example<br />

would only be 0 seconds, 24 frames and 5 bits. The use of MIDI Time<br />

Code in a sequencer allows the user to make changes with the tempo of a<br />

composition and all the timing information is automatically updated to<br />

follow the new tempo marking. With the use of MIDI Time Code to sync<br />

up to SMPTE Time Code, there is no need for a sync device and<br />

synchronization with Song Position Pointer<br />

This pro<strong>gr</strong>am, Exploring MIDI was<br />

designed and created by Peter J.<br />

Raschke.He is currently at Northwestern<br />

University pursuing a Ph.D. in Music<br />

Technology. He completed the Masters of<br />

Music Technology de<strong>gr</strong>ee in June, 1997.<br />

As a member of the Northwestern<br />

University School of Music Web design<br />

team, Mr. Raschke helped to create its<br />

Web pages.<br />

He has taught a multimedia software<br />

Email address is:<br />

raschke@northwestern.edu


development class, Web Authoring, and<br />

an Introductory to Technology class in the<br />

Music Technology pro<strong>gr</strong>am at<br />

Northwestern University, and he was an<br />

instructor and music laboratory technician<br />

at Santa Barbara City College prior to<br />

beginning his <strong>gr</strong>aduate studies. Web sites<br />

created by Peter Raschke are located at the<br />

Northwestern University School of Music<br />

projects Web page.<br />

Publications and Papers Music Theory Online, The Online Journal of<br />

the Society for Music Theory Volume 5, Number 2, March 1999.<br />

"Review of Music-Theory Web Sites for the Beginner."<br />

International Computer Music Conference, 1998, Paper Session, "Music<br />

Technology as a Tool for Exploring the Creative Aspects of Music."<br />

Other Web Sites created by Peter Raschke:<br />

An interactive music theory web site, "Score Scan," provides practice in<br />

reading the "tonal profile" of a music selection. Based on the 1989<br />

HyperCard document created by Northwestern music theory professor<br />

John Buccheri, the current version is a Java applet and Java application<br />

that was created by the collaborative efforts of Michael Overman and<br />

Peter Raschke.<br />

3D Sound at Northwestern University, is an educational site covering<br />

concepts and applications in 3-D Sound & Spatial Audio.<br />

Current Web site for the Introduction to Technology class at<br />

Northwestern University, School of Music. (Fall 1999)<br />

Web Authoring course in Multi Media Software Development at<br />

Northwestern University, School of Music.<br />

Collaborated on the Web site 3D Sound at Northwestern University, an<br />

educational site to help you learn more about 3-D Sound & Spatial<br />

Audio.<br />

The Web site, Gregorian Chant, Christmas Mass is a site for discovering<br />

the sounds of Gregorian Chant by listening to a recording of selections<br />

from the Proper and Ordinary of a Roman Catholic Mass.<br />

• Link to Home page<br />

• Philosophy of Music Education<br />

(paper based on using technology as a tool in Music Education)<br />

This web site, "Exploring MIDI" was recognized in the May 1999 issue of<br />

Electronic Musician, in the article "Music Sites for Web Surfers"and in the May<br />

1998 issue of Electronic Musician, in the article "Back to School Online." It is<br />

also mentioned in the latest edition of How MIDI Works, Alexander Publishing,<br />

and the 2nd Edition of Experiencing Music Techmology, Schirmer Books.


"Exploring MIDI" is<br />

included in the<br />

WannaLearn<br />

directory, a directory<br />

of the best free,<br />

family-safe, online<br />

tutorials, guides and<br />

instructionally<br />

oriented Websites on<br />

the Net!<br />

"Exploring MIDI"<br />

received the Golden<br />

Crane Creativity<br />

Award (GCCA). This<br />

award is given to<br />

sites that provide free<br />

instructional<br />

information in arts,<br />

crafts, music, and<br />

other creative<br />

activities.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!