Sei sulla pagina 1di 15

Il protocollo MIDI

___________________________________________________________________________

Il protocollo MIDI
Introduzione

pag 1

La Struttura e connessioni

pag 2

La struttura dei messaggi MIDI

pag 5

I messaggi MIDI fondamentali

pag 7

Il Local control

pag 11

I messaggi di Sistema

pag 12

Gli standard MIDI

pag 15

Introduzione
Con un computer dedicato, costituente, insieme alla scheda audio, al sistema di
ascolto, alla tastiera musicale e ai software, un sistema di informatica musicale,
registriamo, elaboriamo ed esportiamo principalmente due tipi di dati: audio e MIDI.
Quest'ultima tipologia consente ad un utente di trasferire e registrare al computer le
informazioni relative alla sua esecuzione musicale utilizzando un particolare strumento
costituito da una tastiera musicale riproducente quella di un pianoforte.
Il MIDI (Musical Instrument Digital Interface) un protocollo formato da un insieme di
messaggi e di regole per la comunicazione tra strumenti tipicamente musicali e non
solo.
Il MIDI venne realizzato agli inizi degli anni '80 soprattutto per facilitare il gravoso
compito dei tastieristi, obbligati ad utilizzare molti sintetizzatori contemporaneamente
a causa delle difficolt dell'allora tecnologia nel realizzare frasi polifoniche e
soprattutto nell'utilizzare suoni complessi multi timbrici. Infatti, in un periodo che
intravedeva la possibilit di un impiego del digitale, i sintetizzatori offrivano poche
note di polifonia e pochi preset mono timbrici.
Nel 1981 Dave Smith e Chet Wood, progettisti della societ americana Sequential
Circuit che produceva i sintetizzatori Prophet, iniziarono a definire le linee per un
protocollo di comunicazione in grado di controllare la polifonia e la timbricit. Durante
la fiera NAMM (North American Music Manufacturers) a Los Angeles nell'estate del
1983 venne presentato il primo sintetizzatore (un Prophet 600) dotato di protocollo
MIDI e di porte di comunicazione. L'interesse e il successo furono tali che
praticamente

tutti

Silvio Relandini 1

pi

grandi

costruttori

di

sintetizzatori

aderirono

alla

Il protocollo MIDI
___________________________________________________________________________

commercializzazione del protocollo e nel 1985 l'IMA (International MIDI Association)


pubblic le specifiche tecniche del protocollo MIDI 1.0 in modo da renderlo uno
standard definitivo.
Nonostante svariati tentativi di modificare il protocollo, la sua struttura rimasta
praticamente la stessa a conferma che un linguaggio molto potente, facile da
programmare e che non richiede una tecnologia complessa e di difficile reperibilit.

Struttura e connessioni
Il protocollo costituito da centinaia di messaggi ognuno dei quali formatoi da
parole (word) di uno o pi byte (ricordando che un byte una stringa di otto bit) che
trasferiscono le intenzioni tecniche ed espressive musicali che un esecutore esegue su
uno strumento musicale, definito master, ad un altro, chiamato slave, il cui unico
scopo quello di fornire il supporto timbrico. Pertanto, le azioni tipiche quali hai
suonato una nota sulla tastiera o hai premuto il pedale del sustain vengono
associate ad un univoco messaggio MIDI (nel primo caso a quello detto di NOTA ON
mentre nel secondo caso al messaggio SUSTAIN). Insistiamo nel precisare che i
messaggi MIDI non portano informazioni audio ma solamente una codifica delle azioni
che il musicista compie sul controller (una tastiera MIDI). Sar poi lo slave a fornire il
segnale audioovvero il timbro.
I computer, i mixer digitali, gli strumenti musicali elettronici, i processori di segnale
audio, i controller, i sistemi DAW, hanno tutti o quasi in dotazione uninterfaccia
hardware per poter comunicare tramite il protocollo MIDI. Questa interfaccia dotata
di porte MIDI per ricevere e trasmettere i messaggi MIDI. Funzionalmente esistono tre
tipologie di porte MIDI:
- La porta MIDI IN, utilizzata per ricevere i messaggi inviati da unaltra macchina
- La porta MIDI OUT, impiegata per inviare i messaggi ad altri strumenti
- La porta MIDI THRU, consente di reindirizzare un messaggio proveniente alla porta
MIDI IN verso un altro strumenti.
Ricapitolando, utilizzando un cavo MIDI, la porta OUT va collegata ad una porta IN
mentre la porta THRU ancora ad una porta IN. Se ad esempio avessimo una tastiera
musicale master e due strumenti slave, la configurazione MIDI sarebbe quella riporta
nella figura seguente:

