MIDI (Musical Instrument Digital Interface) è il protocollo standard per l'interazione degli strumenti musicali elettronici, anche tramite un computer.

In Italia acquisisce particolare notorietà grazie al tour negli stadi Assolo di Claudio Baglioni del 1986, nel quale l’artista sfrutta in modo innovativo questa tecnologia per esibirsi da solo sul palco, senza band né accompagnamenti.

Storia Il protocollo MIDI nacque all'inizio degli anni ottanta: esso era la risposta all'esigenza di far comunicare tra loro diversi strumenti musicali elettronici, tenendo conto delle caratteristiche di ognuno. Diversi costruttori, ad esempio Oberheim e Roland, offrivano già sui propri strumenti alcuni sistemi di interfacciamento, tipo CV/gate, DIN sync and Digital Control Bus (DCB). Queste interfacce, basate su algoritmi proprietari, garantivano il funzionamento solo su strumenti dello stesso costruttore, mentre serviva un sistema in grado di garantire il funzionamento su strumenti di costruttori diversi.

Il presidente dalla Roland, Ikutaro Kakehashi, sapeva che la mancanza di standard limitava la crescita del mercato della musica elettronica e quindi chiese aiuto a Dave Smith della Sequential Circuits, che accolse con favore la proposta. Insieme all'ingegnere Chet Wood scrissero il documento Universal Synthesizer Interface, che fu presentato all'Audio Engineering Society ad Ottobre 1981. Lo standard fu discusso dai rappresentanti di Roland, Yamaha, Korg e Sequential Circuits e decisero che sarebbero stati utilizzati connettori DIN a cinque poli, la velocità di trasferimento dati a 31,25 kbaud (16Mhz/512) e la scelta del nome: Kakehashi propose di chiamarlo Universal Musical Interface (UMI), ma invece si decise per Musical Instrument Digital Interface (MIDI).

Il progetto terminato apparve solo due anni dopo: nell'agosto del 1983 le specifiche MIDI furono presentate al pubblico alla fiera NAMM Show, tenutasi a Los Angeles. L'immediata popolarità dello standard creò divisioni all'interno del comitato fondatore: i produttori americani si unirono nella MMA (MIDI Manufactures Association), mentre quelli giapponesi fondarono la JMA (Japan MIDI Association). Benché lavorassero su un terreno comune, i due consorzi svilupparono delle caratteristiche non sempre pienamente compatibili tra loro. Queste divergenze furono risolte nel 1985, quando la IMA (International MIDI Association) pubblicò la versione 1.0 delle specifiche MIDI, istituendo di fatto lo standard del protocollo, e i costruttori che supportano il protocollo MIDI sono riuniti in due associazioni: MMA (costruttori Americani ed Europei) e JMSC (costruttori Giapponesi). Le modifiche da apportare allo standard MIDI vengono discusse e approvate da queste due associazioni. La diffusione delle specifiche MIDI spetta all'IMA (International Midi Association).

La tastiera PROPHET 600 della SCi (Sequential Circuits inc.) di San Francisco, il primo synth dotato di interfaccia MIDI, fu presentata nel 1983 e costruita su licenza in Italia dalla SIEL di Acquaviva Picena in provincia di Ascoli Piceno nelle Marche, anche se la versione definitiva del protocollo MIDI venne implementata l'anno seguente sulla Yamaha DX7.

Lo standard MIDI consiste in un protocollo per lo scambio di messaggi progettato per l'uso con strumenti musicali elettronici e nella relativa interfaccia fisica. Un collegamento MIDI consiste in una connessione seriale unidirezionale (simplex) a loop di corrente, che funziona alla velocità di trasmissione di 31,250 bps. Ogni collegamento è unidirezionale (da MIDI OUT a MIDI IN); comunicazioni bidirezionali richiedono due connessioni separate.

Il loop è realizzato in modo tale che il lato ricevente sia galvanicamente isolato tramite optoisolamento, evitando connessioni dirette di massa tra i dispositivi e riducendo la formazione di anelli di massa, causa di ronzii e interferenze audio. In particolare, il loop di corrente dal lato del trasmettitore pilota il LED di un accoppiatore ottico nel ricevitore.

