User Tools

Site Tools


midi_specification

This is an old revision of the document!


MIDI Specifications

The MIDI Protocol constists of a package list, that normally contains one or more packages. Each Package contains (depending on it's message type) 2 or 3 bytes.

The First Byte is called the Status Byte because it's defining the Event (eg NOTE_ON or CONTROLLER) and the channel on which this event occurs.

The Second Byte is called the Data Byte because it contains the Data (wow!)

The Third Byte is optional (depending on the event type) and contains another value, eg. for Controllers the (most important) value!

Here's an Example:
1st Byte 144 (0x90): NOTE_ON on Channel 0 (Channel 1 would be 0x91)
2nd Byte 65 (0x40): A Note
3rd Byte 100 (0x64): Velocity 100

If you want to send this message with MIOS (programmed in C) it would look like this:

MIOS_MIDI_BeginStream();
  MIOS_MIDI_TxBufferPut(0x90);
  MIOS_MIDI_TxBufferPut(0x40);
  MIOS_MIDI_TxBufferPut(0x64);
MIOS_MIDI_EndStream();

More informations can be found online:


Explained MIDI Specs

ASCII Conversion Table

midi_specification.1149989555.txt.gz · Last modified: 2006/10/15 09:35 (external edit)