Silvio Relandini 2

Il protocollo MIDI
___________________________________________________________________________

Suonando una nota sulla tastiera Master, un messaggio MIDI viene inviato alla porta
OUT; da qui raggiunge il primo Slave e, tramite il collegamento THRU, anche il
secondo.
Non raro, anzi la norma, volere che alcuni messaggi siano interpretabili solamente
dallo Slave 1 mentre altri solamente dal secondo. In che modo possiamo realizzare
questa volont? Semplicemente utilizzando una propriet dei messaggi MIDI: il
canale. Esistono 16 canali indipendenti dove possibile far viaggiare i messaggi MIDI:
in tal modo possiamo assegnare ogni singolo messaggio su un canale specifico ed
impostare la ricezione MIDI dello slave su quel canale in modo da ignorare tutti i
messaggi indirizzati sugli altri canali. Ogni strumento musicale elettronico dotato di
interfaccia MIDI ha delle pagine di editing dove possibile impostare il canale di
ricezione (MIDI Receive, Rx) e quello di trasmissione (MIDI Transmit, Tx) per cui
basta far riferimento al manuale dutilizzo dello strumento per trovare le pagine di
editing. Se ad esempio impostiamo in ricezione lo Slave 1 sul canale MIDI 2 e lo Slave
2 sul canale 6, quando inviamo dalla Master un messaggio sul canale 6, questo giunge
allo Slave 1 che per lo ignora, mentre inviato contemporaneamente allo Slave 2
(tramite la porta THRU) che invece lo interpreta.
Il collegamento appena illustrato, costituito cio dalle sequenze MIDI OUT -> IN,
THRU -> IN, THRU ->.. chiamato a cascata o seriale. Sebbene sia semplice
sconsigliato se si devono collegare numerosi dispositivi Slave ad ununica Master in
quanto insorgono problemi di latenza (ritardo del segnale). I messaggi MIDI vengono
trasmessi in maniera seriale e asincrona (ovvero occorrono 1 bit di start e uno di stop)
alla velocit di 31.250 bit al secondo.
Nel caso si devono collegare numerosi strumenti il caso di utilizzare un collegamento
detto a stella realizzabile tramite una THRU Box, un harware costituito da una porta
IN e da 2 o pi porte THRU (fino ad un massimo di 16). Nellimmagine seguente
illustrato un tipico schema di collegamento a stella.

Silvio Relandini 3

Il protocollo MIDI
___________________________________________________________________________

Quando si utilizza anche un computer, sul quale installato un sequencer ovvero un


software in grado di ricevere, registrare e trasmettere i messaggi MIDI, il suo
inserimento nel routing (flusso) del segnale MIDI avviene tra il Master e gli Slave.

Poich le interfacce MIDi dei computer sono dotate di sole porte IN e OUT, queste
ultime si comportano anche come delle porte TRHU (lopzione pu essere nominata
patch thru, echo thru, thru on/off) rendendo possibile controllare gli Slave dalla
passando attraverso il sequencer.
Ultimamente esistono controller in grado di inviare al computer messaggi MIDI tramite
le porte USB, Lan e Firewire. Inoltre, da qualche anno, esistono inoltre dei Virtual
Instrument, dei semplici programmi residenti nel computer, ovvero degli slave
virtuali i cui collegamenti MIDI sono di natura virtuale (logica) e che quindi vengono
gestiti direttamente allinterno del sequencer senza necessit di cablaggi hardware.

Silvio Relandini 4

Il protocollo MIDI
___________________________________________________________________________

La struttura dei Messaggi MIDI


