|
|
|
|
|

Tutorial -> MIDI e sequencer -> Il protocollo MIDI

Tutti quelli che si accingono anche solo per curiosità a fare musica con un qualsiasi strumento
elettronico, sia esso una tastiera o un software dedicato, si sono imbattuti prima o poi nel
MIDI.
In questo tutorial cercheremo innanzitutto di chiarire che cos'è il MIDI, quali sono gli scopi
per i quali è stato creato, e come funziona nella generalità dei casi.
Per informazioni più dettagliate rinviamo ad un prossimo tutorial.
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. Vedremo più avanti quali sono queste connessioni e come funzionano.
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 di cui però qui non ci occuperemo,
rinviando ad un prossimo tutorial sull'argomento.
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 per ora 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.
Chiudiamo questa veloce carrellata sulle istruzioni con 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.
Abbiamo concluso questa piccola introduzione al mondo del MIDI: nei prossimi tutorial approfondiremo
le caratteristiche delle istruzioni e vedremo altri standard di trasmissione basati sul MIDI ma
ampliati per altre esigenze, quali il diffuso General MIDI.

© audiomaster.it (Michelangelo Izzo) 2003-2005

<< Indietro
|
|
|