L'accoppiatore ottico dev'essere sufficientemente veloce (tra i dispositivi comunemente impiegati vi sono lo Sharp PC900, il 6N136 e, in alcune implementazioni, il 4N32) poiché i tempi di commutazione, spesso asimmetrici tra salita e discesa del segnale, possono introdurre distorsioni temporali. Tali distorsioni si manifestano come variazioni nella durata effettiva dei bit (jitter) e deformazione dei fronti del segnale, che possono compromettere il corretto campionamento da parte dell'interfaccia seriale. Nel caso di connessione in cascata di più dispositivi MIDI (tramite porte THRU), il ritardo e la distorsione del segnale si accumulano progressivamente fino a poter generare errori di trasmissione.

Lo standard MIDI prevede l'uso di connettori circolari a standard DIN a 5 pin, dei quali solo tre sono utilizzati per la trasmissione del segnale. Questi connettori erano molto diffusi in Europa per ogni genere di connessione audio fino agli anni novanta, quando sono stati in gran parte sostituiti dai più pratici jack. Anche le tastiere dei personal computer, oggi dotate di connessione USB, in passato utilizzavano connettori simili (mini-DIN). Il MIDI è rimasto quindi una delle poche applicazioni ancora in uso per questo tipo di connettori.

Nel 1991 fu deciso uno standard anche per i file delle canzoni e la connettività con le prese USB e Firewire. Nel 2016 fu formata la Midi Association, una web community, per continuare a portare avanti e supervisionare lo standard. È nel 2019 che viene annunciata l'iniziativa di creare la versione 2.0, che in seguito verrà presentata ed approvata al NAMM show del 2020.

Le specifiche MIDI standard Introduzione Il termine MIDI indica due aspetti: un linguaggio informatico, ossia una serie di specifiche che danno vita al protocollo, e un'interfaccia hardware che consente il collegamento fisico tra dispositivi.Il MIDI è nato negli anni ottanta e, sebbene nel tempo siano emersi protocolli dalle prestazioni superiori, è rimasto pressoché inalterato fino al recente rilascio delle specifiche MIDI 2.0 ed è tuttora intensamente utilizzato nella produzione di musica elettronica. I motivi risiedono probabilmente nel ruolo di standard che ha assunto nell'ambito musicale e nella cura riposta dai progettisti nella stesura delle prime specifiche.

