MIDI (на английски: Musical Instrument Digital Interface – букв. „цифров интерфейс за музикални инструменти“) е технически стандарт за мрежов протокол, цифров интерфейс и електрически съединители за свързване на широк кръг електронни музикални инструменти, компютри и други музикални и аудио устройства.[1] Една връзка MIDI може да пренася до 16 различни канала с информация, всеки от които може да е насочен към отделно устройство.
Интерфейсът е дефиниран във версия 1.0 през август 1982 г. Развитието на MIDI оказва влияние върху развитието на електронната музика. Модерните денс, техно, хаус, дръм енд бейс и др. жанрове не биха могли да достигнат нивото си без тази технология. MIDI позволява създаването на „домашно студио“ бързо и относително евтино, което облекчава развитието на експерименталната музика.
Широкото разпространение на MIDI следва от това, че всички производители на синтезатори го използват в производството си. Приложенията на MIDI се разпростират от футуристични композитори до соло музиканти.
MIDI-интерфейсът има три съединителя: IN, OUT и THRU. IN е вход, OUT е изход, а THRU повтаря входния сигнал и се използва за свързването на повече от едно MIDI-устройство.
Интерфейсът на MIDI е тип „токов кръг“. Всеки байт започва със „стартов бит“, когато токът достига 5 mA, следван от 8 бита данни (най-младшият бит (Least Significant Bit, LSB) се предава първи) и завършва със „стоп бит“, когато токът се завръща към 0 mA. RS-232 работи по сходен начин.
Има два основни вида съобщения: статус-байт, при който най-старшият бит винаги има стойност 1, и байт с данни, в който най-старшият бит винаги има стойност 0. Статус-байтът е разделен на две части. Старшите 4 бита задават типа събитие (има 8 типа, от 8 до 15), а младшите 4 – номера на канала (0 – 15). Например 1001 0001 (в двоична система) означава „Note On“ (включена нота) на канал 1 (заб.: тук стартовият и стоп битът не са указани). Всеки статус-байт бива последван от байтове данни. Статус-байтът „Note On“ бива последван от два байта, задаващи височината на нотата и силата на звука, с която е изсвирена. Например 0011 1100 означава нотата със стойност 60 („до“ от първа октава), а 0111 1111 означава сила на звука 127 (максимална). Ако статус-байтът съвпада с този на предходното съобщение, той може да се изпусне, а да се предават само байтовете данни. Това състояние се нарича „текущ статус“.