Il messaggio MIDI costituito da una sequenza di byte divisi in due tipologie: lo
Status Byte e il Data Byte. Lo Status Byte oltre a definire il comando MIDI e a
rappresentare il tipo di informazione (nota suonata, volume, pitch bend, ecc.), indica il
numero di canale su cui viaggia il messaggio complessivo. Il Data Byte rappresenta
invece il valore richiesto per il parametro specificato nello Status Byte.
Come possibile disstinguere lo Status dal Data byte? Tutti gli Status hanno il bit pi
significativo pari ad 1, i Data pari a 0; per di pi, un messaggio deve sempre iniziare
con uno Status byte.
Questa la struttura di uno Status Byte.

Il byte diviso in due nibble (gruppo di 4 bit) chiamati MSB (Most Significant Bit) e
LSB. Nel primo presente il bit pi significativo, utilizzato per il riconoscimento dello
Status, mentre i tre rimanenti bit, indicati con la lettera V sono utilizzati per
specificare i vari messaggi. Poich con 3 bit possibile avere otto combinazioni
possibili (in quanto 23=8) illustrate nellimmagine seguente.

Silvio Relandini 5

Il protocollo MIDI
___________________________________________________________________________

I messaggi MIDI si dividono in due grandi categorie: Channel Voice Message


(messaggi di Canale) e System Message (messaggi di sistema). I primi possono
essere indirizzati su uno dei 16 canali MIDI e sono divisi a loro volta in Voice Message
e Mode Message. I secondi non contengono informazioni di canale ma sono indirizzati
globalmente allintero sistema di strumenti collegati nel nostro network musicale e si
dividono in Common Message, Real Time Message e Exclusive Message.
Il secondo nibble (LSB), quando utilizzato nei messaggi di canale, serve ad indicare
il canale MIDI. Avendo a disposizione 4 bit, possiamo disporre di 16 combinazioni
(24=16) elencate di seguito:

Quando abbiamo a che fare con i messaggi di sistema, il Least Significant Bit LSB
attualmente rappresenta 12 messaggi (quattro combinazioni non sono ancora
utilizzate).

Silvio Relandini 6

Il protocollo MIDI
___________________________________________________________________________

La struttura di un Data Byte invece la seguente:

In questo caso, sono a disposizione sette bit e quindi 128 possibili valori (27=128)
che, a seconda dei casi, sono esprimibili come intervallo 1 128 o come 0 127.

I Messaggi MIDI fondamentali


NOTA ON se si preme un nota sulla tastiera della Master, viene inviato un messaggio
di Nota On (nota premuta) che, oltre allo status byte, costituito da due data byte, il
primo relativo allaltezza della nota (pitch), il secondo alla velocity ovvero alla forza
con cui stato premuto il tasto.

NOTA OFF se si rilascia il tasto di nota premuto in precedenza, viene generato


questo messaggio costituito anchesso da due data byte; il primo specifica quale nota
viene rilasciata, il secondo con quale velocity, ovvero con quale intensit di rilascio del
tasto.

Silvio Relandini 7

Il protocollo MIDI
___________________________________________________________________________

CHANNEL PRESSURE trasmette in tempo reale eventuali variazioni di pressione


esercitate su una nota premuta in precedenza. Questa pressione, unica per tutta la
tastiera, genericamente chiamata After Touch e di solito ad essa viene assegnata
una funzione che pu modificare alcune caratteristiche del suono (la modulazione,
lintonazione, il volume, ecc.). Non ha il secondo data byte.

POLYPHONIC KEY PRESSURE simile al precedente ma si riferisce al pi costoso e


quindi molto pi raro utilizzo di sensori di pressione indipendenti per ciascuna nota.
Il primo data riferito alla nota e il secondo al valore di after touch.

PROGRAM CHANGE viene utilizzato per cambiare o impostare il timbro da utilizzare


per la sequenza MIDI. Non ha il secondo data byte.

Silvio Relandini 8

Il protocollo MIDI
___________________________________________________________________________