Le caratteristiche del MIDI sono: qualità e praticità del sistema: l'integrazione tra eventi audio ed eventi MIDI sì è dimostrata vincente, confermando l'importanza di questo standard nella realizzazione di musica digitale. il basso peso dei file (nell'ordine dei Kb) che consente il trasferimento tramite Internet anche su connessioni con poca banda. la qualità delle basi. il basso costo: con un investimento minimo o ricorrendo a programmi freeware, è possibile realizzare produzioni musicali di buon livello.

L'interfaccia hardware Gli strumenti musicali e le varie attrezzature MIDI devono essere fisicamente connesse per poter comunicare tra di loro. A questo scopo, lo standard MIDI prevede l'uso di una triade di connettori DIN a 5 poli, di cui solo i 3 poli centrali vengono utilizzati, che tramite un cavo pentapolare consentono il collegamento fisico tra gli strumenti.I tre connettori vengono distinti come: IN: consente al dispositivo di ricevere informazioni. OUT: consente al dispositivo di trasmettere informazioni. THRU: consente al dispositivo di ritrasmettere i dati ricevuti dalla propria porta IN verso un altro dispositivo.

La reale configurazione dei connettori, per numero e presenza, dipende dalle funzioni per cui uno strumento viene costruito. Su una master keyboard, per esempio, è frequente trovare 2 o 3 OUT e nessun THRU, visto che ciò che ci si aspetta da uno strumento del genere è la massima flessibilità nella trasmissione dei dati verso altre attrezzature.

L'interfaccia software: il protocollo MIDI al livello software Una delle caratteristiche fondamentali del MIDI è l'essere un'interfaccia multicanale.Grazie a delle applicazioni software chiamate sequencer, installabili sia in unità hardware specifiche sia in normali personal computer, si possono registrare performance musicali sotto forma di "messaggi MIDI" per poterle successivamente modificare e riascoltare. Il compito di sincronizzare le varie sequenze MIDI è delegato al codice temporale MIDI, uno standard mondiale per la sincronizzazione della musica digitale che costituisce un'implementazione del codice temporale SMPTE.

Un file MIDI è un file che contiene dati comunicabili tramite il protocollo MIDI. Il MIDI supporta fino 16 canali. Per spiegare cosa si intende per "canale MIDI" si può utilizzare la seguente metafora: si voglia inviare un messaggio a un collega che pernotta in una delle 16 stanze a disposizione di un hotel; oltre all'indirizzo dell'hotel, si deve specificare anche il numero di stanza del nostro collega se si vuole che il messaggio sia recapitato correttamente. Si pensi di avere un modulo sonoro con la possibilità di suonare fino a 16 suoni diversi contemporaneamente collegato in MIDI a una tastiera musicale e ogni suono è in un canale diverso da 1 a 16: come fare per far eseguire la musica a uno solo di questi suoni? La tastiera deve inviare al modulo, oltre alle note, anche il numero di canale (la stanza dell'hotel) in cui suonare quelle note. Come farlo dipende dal tipo di strumenti utilizzati.Oltre alle note e alle varie informazioni necessarie alla loro esecuzione è possibile trasmettere in MIDI anche del testo sincronizzato con la musica. Questo aspetto è stato ampiamente sfruttato per karaoke. Ai file di questo tipo è spesso cambiata l'estensione da .mid a .kar.

Tipi di dati Status byte: gli status byte sono numeri di otto cifre binarie in cui il bit più significativo (Most Significant Bit, MSB) è posto a 1. Questi byte servono ad identificare il tipo di messaggio, ovvero lo scopo dei data byte che li seguono; ad eccezione dei real-time message, un nuovo Status byte obbliga il ricevitore ad adottare un nuovo stato, anche se l'ultimo messaggio non è ancora stato completato. Data byte: a seguire gli Status Bytes, ad eccezione dei Real-time message, ci possono essere uno o due Data Byte che trasportano il contenuto del messaggio. I Data byte sono numeri di otto cifre binarie in cui il bit più significativo (Most Significant Bit, MSB) è posto a 0. Per ogni Status byte deve sempre essere spedito il numero di Data Byte corrispondente; il ricevitore del messaggio deve aspettare fino a quando non ha ricevuti tutti i Data byte richiesti dallo Status byte. Running Status: solo per Voice e Mode Message. Quando uno Status byte viene ricevuto ed elaborato, il ricevitore rimane in quello stato fino alla ricezione di un differente Status Byte; quindi in caso di ripetizione lo Status Byte può essere omesso ed è sufficiente inviare solo i Data Byte. Nel Running Status un messaggio completo consiste unicamente di Data Bytes; il Running Status è particolarmente utile quando si devono spedire lunghe stringhe di Note On/Off, dove "Note On con velocità 0" è usato come Note Off.

Channel message Un Channel message usa quattro bit nello Status Byte per indirizzare il messaggio a uno dei sedici canali MIDI e quattro bit per definire il messaggio. I channel message sono quindi usati dai ricevitori in un sistema il cui numero di canali corrisponde al numero di canali codificato all'interno dello Status Byte.

Uno strumento può ricevere messaggi MIDI da più di un canale. Il canale sul quale riceve le istruzioni principali è detto "Basic channel". Uno strumento può essere impostato in modo da ricevere dati di esecuzione (performance data) su canali multipli (incluso il basic channel). A questi ci si riferisce come "Voice channel".

Ci sono due tipi di Channel Message: MODE, per definire la risposta degli strumenti ai Voice messages. I mode messages sono spediti sul basic channel di uno strumento;