Il MIDI è un linguaggio standard di comunicazione digitale
utilizzato per scambiare informazioni tra strumenti musicali.
L'acronimo M.I.D.I. sta per Musical Instrument Digital
Interface, ossia Interfaccia Digitale per Strumenti
Musicali.
L'elenco di istruzioni MIDI viene detto protocollo MIDI ed
è stato introdotto ufficialmente nel 1983 da un consorzio di
produttori con l'intento di permettere a macchine - anche se
prodotte da diverse marche - di comunicare tra loro.
Per essere in grado di comunicare mediante il protocollo MIDI, un
dispositivo deve essere dotato di un hardware specifico, detto
interfaccia MIDI, che fornisce le connessioni necessarie.
Una cosa che è necessario comprendere subito è che il protocollo
MIDI non contiene informazioni audio: è importante infatti
distinguere immediatamente il MIDI dai formati audio (WAV, PCM,
IFF, tanto per citarne qualcuno), evitando la confusione che a
volte si genera quando si incontra il formato .mid che è associato
ai file che contengono informazioni MIDI.
Per capire invece che cosa il MIDI effettivamente è, immaginiamo
una ipotetica situazione in cui abbiamo a disposizione due
tastiere - poniamo ad esempio due sintetizzatori - che dispongano
entrambi di interfaccia MIDI, e che noi vogliamo sfruttare questa
possibilità.
Colleghiamo allora queste due tastiere: per semplicità,
limitiamoci a dire che ad una uscita (MIDI OUT) della prima
tastiera, collegheremo un ingresso (MIDI IN) della seconda.
Bisogna tenere degli accorgimenti nell'effettuare questo
collegamento, ma noi per ora supponiamo che basti inserire il cavo
per rendere attivo il collegamento e per trasmettere le
informazioni.
Ora, accese entrambe le tastiere, teniamo il volume aperto sulla
prima tastiera, che è quella che invierà le istruzioni MIDI, in
quanto collegata tramite un OUT (si dirà quindi che la prima
tastiera è il dispositivo Master), e mettiamo a zero il
volume sulla seconda, che è invece la tastiera che riceverà i
comandi MIDI, in quanto collegata tramite un IN (e verrà detta
dispositivo Slave, schiavo, cioè, del dispositivo
Master).
Andiamo allora a suonare la prima tastiera, cioè il Master.
Come è logico aspettarsi, sentiremo i suoni di questa tastiera (se
le uscite sono collegate ad un'amplificazione, ovviamente) e,
andando a modificare il suono della tastiera, o a selezionarne un
altro (detto in genere programma), udiremo dalle uscite del
sintetizzatore il risultato di questi cambiamenti.
Proviamo ora ad invertire la situazione: togliamo il volume alla
prima tastiera e alziamolo alla seconda. Suoniamo ancora però la
prima tastiera. Sentiremo stavolta i suoni della seconda tastiera,
pur non toccandone direttamente i tasti. Qualsiasi cosa facciamo
sulla prima (suonare più o meno forte, utilizzare il modulation
wheel o modificare il pitch, incrementare di 1 il numero di
programma utilizzato) avverrà sulla seconda (diamo per scontato
che tutte queste possibilità siano implementate e attive su
entrambe le tastiere). I suoni che sentiremo saranno sempre però
quelli sintetizzati dalla seconda tastiera: se ad esempio il
Master è una tastiera che dispone di suoni campionati da strumenti
classici, mentre lo Slave è un acido synth con suoni
all'avanguardia, non potremo far altro che riprodurre questi
ultimi nella situazione descritta, e mai e poi mai dalla seconda
tastiera sentiremo il morbido suono di un piano a coda presente
invece nei banchi di memoria della tastiera Master.
Accade insomma che i dati MIDI generati dalla tastiera Master in
termini di pressione dei tasti e dei controlli della tastiera
viaggiano tramite il collegamento MIDI e vengono applicati allo
Slave; lo stesso non avviene però per le caratteristiche
timbriche che restano invece quelle dello strumento che genera
il suono.
Questo esempio, che nella sua semplicità può apparire ingenuo, ci
presenta però esattamente la situazione tipica per la quale il
MIDI è stato pensato: suonare uno strumento tramite un altro,
conservando tutte le informazioni possibili della performance.
In pratica potremmo dire che un trasmissione MIDI contiene lo "spartito"
della musica che lo strumento di destinazione dovrà andare a
riprodurre.
Vediamo innanzitutto quali sono le possibili connessioni hardware
di un'interfaccia MIDI: esse si distinguono essenzialmente in MIDI
IN, OUT e THRU. Le connessioni IN e OUT agiscono esattamente come
visto nell'esempio, e non hanno bisogno di particolari spiegazioni.
La porta THRU ha invece una funzione particolare: essa manda in
uscita le istruzioni che il dispositivo ha ricevuto sulla porta
IN, rendendo così possibile configurare quella che viene definita
cascata MIDI.

Un primo strumento (Master) genera il segnale MIDI, e attraverso
una porta MIDI OUT lo invia ad un a porta MIDI IN di un altro
dispositivo (Slave). Quest'ultimo, oltre ad eseguire la parte di
istruzioni che gli sono destinate, invia dalla porta MIDI THRU una
copia esatta delle istruzioni ricevute, che vengono ricevute da un
ulteriore dispositivo Slave tramite il proprio MIDI IN, e così
via.
C'è la possibiltà di trovare porte OUT/THRU: queste possono essere
configurate per fungere da porte OUT o Thru a seconda della
necessità.
I dati MIDI viaggiano su cavi a 5 pin (di cui però solo 3
utilizzati) in modo seriale, ossia uno di seguito all'altro.
Questo potrebbe sembrare un controsenso, in quanto spesso molte
note vengono suonate contemporaneamente. In realtà, a meno di
eventuali problematiche a livello hardware. la velocità di
trasmissione è sufficiente perchè la serialità dei dati non venga
percepita dall'orecchio.

Dall'introduzione del protocollo MIDI ad oggi le istruzioni di
base sono sempre le stesse, sebbene siano state introdotte nuove
istruzioni e nuovi formati.
Andiamo qui di seguito a vedere quali sono le istruzioni
principali.
Innanzi tutto parliamo dei canali.
Un messaggio MIDI è indirizzato ad uno di 16 differenzti canali
disponibili (espansi a 32 o oltre in certi casi, ma ci atterremo ai messaggi e alle specifiche standard). Ogni canale
costituisce in pratica l'indirizzo del messaggio: se ad uno
strumento è assegnato uno specifico canale, questo eseguirà solo
le istruzioni relative a quel canale, ignorando tutte le altre.
La differenziazione delle istruzioni in canali consente la cascata
MIDI di cui abbiamo parlato precedentemente, in quanto consente ad
ogni strumento di riconoscere le istruzioni ad esso assegnate.
E' possibile anche inviare istruzioni su tutti i canali (OMNI)
oppure istruire uno strumento in modo che riceva su tutti i canali.
E' anche molto diffuso il caso in cui uno strumento multitimbrico
possa ricevere dati su più canali differenti, assegnando ogni
canale ad un proprio strumento interno.
Ci sono poi quelle che vengono dette istruzioni di stato,
in quanto definiscono lo stato di una specifica nota su un canale.
Le istruzioni di stato principali sono l'istruzione NOTE ON (nota
attiva), che viene impartita nell'istante in cui si preme un tasto
(questa è un'immagine esemplificativa, in realtà le istruzioni
MIDI possono essere scritte e inviate senza che sia necessario
suonare materialmnete uno strumento) e l'istruzione NOTE OFF (nota
inattiva) che viene impartita nell'istante in cui il tasto viene
rilasciato.
All'istruzione di note on seguono informazioni quali la VELOCITY,
che segnala l'intensità con la quale è stato premuto il tasto.
Vi è poi il comando di AFTERTOUCH, che definisce (su 128 valori
possibili) quanta pressione viene esercitata su un tasto dopo
averlo premuto. All'aftertouch vengono in genere assegnate
modifiche del suono (volume, intonazione, modulazione) che
avvengono sullo strumento ricevente.
Un altro messaggio di stato molto comune è il PITCH BEND, che si
riferisce alle variazioni in altezza di una nota, indicando
modifiche di intonazione su 128 possibili valori.
Un'istruzione molto utile è il PROGRAM CHANGE, in grado di
assegnare un determinato programma di uno strumento MIDI su un
canale. Ad esempio, su una tastiera dove lo strumento 1 è un
pianoforte, e lo strumento 31 un basso, un PROGRAM CHANGE001 (abbreviato
in PG001) assegnerà alla tastiera il suono di piano, con il quale
saranno suonate tutte le successive note su quel canale, fino ad
un successivo PG031, con il quale si farà sì che tutte le note
suonate successivamente siano prodotte con il suono di basso.
Vi sono poi i messaggi di controller, come il pedale di
sustain, il controllo del volume, un valore relativo alla sintesi
del suono, apertura di un effetto e così via, che sono specifici
dei singoli strumenti, in base alle caratteristiche di ognuno,
seppur variando sempre nel range di valori da 0 a 127.
Due istruzioni un po' particolari.
La prima è denominata ALL NOTES OFF, e dà un NOTE OFF simultaneo a
tutte le note su tutti i canali; essa si rende necessaria quando,
per errore, una nota lanciata con un NOTE ON non venga chiusa dal
NOTE OFF corrispondente. Spesso questa istruzione viene impartita
con un tasto chiamato "MIDI panic", con riferimento appunto alla
situazione in cui si senta una nota riprodotta da un qualche
strumento senza però riuscire a comprenderne la provenienza.
La seconda è il SYSTEM EXCLUSIVE, messaggi che possono essere
interpretati solo da specifici modelli, quindi esclusivi, appunto,
di un determinato sistema. Il System Exclusive viene ad esempio
utilizzato tra tastiere della stessa marca per trasmettersi dati
relativi a banchi di suoni (forme d'onda, caratteristiche dei
controlli). Un System Exclusive inviato ad uno strumento non in
grado di interpretarlo restituirà semplicemente un messaggio
d'errore.
|