PITCH BENDER le tastiere master sono provviste di slider o joystick con le quali
possibile variare laltezza di una nota in esecuzione. Occorrono due data byte per
definire ivalori di incremento o diminuzione dellaltezza sufficientemente fluidi e privi
di zippering (salti) allascolto. I due data byte forniscono in totale 16384 valori
possibili.

CONTROL CHANGE questo messaggio in realt d accesso ad una lista di 128


combinazioni che si riferiscono alle informazioni di espressione e che sono appunto
chiamati control change. Il primo data indica il numero del controller (tra i 128
disponibili) mentre il secondo ne specifica il valore.

Limmagine seguente mostra la lista attualmente implementata. Alcuni non sono stati
definiti, e la loro attribuzione genericamente rispettata anche se, in determinate
situazioni, costruttori diversi possono utilizzarli per modificare qualche parametro delle
proprie macchine.

Silvio Relandini 9

Il protocollo MIDI
___________________________________________________________________________

Osservando pi da vicino i controlli elencati soffermiamoci sugli ultimi quattro che si


riferiscono

ai

Channel

Mode

Message,

messaggi

che

stabiliscono

configurazioni di funzionamento per gli strumenti MIDI, ottenute

possibili

in base alla

combinazione di tre stati operatibi:


- OMNI: indica che lo strumento in grado di rispondere a tutti i messaggi inviati
indifferentemente sui 16i canali MIDI.
- POLY: lo strumento gestisce le proprie voci rispettando richieste polifoniche tese alla
realizzazione di accordi.
- MONO: lo strumento lavora in monofonia.
I quattro modi disponibili, combinando i tre stadi operativi, sono:
-Modo 1: Omni On/Poly lo slave interpreta tutti i messaggi su tutti i canali e in
maniera polifonica il cosidetto modo operativo a prova di idiota: lo slave suona in
ogni caso ed in ogni condizione.
-Modo 2: Omni On/Mono lo slave risponde su tutti i canali ma monofonicamente e
chiaramente non una condizione operativa molto funzionale.
-Modo 3: Omni Off/Poly lo slave risponde in maniera polifonica solamente ai
messaggi che giungono sul suo canale MIDI (specificato in ricezione). E detto

Silvio Relandini 10

Il protocollo MIDI
___________________________________________________________________________

sinteticamente Poly ed utilizzato tipicamente nei sistemi MIDI connessi a cascata,


come abbiamo visto in precedenza.
-Modo 4: Omni Off/Mono lo slave risponde monofonicamente ai messaggi che
giungono sul suo canale MIDI. E detto sinteticamente Mono.
Questi messaggi hanno solamente un data byte.

Local Control
Tra i diversi control change, ne esiste uno molto particolare chiamato Local Control
che utilizzato quando la master possiede al suo interno un modulo sonoro. In tal
caso, per evitare che la tastiera musicale invii il messaggio di Nota On anche al
generatore di suoni interno, ocorre impostare la master su Local OFF (vedere il
manuale operativo della tastiera). Di conseguenza, il messaggio MIDI sar inviato
solamente alla porta MIDI Out come mostrato in figura.

In questa modalit, il generatore interno di suoni si comporta esattamente come uno


slave e pertanto potr essere sfruttato rinviando da un sequencer il messaggio nella
porta MIDI In della master. La struttura del messaggio la seguente:

Silvio Relandini 11

Il protocollo MIDI
___________________________________________________________________________

System Message
I messaggi di sistema si dividono, come abbiamo, visto in tre categorie:
1) Common Message, quattro in totale, danno istruzioni generali a tutto il sistema:
- MIDI Time Code Quarter Frame, un messaggio di time code nel formato
ore:minuti:secondi:frame. Ogni otto messaggi di MIDI Time Code (MTC) identificano
una locazione del codice SMPTE. quindi un messaggio utilizzato per sincronizzare
macchine differenti.

- Song Position Pointer, indica la posizione che il cursore deve assumere durante la
riproduzione di un file MIDI.

Silvio Relandini 12

Il protocollo MIDI
___________________________________________________________________________

- Song Select, consente di selezionare una song allinterno di un sequencer. E


costituito da un solo data byte che indica il numero della song.

- Tune Request: viene utilizzato per accordare lo strumento. E sprovvisto di data


