The MIDI 1.0 protocol explained simply

What is MIDI?

MIDI stands for Musical Instrument Digital Interface. It’s a way for electronic musical instruments, computers, and other devices to communicate with each other. MIDI doesn’t send sound, but digital commands. These commands tell another device what note to play, how hard, how long, and with which effect.

You can think of MIDI like sheet music: it tells what to play, but doesn’t produce any sound itself. The sound comes from the device that receives and interprets the MIDI data.

For example, when you press a key on a MIDI keyboard, the keyboard sends a digital message. That message might go to a synthesizer or computer, which reads it and plays the right sound. MIDI has existed since the early 1980s and is still widely used to connect musical equipment.

MIDI signals and how they work

MIDI uses different types of signals (also called messages) to send musical information. Below are the most important types and what they do.

Note On / Note Off

A Note On signal tells the receiving device to start playing a note. This signal includes which note to play (for example, middle C) and how hard the key was pressed.

When you release the key, a Note Off signal is sent. This tells the device to stop playing the note. That way, the receiving device knows exactly when a note starts and ends.

Example: pressing middle C sends a Note On message for note number 60. When you let go, a Note Off message is sent for the same note.

Velocity (how hard the key is pressed)

Velocity means how hard or fast a key is pressed. MIDI measures this and sends a number between 0 and 127. This usually controls how loud the note sounds. A low number means soft, a high number means loud.

Some devices also change the character of the sound depending on the velocity. For example, a soft piano note might sound gentle, and a hard press might sound sharper.

Not all devices support velocity. Some simple keyboards or software always send the same value, so every note sounds equally loud.

Control Change (CC)

Control Change signals are used to change settings like volume, panning (left/right balance), or effects such as reverb or vibrato.

Each control change message has a number (that tells what is being changed) and a value between 0 and 127 (that tells how much).

You send these signals by moving a knob, slider, or pedal. The receiving device then adjusts the sound in real-time.

Example: a volume pedal sends Control Change number 7 (for volume). As you move the pedal, it sends different values, and the volume changes. The sustain pedal is another common example (Control Change 64). It lets notes keep sounding, even after you let go of the keys.

Program Change (switching sounds)

A Program Change signal tells the device to switch to a different sound or preset. For example, from piano to organ.

The signal sends a number from 0 to 127, and each number represents a different sound or instrument. From that moment on, all notes will play using the new sound.

Note: many devices use the General MIDI standard, where specific numbers always represent the same instruments. For example, 0 = piano, 40 = violin. But this can vary between devices.

Pitch Bend

Pitch Bend lets you smoothly change the pitch (note height) up or down while playing. It’s often controlled by a wheel or lever on a keyboard.

When you move the wheel, MIDI sends values that bend the pitch of all playing notes, either higher or lower.

This is useful for effects like gliding between notes or imitating guitar bends. Pitch Bend affects all notes on a MIDI channel at the same time – not just one note. The amount you can bend depends on the settings of the receiving device.

MIDI Clock (tempo sync)

The MIDI Clock helps keep multiple devices in sync. It’s like a shared metronome.

One device sends the clock (the master), and others follow it (the slaves). The clock sends regular pulses and commands like Start and Stop. This makes sure all devices play in time and at the same tempo.

Example: a drum machine and sequencer can play together in perfect rhythm if they follow the same MIDI Clock. When you start the master device, the others start too. When you stop it, they all stop together.

MIDI Channels

MIDI has 16 channels, numbered 1 to 16. Each signal is sent on one channel, and devices can be set to listen only to specific channels.

This way, you can control different instruments through one MIDI cable, and they don’t get in each other’s way.

Example: you can send piano notes on channel 1 and drum notes on channel 2. The synthesizer on channel 1 only plays the piano part. The drum machine on channel 2 only plays the drum part. All signals travel the same path, but the channel number keeps them separate.

The MIDI Transport Layer 

The MIDI 1.0 transport layer defines how digital MIDI messages (status and data bytes) are sent bit by bit over a physical cable using a specific serial communication format and electrical signaling method.

This layer ensures that bytes sent by one device (e.g., a keyboard) arrive accurately and safely at another device (e.g., a synthesizer or computer interface).

How MIDI Bytes Are Sent

MIDI uses asynchronous serial communication, meaning data is sent one bit at a time, without a shared clock signal between devices. Each MIDI byte is transmitted using 10 serial bits:

  1. Start Bit – always 0
  2. 8 Data Bitsleast significant bit (LSB) first
  3. Stop Bit – always 1

The start/stop bits allow the receiving device to detect the start and end of each byte. There’s no clock line in MIDI; timing is determined by measuring bit duration.

MIDI operates at a fixed baud rate: 31,250 bits per second (bps). This unusual rate was chosen to balance speed and hardware limitations in the 1980s. It’s fast enough for real-time music control, but slow enough for affordable electronics to process reliably.

 

Standard MIDI Cable

The standard MIDI cable uses a 5-pin DIN connector, but only 3 pins are used for MIDI data:

PinFunction
2Ground (signal reference)
4+5V via resistor (pull-up for current loop)
5Serial data signal

MIDI is unidirectional per cable: MIDI OUT → MIDI IN. For two-way communication, two cables are needed: one for each direction.

Sandard MIDI uses current loop signaling, not standard voltage levels like USB or RS-232.

  • Logic 0 (bit = 0)current flows (receiver sees low voltage)
  • Logic 1 (bit = 1)no current (receiver sees high voltage)

This inverted logic helps prevent false signals due to electrical noise. The used voltage is about 5 Volts.

To prevent ground loops and electrical interference, MIDI uses an opto-isolator at the MIDI IN port. This converts electrical current from the sender into light, which is detected inside the receiver and converted back to an electrical signal. It also keeps devices electrically isolated while allowing data to pass. This protects equipment and improves signal integrity.

MIDI over USB

MIDI 1.0 over USB allows MIDI data to be sent through USB cables instead of traditional 5-pin DIN connectors. It’s still the same MIDI messages (Note On, Note Off, Control Change, etc.), but sent as USB data packets rather than serial bits on a wire.

Advantages of MIDI over USB

  • Faster transmission: No bandwidth limits like DIN MIDI.
  • Multiple MIDI ports through one USB cable.
  • Two-way communication with a single cable.
  • No opto-isolation needed (USB is already electrically safe).
  • Plug-and-play on most modern systems.
  • You can send lots of MIDI data at once (good for big projects or live setups).
  • USB also powers the device, so you often don’t need a separate power supply.

Want to know more?

Technical Breakdown of Standard MIDI 1.0 messages
More about MIDI over USB