Sei sulla pagina 1di 16

Il MIDI - guida esplicativa

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

Il termine MIDI indica due cose: 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, nonostante possa essere soppiantato da protocolli moderni dalle
prestazioni superiori, è rimasto pressoché inalterato ed è tuttora intensamente utilizzato nella
produzione di musica elettronica. I motivi risiedono probabilmente nel ruolo di standard pressoché
incontrastato che esso ha assunto nell'ambito musicale e nella cura riposta dai progettisti nella stesura
delle prime specifiche.

Di fatto, il MIDI ha peculiarità interessanti su più fronti:

• la qualità e la praticità del sistema – L'integrazione tra eventi audio ed eventi MIDI ha
dimostrato di essere una mossa vincente, confermando l'importanza di questo standard nella
realizzazione di musica digitale.
• il peso dei file (nell'ordine dei kB) – Tramite Internet e i software multimediali, il MIDI diventa
un media di uso comune.

Struttura dell’interfaccia MIDI

L’interfaccia MIDI si presenta come due o tre conettori DIN a 5


poli (180 gradi), del tipo usato sui vecchi impianti impianti HiFi.

E' presente un ingresso, marcato MIDI IN, che riceve i segnali


inviati alla tastiera, ed un'uscita, marcata MIDI OUT, che
trasmette i dati verso altri dispositivi MIDI o computer.

I dati che arrivano all'ingresso MIDI IN non vengono


ritrasmessi sull'uscita MiDI OUT.

E' a volte disponibile anche una seconda uscita, marcata MIDI


THRU, che riporta una copia dei dati che arrivano all'ingresso
MIDI IN.

Non è possibile sdoppiare un cavo per collegare due ingressi


MIDI IN ad una sola uscita, ne viceversa. L'uscita MIDI THRU
viene fornita proprio per questo scopo.

L'interfaccia software: il linguaggio MIDI

Una delle caratteristiche fondamentali del MIDI è l'essere un'interfaccia multicanale.


Grazie a delle applicazioni software chiamate sequencer, installabili sia in unità hardware specifiche
che 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, standard mondiale per la sincronizzazione della
musica digitale che costituisce un'implementazione del codice temporale SMPTE.
È anche possibile trasmettere in MIDI, oltre alle note e alle varie informazioni necessarie alla loro
esecuzione, anche del testo sincronizzato con la musica. Questo aspetto è stato ampiamente sfruttato
per fare karaoke. Ai file di questo tipo è spesso cambiata l'estensione da .mid a .kar.

1
Cosa si puo' fare con il MIDI

Di base, il MIDI è un modo


per scambiare informazioni
tra due tastiere.

Le informazioni possono
riguardare qualunque
operazione svolta dal
tastierista, ma l'efficacia dei
collegamento dipende dalla
potenza di ogni interfaccia e
dal livello di compatibilità: al
livello minimo, le note suonate su una tastiera vengono suonate anche sull'altra.

Con tastiere dello stesso tipo, o in particolare della stessa marca, la compatibilità aumenta moltissimo
e il MIDI consente di fare molto di più. Occorre soltanto che la tastiera ricevente sia predisposta per
un certo tipo di controllo e che l'altra sia in grado di trasmettere i segnali adeguati.

In generale, oltre alle note, è possibile controllare almeno il pitch bend e il cambio dei programmi
(timbri) cioè scegliere il programma, per es., num. 15 contemporaneamente sulle due tastiere.

Ad un estremo del collegamento può esserci un computer; in teoria attraverso un collegamento MIDI
è possibile controllare a distanza con un computer tutte le operazioni che potrebbero essere eseguite
da un tastierista (es. cambiare suono, pitch bend, ecc.), più tutte quelle a portata di computer (es.
sequencer).

Naturalmente sono incluse le informazioni dinamiche, cioè la velocità di abbassamento dei tasto, la
forza applicata sul tasto dopo averlo abbassato (after touch) e la velocità di rilascio (Prophet T8).

Modi e canali

Anche se il MIDI usa una sola coppia di fili, è


necessario immaginare che all'interno dei cavo di
collegamento vi siano 16 linee diverse, che
vengono chiamate CANALI.

Esistono 3 MODI di funzionamento diversi:


OMNI, POLY e MONO.

In modo OMNI i dati vengono trasmessi sui


canale 1, ma vengono ricevuti da tutti i 16 canali.
Durante il funzionamento in questo modo una tastiera trasmette solo per quelle in ascolto sul canale 1,
ma non è in grado di distinguere da dove provengono i dati che riceve e li accetta indiscriminatamente.

In modo POLY i dati vengono ricevuti da uno solo dei 16 canali, a scelta. In questo modo un computer
può trasmettere un arrangiamento a 16 parti su una sola linea.

In modo MONO viene utilizzato un canale diverso per ogni voce di un polifonico. Per es. il Prophet T8 in
questo modo trasmette e riceve contemporaneamente sui canali 1-8. Ogni voce può venire controllata
individualmente, rendendo possibili dei veri legati (cambiando la frequenza di una voce senza influire sul
suo inviluppo), mentre negli altri modi è necessario disattivare la precedente nota prima di attivare la
successiva. Anche la trasmissione del controllo polifonico della pressione (after touch) risulta migliorata.

2
MIDI e altro

MIDI non riguarda solo le


tastiere.

Una batteria elettronica può


usarla per ricevere i segnali
di sincronismo, per
cambiare ritmo quando
viene cambiato suono al
synth, e per tutto quello che
ai costruttori verrà in mente
di realizzare.

Il sequencer digitale
(computer) trova nel MIDI
la chiave per penetrare nel
cuore di tutte le tastiere.

La cosa senza dubbio più


interessante è che il
sintetizzatore diventa,
grazie al MIDI, una periferica di un qualunque calcolatore al pari di una stampante.

Il sequencer, il composer non sono altro che particolari calcolatori dediti ad una sola funzione;
qualunque personal computer può svolgere funzioni analoghe.

Tra le tante cose si può trascrivere in modo automatico un improvvisazione, controllare via computer i
video in relazione alla musica, realizzare un sistema di educazione musicale computerizzato, ecc.ecc.

Il linguaggio Midi

Abbiamo visto come collegare fisicamente diversi strumenti affinchè siano in grado di comunicare
tramite l'interfaccia MIDI.
Vediamo ora quali sono i messaggi MIDI, la loro funzione e le loro modalità di trasmissione e
ricezione.
Prima di affrontare questo discorso dobbiamo definire alcune delle caratteristiche basilari
dell'interfaccia MIDI ossia la sua logica di funzionamento e la natura dei dati supportati.
Una delle caratteristiche fondamentali del MIDI e’ di essere un’interfaccia multicanale.

Il MIDI supporta fino 16 canali (1-16).


I messaggi midi indirizzabili tramite l'indicazione numerica di canale vengono chiamati :"Channel
Messages".
Appartengono a questa famiglia due specie di messaggi i Channel Voices Messages e i Channel
Mode Messages.

Channel Messages

Come abbiamo visto i Channel Messages sono quei messaggi Midi che possono essere indirizzati
tramite un numero univoco di canale.

Abbiamo inoltre detto che due tipologie di messaggi fanno parte della grande famiglia dei Channel
Messages ossia i Channel Voices Messages ed i Channel Mode Messages.
Vediamo ora quali sono e a cosa servono i Channel Voices Messages:

3
Sono Channel Voices Messages i messaggi di:

_Note on

_Note off

_Aftertouch (sia polifonico che di canale )

_Pitch bend

_Program change

_Control change ( Da 0 a 119 )

Vediamo dal lato pratico come funzionano e cosa producono da un punto di vista musicale alcuni
di questi messaggi.

Note On & Note Off

Producono l’inizio e la fine di un evento sonoro.


Questi messaggi contengono diverse informazioni fondamentali, sia per la loro logica di
funzionamento che per la caratterizzazione del risultato sonoro.
Un messaggio "Note On "contiene le seguenti informazioni:
Numero di nota espressa in valori da O a 127.
Velocita’ di pressione del tasto (dinamica di esecuzione, velocity-on), sempre con un’escursione
numerica da 0 a 127.
Informazioni di canale, da 1 a 16.
Nel caso di "Note Off" al posto del valore di velocity-off viene rilevata la velocita’ di
rilascio(velocity-off). In realta’ questo valore, nella maggior parte dei casi, viene ignorato.
Cerchiamo ora di capire quali sono i dati che viaggiano da uno strumento all'altro, attraverso i cavi
Midi e come questi vengono "assemblati".

Channel Voices Messages

Ecco gli altri messaggi che fanno parte dei Channel Messages i "Channel Voices Messages".

Aftertouch:

Come si intuisce dal nome, che tradotto significa "dopo il tocco", questo messaggio esprime i
valori di pressione che si esercitano su un tasto dopo che questo e’ stato premuto. I valori vanno
come sempre da 0 a 127.
Ma che effetto produce l’ Aftertouch?
In questo caso e’ difficile dare una risposta precisa, e’ possibile infatti assegnare a questo evento
svariati "effetti".
Tutto dipende dalla versatilita’ dello strumento, possiamo ad esempio fare in modo che ai valori
generati dalla pressione sul tasto corrisponda un incremento del vibrato oppure un aumento del
volume o ancora intervenire sui filtri del canale di sintesi.
Esistono inoltre due tipi di Aftertouch: Polyphonic aftertouch e Channel aftertouch .
Il primo (Polyphonic aftertouch) consente di generare dei valori di pressione indipendenti per ogni
tasto mentre con il secondo(Channel aftertouch) viene prodotto un solo valore,unico per tutte le
note suonate (corrispondente al valore piu’ alto).
Anche in questo caso la presenza di ambedue i sistemi o di nessuno di essi dipende dalle scelte del
costruttore.
Da segnalare che il Polyphonic aftertouch necessita di un sensore per ogni tasto, non c’e’ quindi da
stupirsi che questa soluzione sia presente per lo piu’ su attrezzature di un certo livello e prezzo.

4
Pitch Bend:

E’ stato e rimane uno dei controlli piu’ utlizzati (e abusati) dai tastieristi nell’intento di raggiungere
le capacita’ espressive di altri strumenti come la chitarra ed i fiati.
Il Pitch Bend provoca come effeto sonoro la modifica dell’intonazione della nota suonata in
maniera tanto piu’ rilevante , quanto piu’ ampia e’ l’azione esercitata sulla ruota o leva adibita ad
innescare questo controllo.
La trasmissione dei dati MIDI relativi al Pitch Bend e’ un po’ piu’ complessa che in altri controlli a
causa della notevole quantita di dati che e’ necessario generare per assicurare la continuita’ e la
fluidita’ che caratterizzano questo effetto.
Per questo motivo un messaggio di Pitch Bend è composto anzichè dai due Byte, caratteristici di
quasi tutti i controlli, da tre Byte.
Il primo Byte (status byte) è sempre riservato al rilevamento del tipo di controllo e del numero di
canale midi.
Il secondo ed il terzo Byte (Value Byte) esprimono i valori d'intervento.
La combinazione tra due Byte in grado di gestire 128 valori numerici ciascuno, consente un
escursione totale di 16.384 step.
Vista la necessità di dover creare Pitch Bend sia in senso ascendente che discendente i valori
definitivi saranno:
-8192 0 +8191.

Program Change:

Viene utilizzato per inviare un "cambio di programma" i valori possibili vanno da 0 a 127.
Visto il proliferare di tastiere, expander, effetti con a bordo spesso piu’ di mille suoni e’ facile
immaginare come questo comando risulti del tutto insufficiente se usato da solo.
Vedremo in seguito come l’abbinamento tra i Program Change Messages ed altri Control Change
sia possibile superare il limite dei 128 suoni raggiungibili da questo controllo.
Proseguiremo analizzando un'importante famiglia di controlli midi conosciuti con il nome di Control
Changes.

Control Change

I Control Change sono una famiglia di 128 controlli, numerati da 0 a 127.


Tramite questi messaggi e’ possibile modificare numerosi aspetti, in fase di programmazione o
riproduzione, di un programma MIDI, intervenendo su vari parametri .
N.B. La capacita’ o meno di rispondere correttamente ad un Control Change va verificata nella
Midi Table dello strumento.

Tabella dei Control Change:


CC n° Funzione Valori Uso
0 Bank Select 0-127 MSB
1 Modulation wheel 0-127 MSB
2 Breath control 0-127 MSB
3 Undefined 0-127 MSB
4 Foot contoller 0-127 MSB
5 Portamento time 0-127 MSB
6 Data entry 0-127 MSB
7 Channel Volume 0-127 MSB
8 Balance 0-127 MSB
9 Undefined 0-127 MSB
10 Pan 0-127 MSB
11 Expression 0-127 MSB
12 Effect control 1 0-127 MSB
13 Effect control 2 0-127 MSB

5
14 Undefined 0-127 MSB
15 Undefined 0-127 MSB
16 General purpose controller 0-127 MSB
17 General purpose controller 0-127 MSB
18 General purpose controller 0-127 MSB
19 General purpose controller 0-127 MSB
20 Undefined 0-127 MSB
21 Undefined 0-127 MSB
22 Undefined 0-127 MSB
23 Undefined 0-127 MSB
24 Undefined 0-127 MSB
25 Undefined 0-127 MSB
26 Undefined 0-127 MSB
27 Undefined 0-127 MSB
28 Undefined 0-127 MSB
29 Undefined 0-127 MSB
30 Undefined 0-127 MSB
31 Undefined 0-127 MSB
32 Bank Select 0-127 LSB
33 Modulation wheel 0-127 LSB
34 Breath control 0-127 LSB
35 Undefined 0-127 LSB
36 Foot contoller 0-127 LSB
37 Portamento time 0-127 LSB
38 Data entry 0-127 LSB
39 Channel Volume 0-127 LSB
40 Balance 0-127 LSB
41 Undefined 0-127 LSB
42 Pan 0-127 LSB
43 Expression 0-127 LSB
44 Effect control 1 0-127 LSB
45 Effect control 2 0-127 LSB
46 Undefined 0-127 LSB
47 Undefined 0-127 LSB
48 General purpose controller 0-127 LSB
49 General purpose controller 0-127 LSB
50 General purpose controller 0-127 LSB
51 General purpose controller 0-127 LSB
52 Undefined 0-127 LSB
53 Undefined 0-127 LSB
54 Undefined 0-127 LSB
55 Undefined 0-127 LSB
56 Undefined 0-127 LSB
57 Undefined 0-127 LSB
58 Undefined 0-127 LSB
59 Undefined 0-127 LSB
60 Undefined 0-127 LSB

6
61 Undefined 0-127 LSB
62 Undefined 0-127 LSB
63 Undefined 0-127 LSB
64 Damper (Sustain) on/off Off 0-63 / On 64-127
65 Portamento on/off Off 0-63 / On 64-127
66 Sostenuto on/off Off 0-63 / On 64-127
67 Soft pedal Off 0-63 / On 64-127
68 Legato Footswitch Off 0-63 / On 64-127
69 Hold 2 Off 0-63 / On 64-127
70 Sound variation 0-127 LSB
71 Tinbre /Harmonic intens. 0-127 LSB
72 Release Time 0-127 LSB
73 Attack Time 0-127 LSB
74 Brightness 0-127 LSB
75 Decay Time 0-127 LSB
76 Vibrato rate 0-127 LSB
77 Vibrato Depth 0-127 LSB
78 Vibrato Delay 0-127 LSB
79 Sound controll (10) 0-127 LSB
80 General Purpose Contr. (5) 0-127 LSB
81 General Purpose Contr. (6) 0-127 LSB
82 General Purpose Contr. (7) 0-127 LSB
83 General Purpose Contr. (8) 0-127 LSB
84 Portamento control 0-127 LSB
85 Undefined 0-127 LSB
86 Undefined 0-127 LSB
87 Undefined 0-127 LSB
88 Undefined 0-127 LSB
89 Undefined 0-127 LSB
90 Undefined 0-127 LSB
91 Reverb send level 0-127 LSB
92 Tremolo depth (effect 2 depth) 0-127 LSB
93 Chorus send level 0-127 LSB
94 Effect 4 depth 0-127 LSB
95 Effect 5 depth 0-127 LSB
96 Data entry ( + 1 ) 0-127 -
97 Data entry ( - 1 ) 0-127 -
98 Non registred Param.Numb. LSB 0-127 LSB
99 Non registred Param.Numb. MSB 0-127 MSB
100 Registred Param.Numb. LSB 0-127 LSB
101 Registred Param.Numb. MSB 0-127 MSB
102 Undefined - -
103 Undefined - -
104 Undefined - -
105 Undefined - -
106 Undefined - -
107 Undefined - -

7
108 Undefined - -
109 Undefined - -
110 Undefined - -
111 Undefined - -
112 Undefined - -
113 Undefined - -
114 Undefined - -
115 Undefined - -
116 Undefined - -
117 Undefined - -
118 Undefined - -
119 Undefined - -
120* All Sound Off 0 -
121* Reset All Controllers 0 -
122* Local Control on/off On= 0 Off= 127 -
123* All Note Off 0 -
124* Omni Mode off (invia anche CC 123) 0 -
125* Omni Mode on (invia anche CC 123) 0 -
126* Poly Mode Off /Mono On(invia anche CC 123) = num.di canale -
127* Poly Mode on/Mono Off(invia anche CC 123) 0 -

Channel Mode Messages

Tutti i controlli esaminati fin'ora fanno parte della grande famiglia dei Channel Messages, e più
precisamente alla sotto-famiglia dei Channel Voices Messages.
Dobbiamo ora analizzare l'altra sotto-famiglia dei channel Messages, i Channel Mode Messages,
quest'ultima è formata dai control changes dal numero 120 a numero 127.
Vediamo più precisamente l'azione svolta da questi controlli:
CC 120 All sound off = Determina l'interruzione di tutti i suoni in corso.
CC 121 Reset all controllers= Riporta tutti controlli alla posizione di default.
CC 122 Local on/off = Scollega la tastiera dal modulo sonoro interno. La tastiera resta abilitata
alla trasmissione dei dati e può pilotare i moduli sonori, esclusivamente tramite Midi Out, secondo
l'assegnazione di canale.
CC 123 All note off = Del tutto simile al controllo numero 120.
Un discorso a parte meritano i controlli da 124 a 127.
Tramite questi quattro controlli, possiamo decidere le modalità di ricezione e/o trasmissione del
nostro strumento Midi.
Le tre modalità possibili sono:
OMNI: Lo strumento risponde a tutti gli eventi Midi, senza nessuna distinzione di canale.
POLY: Lo strumento riconosce esclusivamente gli eventi su un canale Midi stabilito, escludendo gli
altri quindici. (Con Poly on attivato è sottointesa la modalità Mono Off)
MONO: Lo strumento è in grado di ricevere su tutti e sedici i canali e predisposto per attribuire ad
ognuno una voce. (Con Poly Off settato si attiva, ovviamente, la modalità Mono On)
Ecco la corrispondenza tra le modalità appena viste e i quattro controlli adibiti al richiamo di
queste funzioni:
CC 124 OMNI OFF
CC 125 OMNI ON
CC 126 POLY OFF ( MONO ON)
CC 127 POLY ON ( MONO OFF)

MSB & LSB

Come avrete notato, nella tabella dei Control Changes appare una colonna che specifica se il tipo
di controllo viene usato come MSB (Most Significant Byte) o LSB (Least Significant Byte).

8
I controlli MSB ed LSB possono essere usati in coppia, questo è particolarmente utile quando per
una determinata funzione abbiamo bisogno di esprimere un valore superiore a 127 oppure esiste
una necessità di un frazionamento dell'escursione totale.
Ogni singolo controllo midi, infatti non può esprimere da solo un numero più alto di 127.
Per alcuni tipi di controlli questo valore è sufficiente, come nel caso di un messaggio di volume,
dato che gli strumenti stessi sono stati concepiti per non superare questo limite.
Esistono però dei casi in cui i valori richiamabili tramite un unico Control Change sono inferiori alle
necessità .
Un esempio sono i Program Changes o per essere più precisi i controlli di "Bank Select" .
I possessori di un Roland JV1080, ad esempio, non potrebbero mai richiamare via Midi tutti i
numerosi programs contenuti nella memoria di questa macchina, usando il solo Program Change.
Questo Synt, infatti, è dotato di serie di ben 512 preset+128 user Program, suddivisi in 5 banchi
di 128 Programs ciascuno, numeri che possono aumentare considerevolmente con l'inserimento di
Card aggiuntive.
A questo punto possiamo ricorrere per la selezione dei banchi ai CC 0 (Msb) e CC 32 (Lsb) che ci
permettono , grazie alle loro possibilità combinatorie, di richiamare la bellezza di 16384 banchi
diversi.
Continueremo a specificare con i Program Change la locazione dove si trova, all'interno del banco
richiamato, il suono che desideriamo attivare.
Nel caso specifico del JV1080 il messaggio
CC 0 = 81
CC 32 = 0
Pr.Change = 1
ci permette di raggiungere il suono di Piano Acustico che corrisponde al primo suono del banco
"Preset A ".
Anche altri controlli usano la combinazione MSB + LSB.
Stiamo parlando dei CC RPN (Registered Parameter Number) e dei CC NRPN (Non-Registered
Parameter Number).

Control Rpn & Nrpn

I controlli 98 - 99, NRPN (Non-Registered Parameter Number) e 100 — 101 RPN (Registered
Parameter Number) consentono di ampliare le possibilita’ di editing degli strumenti tramite i controlli
Midi.
Come si puo’ intuire dal nome i controlli 100-101 (RPN) svolgono il loro compito intervenendo su
parametri "registrati" ossia stabiliti dalle associazioni che si occupano della definizione dello
standard Midi (IMA e JMSC).
Le funzioni assegnate ai controlli 98 — 99 (NRPN) sono a discrezione dei costruttori.
Nella tabella che riporta le caratteristiche dell’implementazione Midi che accompagna ogni
strumento, possiamo risalire ai parametri assegnati ai controlli NRPN.
Questi, quindi, possono variare da strumento a strumento.
La sintassi dei CC. NRPN ed RPN e’ identica.
La definizione dei parametri sui quali intervenire si ottiene con la combinazione dei CC 98 (NRPN -
LSB) e 99 (NRPN - MSB) per i NRPN mentre per i RPN si ricorre ai CC 10 (RPN - LSB) e 101 (NRPN
- MSB).
Il valore d’intervento, sarà espresso usando i CC 6 (data entry MSB) e 38 (data entry LSB) sia per
RPN che NRPN.
I parametri definiti, per i controlli 100 e 101 (RPN) sono i seguenti:
Funzioni editabili CC 65 (Msb) CC 64 (Lsb)
Pitch Bend Sensivity 0 0
Channel Fine Tuning 0 1
Channel Coarse Tuning 0 2
Tuning Program Change 0 3
Tuning Bank Select 0 4
Nella pratica tutto risulta piu’ semplice di quanto non lo sia a parole.

9
NRPN

L’uso dei controlli NRPN ossia i CC. n° 98 (LSB) e 99 (MSB) e’ del tutto identico a quello dei CC.
RPN.
I parametri raggiungibili e il loro "indirizzo numerico" e’ rintracciabile nella tabella Midi di ogni
strumento.
Va inoltre ricordato che i CC. RPN ed NRPN appartengono, come del resto gli altri Control
Changes, alla famiglia dei Channel Voices Messages. Questo significa che operano secondo
l'indirizzo di canale specificato.

System Messages

Con i System Messages è possibile controllare alcuni parametri in grado di influire sul
funzionamento di un intero sistema Midi.
Per questo motivo i System Messages non vengono indirizzati secondo la logica dei canali midi
ma, quando necessario, la loro destinazione e’ espressa secondo altri criteri.
I System Messages furono implementati ufficialmente nel protocollo Midi nel 1987, ad eccezione di
MTC (Midi Time Code) la cui definizione risale all’anno precedente.
I System Messages sono elencabili in tre categorie:
System Common Messages.
Messaggi di utilità e sincronizzazione non real-time.
System Real Time Messages.
Messaggi responsabili della sincronizzazione dei componenti di sistema, basata su Midi-Clock.
System Exclusive Messages.
Messaggi il cui formato è in gran parte definibile liberamente dai costruttori.
Rappresentano il più potente strumento di editing per gli strumenti Midi.

System Common Messages.

Vediamo i messaggi di sistema secondo la loro categoria di appartenenza:


Sono System Common Messages :
MTC (Midi Time Code) Quarter Frame.
Questi messaggi consentono la sincronizzazione, tra un sistema Midi e apparecchiature Audio e
Video.
Queste ultime individuano la posizione di un evento, basandosi sul tempo assoluto espresso in
ore, minuti, secondi e frames.
Il codice standard utilizzato per questo scopo si chiama SMPTE.
Ogni secondo puo’ venir suddiviso in un numero di Frame , che varia da 24 a 30 (Frames per
secondo) in base al tipo di standard SMPTE utilizzato.
Il Midi, invece, riconosce il posizionamento degli eventi secondo una suddivisione musicale
espressa in misure, quarti, etc.
Il Midi Time Code Quarter Frame, consente ad un sitema Midi di "agganciarsi" ai valori temporali
assoluti del codice SMPTE utilizzato su apparecchiature come registratori a nastro,
videoregistratori, etc.
Il nome MTC Quarter Frame sta ad indicare che, per garantire la sincronizzazione, vengono
trasmessi quattro di questi messaggi ad ogni frame.
Un esempio pratico dell’utilizzo del Midi Time Code e’ la sincronizzazione tra musica ed immagini.
Disponendo di attrezzature adatte sara’ quindi possibile posizionare un evento sonoro, registrato
ad esempio su un sequencer, in un determinato punto della sequenza video, in maniera molto
precisa.
Song Select.
Questo messaggio consente di programmare la selezione di song differenti durante il playback di
un programma midi.
Sono di solito abilitati alla ricezione di questo messaggio sequencer e drum-machine.
Song Position Pointer.
Consente a tutte le apparecchiature del sistema di posizionarsi su un punto preciso all’interno di
una song in modo da poter avviare o riavviare il playback senza dover ripartire dall’inizio.
(La risoluzione e’ un Byte ogni 6 Tick.)
Tune Request.

10
Trasmette una richiesta di accordatura. L’uso di questo messaggio e’ indicato in presenza di
strumenti analogici caratterizzati da un’accordatura che puo’ variare a secondo delle condizioni di
utilizzo.
Non necessario con apparecchiature digitali.
EOX Messages.
Indica la fine di ogni messaggio di sistema esclusivo.
(Vedi capitolo sui "System Exclusive Messages").
Proseguiamo con i System Real Time Messages.

System Real Messages

Questi messaggi sono adibiti alle funzioni di sincronismo tra le apparecchiature di un sistema Midi
ed altre funzioni di playback.
I System Real Messages, hanno la priorita’ sugli altri eventi Midi.
Vediamoli:
Timing Clock.
Il Timing Clock definisce il tempo metronomico di una song e viene trasmesso, all'interno del
nostro sistema midi, a quelle macchine che necessitano di questa informazione di Sync.
E’ indispensabile nel caso si debbano sincronizzare varie apparecchiature come drum-machine,
sequencer, etc.
Lo strumento definito come Master trasmettera’ le informazioni di Timing Clock agli strumenti
"Slave" abilitati alla ricezione di questo messaggio.
(Il sync e’ garantito con l’invio di 24 messaggi per ogni quarto.)
Sono System Real Message anche i comandi di :
Start
Continue
Stop
dei quali non e’ necessario spiegare la funzione.
Active Sensing
Questo messaggio merita un discorso a parte .
Active Sensing, se attivato, controlla lo stato di attivita’ dei componenti del sistema.
Se per un periodo di 300ms non viene ricevuto alcun segnale di attivita’ lo strumento ricevente
azzera tutti i messaggi sospesi.
Ad esempio se scolleghiamo il cavo Midi di un modulo sonoro mentre questo sta riproducendo una
sequenza , le note attive in quel momento continueranno a suonare, in attesa di ricevere il
corrispondente messaggio di note-off. Con Active Sensing abilitato lo strumento stesso si resetta
automaticamente troncando tutti i suoni ancora in riproduzione.
System Reset Messages
L’invio di questo messaggio provoca il reset totale della macchina.
System Exclusive Messages
L’uso dei System Exclusive Messages consente di intervenire e modificare, in maniera molto
profonda e mirata, tutti i parametri di uno strumento Midi.
Si chiamano "esclusivi" perche’ ogni costruttore, distintamente per ogni prodotto, puo’ stabilire
liberamente il formato ed il livello di implementazione di questo tipo di messaggio e le funzionalita’
relative.
Per evitare incompatibilita’ di gestione l’IMA , d’accordo con MMA e JMSC ha stabilito un formato
base per questi messaggi che tutti i produttori devono rispettare.
Tutti i messaggi di sistema esclusivo devono contenere i seguenti bytes:
<F0H> <ID Number> <Data> <EOX>
Il primo Byte <FOH> rappresenta lo Status Byte, serve cioe’ ad avvisare lo strumento ricevente
che dovra’ interpretare il messaggio in arrivo come un System Exclusive Messagge.
L’ <ID Number> indica il destinatario del messaggio.
Vale la pena ricordare che i Messaggi di Sistema non usano per il loro indirizzamento la logica dei
canali Midi.
Molti tra questi messaggi, essendo appunto messaggi di sistema, non necessitano neppure di un
indirizzo specifico.
Nel caso dei System Exclusive Messagges e’ invece indispensabile inviare i dati allo strumento che
sara’ poi in grado di interpretarli.

11
A questo scopo L’IMA ha assegnato, ed assegna su richiesta, ad ogni produttore un ID Number
univoco.
Alcuni degli ID gia’ assegnati sono ad esempio:
ID 41H a Roland
ID 43H a Yamaha
ID 47H ad Akay
ID 06H a Lexicon.
La logica di funzionamento dell’ ID Number nei messaggi di sistema esclusivo e’ del tutto simile a
quella dei canali Midi negli altri tipi di messaggi.
Quando lo strumento riceve un messaggio esclusivo verifica l’ID Number, se e’ quello appropriato
lo interpreta, altrimenti lo ignora.
Per dovere di cronaca va segnalato che oltre all’ID Number esistono dei Sub-ID che vengono,
quasi sempre, implementati dai costruttori nei propri formati, questi possono essere ad esempio il
Model ID (un numero specifico che indica il modello dello strumento) e il Device ID (con valori
definibili tra 17 e 32) che consente di specificare ulteriormente il destinatario del messaggio.
La "zona" <Data> conterra’ tutti gli indirizzi dei parametri oggetto dell’editing ed i valori che
desideriamo ottenere.
Tutte le indicazioni e i dati necessari alla compilazione di un messaggio di sistema esclusivo, sono
presenti nella Midi Table di ogni strumento.
Ricordiamo che ogni costruttore puo’ utilizzare un formato diverso e che questo può variare anche
tra strumenti dello stesso produttore.
Possiamo trovare strumenti che rispondono correttamente a stringhe di SysEx (righe di codice) di
7 byte oppure di 12 byte, ....puo’ essere richiesto l’inserimento di un valore di controllo detto
Checksum oppure no.
Affronteremo dettagliatamente l’argomento nella "Guida al linguaggio informatico del MIDI", in
preparazione.
Il Byte <EOX> indica la fine di ogni messaggio di sistema esclusivo. Il valore esadecimale
corrispondente e’ F7.
Concludiamo questo argomento facendo una panoramica su altri Messaggi di Sistema, dedicati a
particolari funzioni.
Il General Midi (GM)

Quando si cambia uno strumento con il program change esso dà l'informazione ad un modulo sonoro
che a seconda dell'implementazione può far corrispondere il suono desiderato oppure un altro suono
completamente diverso da quello scelto. Ad esempio, se su di un sintetizzatore A la patch 1 corrisponde
ad un organo non è detto che la patch 1 di un sintetizzatore B sia uguale, anzi potrebbe corrispondere
tutt'altro strumento.
Si tratta quindi di stabilire uno standard in modo che tutti i sintetizzatori, sebbene con suoni diversi,
facciano corrispondere gli strumenti con patch già prestabiliti. Nel 1991 fu introdotto lo standard GM,
general MIDI level 1.
Uno strumento musicale per essere GM compatibile deve associare ad ogni valore di program change
una path stabilita.
La mappa degli strumenti GM con la patch corrispondente è rappresentata in seguito.
Inoltre per convenzione, uno strumento GM deve utilizzare il canale 10 per la batteria e le percussioni.
Roland GS General System.
Lo standard GS è un evoluzione dello standard general MIDI level 1 ed è stato introdotto dalla Roland.
Questo standard permette infatti di utilizzare più strumenti rispetto ai 128 consentiti dal GM,e introduce
nuovi tipi di messaggi e di controller. Il GS introduce il concetto di Bank Select, esso unito al program
change permette di avere 128 variazioni per ogni singolo strumento. N.B. il numero di banchi a
disposizione in un sintetizzatore dipende esclusivamente dal produttore dello strumento e non dalle
specifiche GS. Inoltre lo standard GS permette di modificare effetti audio come il chorus e il reverbero
ecc.
Yamaha XG
Lo standard XG fu introdotto dalla Yamaha nel 1994 e rappresenta un ulteriore evoluzione del GM e
GS.

12
Esso rappresenta lo standard più evoluto attualmente disponibile:è aumentato il numero di strumenti,il
numero di Drum Kit, il numero di effetti ecc.
Ovviamente lo standard XG è compatibile con lo standard GM level 1, ossia se suoniamo una sequenza
che rispetta le regole GM su di un modulo XG essa verrà suonata con gli stessi strumenti che gli erano
stati fissati per il GM.
Anche il viceversa vale, cioè suonare una base MIDI XG su di un modulo GM, ma ovviamente si
perdono tutti i vantaggi offerti dallo standard XG.Inoltre un sintetizzatore XG è in grado di riprodurre
correttamente le sequenze GS, previa trasmissione di un comando GS Reset.

ORDINE E DISPOSIZIONI DEI SUONI SULLO STANDARD GM


1=Acoustic Grand Piano
2=Bright Acoustic Piano
3=Electric Grand Piano
4=Honkytonk Piano
5=Rhodes Piano
6=Chorused Piano
7=Harpsichord
8=Clavinet
9=Celesta
10=Glockenspiel
11=Music Box
12=Vibraphone
13=Marimba
14=Xylophone
15=Tubular Bells
16=Dulcimer
17=Hammond Organ
18=Percussive Organ
19=Rock Organ
20=Church Organ
21=Reed Organ
22=Accordion
23=Harmonica
24=Tango Accordion
25=Acoustic Guitar (nylon)
26=Acoustic Guitar (steel)
27=Electric Guitar (jazz)
28=Electric Guitar (clean)
29=Electric Guitar (muted)
30=Overdriven Guitar
31=Distortion Guitar
32=Guitar Harmonics
33=Acoustic Bass
34=Electric Bass (finger)
35=Electric Bass (pick)
36=Fretless Bass
37=Slap Bass 1
38=Slap Bass 2
39=Synth Bass 1
40=Synth Bass 2
41=Violin
42=Viola

13
43=Cello
44=Contrabass
45=Tremolo Strings
46=Pizzicato Strings
47=Orchestral Harp
48=Timpani
49=String Ensemble 1
50=String Ensemble 2
51=SynthStrings 1
52=SynthStrings 2
53=Choir Aahs
54=Voice Oohs
55=Synth Voice
56=Orchestra Hit
57=Trumpet
58=Trombone
59=Tuba
60=Muted Trumpet
61=French Horn
62=Brass Section
63=Synth Brass 1
64=Synth Brass 2
65=Soprano Sax
66=Alto Sax
67=Tenor Sax
68=Baritone Sax
69=Oboe
70=English Horn
71=Bassoon
72=Clarinet
73=Piccolo
74=Flute
75=Recorder
76=Pan Flute
77=Bottle Blow
78=Shakuhachi
79=Whistle
80=Ocarina
81=Lead 1 (square)
82=Lead 2 (sawtooth)
83=Lead 3 (calliope
lead)
84=Lead 4 (chiff lead)
85=Lead(charang)
86=Lead 6 (voice)
87=Lead 7 (fifths)
88=Lead 8 (bass + lead)
89=Pad 1 (new age)
90=Pad 2 (warm)
91=Pad 3 (polysynth)
92=Pad 4 (choir)
93=Pad 5 (bowed)

14
94=Pad 6 (metallic)
95=Pad 7 (halo)
96=Pad 8 (sweep)
97=FX 1 (rain)
98=FX 2 (soundtrack)
99=FX 3 (crystal)
100=FX4 (atmosphere)
101=FX 5 (brightness)
102=FX 6 (goblins)
103=FX 7 (echoes)
104=FX 8 (sci-fi)
105=Sitar
106=Banjo
107=Shamisen
108=Koto
109=Kalimba
110=Bagpipe
111=Fiddle
112=Shanai
113=Tinkle Bell
114=Agogo
115=Steel Drums
116=Woodblock
117=Taiko Drum
118=Melodic Tom
119=Synth Drum
120=Reverse Cymbal
121=Guitar Fret Noise
122=Breath Noise
123=Seashore
124=Bird Tweet
125=Telephone Ring
126=Helicopter
127=Applause
128=Gunshot

Che cos'è un file MIDI


Un midifile è essenzialmente un file di testo nel quale vengono memorizzate le informazioni che
servono ad un sintetizzatore, un expander e via dicendo per riprodurre una song.
Per importare un midifile su di uno strumento è necessario che quest'ultimo abbia un lettore di Floppy
disk o un Hard disk su cui sono memorizzate le song. Il problema che è sempre ricorrente quando si
parla di file è lo standard da adottare, cioè come strutturare il file in maniera tale che tutte le
apparecchiature possano leggere correttamente lo stesso file. Se una casa registra i dati per riprodurre
una sequenza in modo proprietario è impossibile accedere al file (e quindi interpretarlo correttamente)
con dispositivi di altre marche.
E' stato necessario introdurre quindi un formato standard di file MIDI in modo che tutti i dispositivi
potessero leggerli. In realtà il problema dello standard fu risolto nel 1986 (ancora prima dell'avvento
del GM) dalla Opcode System con l'introduzione di un file di scambio standard per tutte le piattaforme
hardware: SMF (Standard MIDI File).

15
SMF (Standard MIDI File)

Uno SMF viene comunemente chiamato file MIDI o file.mid poiché mid è l'estensione che utilizzano
appunto questi file in ambito informatico. Questi file vengono codificati in formato ASCII (American
Standard Code for Information Interchange) e permette di scambiare le informazioni tra un dispositivo
ad un altro in maniera semplice e pratica utilizzando comuni floppy disk o altri dispositivi di
memorizzazione.
N.B. Gli Standard MIDI File non sono né file General MIDI, né XG e neppure GS!!! Sono solamente
un insieme di istruzioni MIDI che eventualmente possono seguire le raccomandazioni GM,GS,XG.
Poiché i file MIDI sono file di testo essi occupano poco spazio in un disco. Questo permette di salvare
più midisongs in uno stesso disco. Generalmente un file MIDI non occupa più di 60KB, a differenza di
un file audio digitale che per essere registrato con una buona qualità ha bisogno di 15 Megabytes c.a.
per ogni minuto di registrazione.
Un file audio digitale contiene tutte le informazioni sullo spettro del suono, mentre un midifile contiene
solo le istruzioni che sono necessarie ad un sintetizzatore per riprodurre una song.
Quindi un suono digitale verrà riprodotto in maniera uguale per tutte le piattaforme, e la qualità del
suono dipenderà dalle casse con cui si ascolta, mentre per i midifile la qualità del suono dipende
esclusivamente dal tipo di expander o periferica in genere che si collega.
Ultimamente, con l'avvento del karaoke si è pensato di inserire all'interno del midifile anche il testo
della canzone in modo che sulle tastiere che lo permettono è possibile seguire la canzone leggendo i
testi sul display della tastiera stessa. Attenzione però, non tutte le basi midi contengono i testi.

Formati di uno Standard MIDI File

Uno standard MIDI file si divide in tre formati:


- Formato 0: questo formato racchiude in una sola traccia tutti i dati. E' il formato più semplice di tutti e
per questo motivo offre grande compatibilità.
- Formato 1: questo formato registra i dati MIDI su più tracce e quindi, a differenza del formato 0,
permette una rielaborazione delle stesse in maniera più comoda.
- Formato 2: questo formato è più raro da incontrare, ma permette di variare in ogni singolo canale
iltempo il meter key ecc. in modo che in uno stesso file si trovino più song.

16