byte.

2) Real Time, sono 6 messaggi di sincronizzazione privi di Data Byte:


- MIDI Clock, utilizzato per sincronizzare strumenti MIDI; viene inviato 24 volte per
ogni nota del valore di un quarto.

- Start, viene utilizzato per portare tutti gli strumenti esterni alla posizione iniziale della song e a
farle partire in riproduzione o registrazione.

- Continue, permette di riprendere la song dal punto in cui stata interrotta.

Silvio Relandini 13

Il protocollo MIDI
___________________________________________________________________________

- Stop, utilizzato per fermare la registrazione o la riproduzione degli strumenti


collegati al sequencer.

- Active Sensing, inviato ogni 300 millisecondi, utilizzato per tenere attiva la
connessione tra master e slave.

- System Reset, ripristina le condizioni di default dello slave

3) System Exclusive (SysEx), sono messaggi che riguardano le funzionalit globali di


ogni strumento e sono utilizzati a seconda delle esigenze proprie degli sviluppatori. I
codici di sistema esclusivo possono essere interpretati solo da categorie di apparecchi
compatibili tra loro. Se lo strumento non in grado di interpretare uno o pi messaggi
di sistema esclusivo, restituir un messaggio di errore. Sono costituiti da una
sequenza il cui inizio rappresentato dal seguente messaggio:

Il messaggio di inizio seguito da un byte contenente il Manufacter ID, che identifica


il costruttore; La sequenza pu essere lunga o breve a seconda delle necessit e della
complessit di quanto si trasmette ma in ogni caso, viene sempre conclusa dal
messaggio end of exclusive.

Silvio Relandini 14

Il protocollo MIDI
___________________________________________________________________________

I parametri di una macchina che si possono modificare tramite il sistema esclusivo


sono generalmente indicati nel manuale fornito con lo strumento, nella sezione
chiamata MIDI Implementation Chart, ma se non sono disponibili esistono programmi
di utilit in grado di produrre la sequenza di sistema esclusivo che si ottiene
collegando lo strumento alle porte MIDI e variandone i parametri.

Gli standard MIDI


Il General MIDI stato introdotto nel 1991 per semplificare le operazioni di riproduzione delle
sequenze MIDI tramite gli stessi timbri. Successivamente, i timbri sono stati ordinati allinterno una
lista i cui numeri sono associati al messaggio di Program Change rispettando sempre la stessa
posizione, a prescindere dalla marca dello strumento. In questo modo, molto semplice riprodurre
una sequenza MIDI che necessita di timbri particolari, basta attivare il banco General MIDI e
iniziare a leggere la sequenza MIDI per caricare automaticamente i timbri (in quanto allinizio di
ogni sequenza si trovano appunto i messaggi di program change). Inoltre, per convenzione, lo
standard dedica il canale MIDI numero 10 ai suoni di batteria e percussione.
Roland ha creato lo standard GS (General System) che permette di utilizzare un numero superiore
di timbri rispetto ai 128 del General MIDI grazie allintroduzione di nuovi messaggi MIDI (Control
Change) come il Bank Select che consente di selezionare i vari banchi dove sono memorizzati i
timbri. Nel 1994 Yamaha introdusse lo standard XG in grado di controllare maggiori banchi e
strumenti nonch drum kit ed effetti con la piena compatibilit con il General MIDI.

MIDIFile
Un midifile una sequenza di dati MIDI costituiti da diversi messaggi distribuiti nei
vari canali in grado di essere interpretata da qualsiasi strumento dotato di porte MIDI.
Lo standard midifile (SMF) stato realizzato nel 1986 dalla Opcode System ed ha
come estensione .mid. E un file di testo codificato ASCII e pertanto occupa poco
spazio. Lo standard midifile diviso in tre formati:
formato 0: racchiude tutti i dati MIDI su ununica traccia.
formato 1: propone i vari dati MIDI su pi tracce.
formato 2: raro da incontrare ma molto potente in quanto consente di mantenere una
certa indipendenza metrica sui dati conservati nelle singole tracce.

Silvio Relandini 15

Potrebbero piacerti anche