Sei sulla pagina 1di 24

Capitolo 4

Il M.I.D.I.

4.1 Cosa è il M.I.D.I.


MIDI è l’acronimo di Musical Instrument Digital Interface (interfaccia digi-
tale per strumenti musicali). Sostanzialmente è un protocollo che permette di
far comunicare tramite cavo tastiere, expander, computer e qualsiasi altro tipo
di strumento che possieda un’interfaccia MIDI.
Questa interfaccia utilizza delle porte di ingresso e di uscita:

• MIDI IN: è la porta che riceve le informazioni inviate da altre apparec-


chiature musicali.

• MIDI OUT: è la porta che trasmette le informazioni ad altre apparecchia-


ture musicali

• MIDI THRU (opzionale): è una porta che replica in uscita tutte le infor-
mazioni che sono ricevute dalla porta MIDI IN, rendendole disponibili ad
altri dispositivi.

I cavi utilizzati per la trasmissione sono composti da cinque fili. Il connettore


per il collegamento alle porte è a cinque poli. Il connettore standard MIDI di
tipo DIN (Deutshe Industrie Normen) 5 pin, I collegamenti seguono il seguente
ordine:

• il pin 1 e il pin 3 sono riservati per sviluppi futuri;

• il pin 2 è il collegamento della massa (schermatura) e serve per evitare


interferenze;

• il pin 5 collega il filo necessario per trasportare le informazioni MIDI,


mentre il pin 4 collega il cavo che assicura l’alimentazione corretta a +5V.

25
4.2 I messaggi MIDI 4. Il M.I.D.I.

4.2 I messaggi MIDI


Un messaggio MIDI è composto da un insieme di byte:

• Gli status byte (con i quali inizia il messaggio) servono per definire in
modo univoco un comando. Il bit più significativo è uguale a 1 e quindi
uno status byte può assumere un valore compreso tra 128 e 255. Gli status
byte trasmettono quindi il tipo di informazione (suona una note, alza il
volume ecc.).

• I data byte servono per inviare gli eventuali parametri necessari per un
corretto funzionamento dello status byte. Il bit più significativo è uguale
a zero e quindi i valori vanno da 0 a 127.

Utilizzare un cavo MIDI per trasmettere un solo messaggio non è convenien-


te, perciò una linea MIDI è stata divisa in 16 canali logici di comunicazione
(da 0000 a 1111). Ognuno di questi 16 canali può trasmettere una determina-
ta informazione che può essere ricevuta da un dispositivo sintonizzato su quel
canale.
I Channel Message (messaggi di canale) possono essere indirizzati indifferen-
temente ad uno qualsiasi dei 16 canali MIDI (e quindi possono essere indirizzati a
specifiche apparecchiature MIDI. I messaggi di canale si dividono ulteriormente
in Channel voice message e Channel mode message.
I System Message (messaggi di sistema) non contengono alcuna informazione
di canale e sono quindi ricevuti da tutte le apparecchiature MIDI. Si dividono
ulteriormente in System common message, System Real time message e System
exclusive message.
4. Il M.I.D.I. 27

Codifica1 Nome Descrizione Argomenti Note


1000cccc Note Off Messaggio nnnnnnn Se uno stru-
0nnnnnnn generato (Key Num- mento non
0vvvvvvv quando si ber) indica riconosce le
rilascia un il numero informazioni
tasto della nota di Release
che è stata Velocity, le
rilasciata. ignorererà.
vvvvvvv Molto spesso
(Release all’uso di
Velocity) Note Off si
indica la preferisce
velocità di quello di
rilascio Note On con
Key Velocity
nulla
1001cccc Note On Messaggio nnnnnnn Se la tastie-
0nnnnnnn generato (Key Num- ra non è di-
0vvvvvvv quando si ber) indica il namica vie-
abbassa un numero della ne utilizzato
tasto nota che un valore di
deve essere Key Veloci-
suonata. ty standard
vvvvvvv pari a 64
(Key Velo-
city) indica
la velocità
con cui viene
abbassato il
tasto
Continua nella prossima pagina
4.2 I messaggi MIDI 4. Il M.I.D.I.

Tabella 4.1 – continua dalla pagina precedente


Codifica Nome Descrizione Argomenti Note
1010cccc Polyphonic Invia infor- nnnnnnn Produce
0nnnnnnn Key mazioni di (Key Num- una mole di
0vvvvvvv Pressure variazione di ber) indica il informazio-
pressione di numero della ni tale da
un tasto già nota a cui è saturare in
abbassato, associato il poco tempo
in modo Data Byte la trasmis-
indipendente 2. vvvvvvv sione. E’
per ogni (After Tou- conveniente
nota ch) indica il eliminare
valore della o filtra-
pressione re questo
messaggio
1011cccc Control Descrive i nnnnnnn
0nnnnnnn Change cambiamenti (Control
0vvvvvvv dello stato di Number)
un qualsiasi indica il
controller numero del
controller
che deve
essere mo-
dificato.
vvvvvvv
(Controller
Position)
indica il
valore che
assumerà il
controller
Continua nella prossima pagina
4. Il M.I.D.I. 29

Tabella 4.1 – continua dalla pagina precedente


Codifica Nome Descrizione Argomenti Note
1100cccc Program Seleziona nnnnnnn Ha valori
0nnnnnnn Change una patch, (Preset compre-
0vvvvvvv voice o per- Number ) si tra 0 e
formance indica il 127: se uno
su di uno numero della strumento
strumento patch che dispone di
si vuole più di 128
selezionare. patch , allo-
Il Data Byte ra le patch si
2 non esiste dividono in
gruppi (ban-
chi), ognuno
dei quali
contiene al
massimo 128
patch
1101cccc Channel Trasmette in nnnnnnn Il problema
0nnnnnnn Pressure tempo reale (After Tou- tipico di que-
ulteriori ch) indica il sto messag-
variazioni valore della gio è che ge-
di pressione pressione. Il nera una no-
di un tasto Data Byte 2 tevole quan-
dopo che è è assente tità di infor-
stato premu- mazioni che
to (come il spesso satu-
Polyphonic rano la tra-
Key Pressu- smissione
re ma non
indipendente
per ogni
nota)
Continua nella prossima pagina
4.3 Channel mode message 4. Il M.I.D.I.

Tabella 4.1 – continua dalla pagina precedente


Codifica Nome Descrizione Argomenti Note
1110cccc Pitch Indica la nnnnnnn La varia-
0nnnnnnn Bender posizione as- (MSB) e zione di
0vvvvvvv Change sunta dalla vvvvvvv pitch verrà
leva di pitch (LSB) per- assegnata
(che modifi- mettono a TUTTE
ca l’altezza insieme di le note che
di una nota) indicare un sono attive
parametro nel canale
che va da 0 a specificato
16383 (solo
127 valori
non sareb-
bero stati
sufficienti)

4.3 Channel mode message


Sono un sottinsieme dei messaggi di Control Change e sono utilizzati per
controllare le funzioni generali di uno strumento musicale.
Esistono quattro mode e ognuno stabilisce su quale tra i sedici canali MIDI
(di trasmissione e ricezione a disposizione) trasferire una voce. Esistono tre stati
fondamentali:

• OMNI: questo stato indica che lo strumento risponde a tutte le informa-


zioni inviate contemporaneamente su tutti i sedici canali MIDI (può essere
ON o OFF).

• POLY: questo stato indica che lo strumento esegue le informazioni in


entrata in maniea polifonica (cioé utilizza più di una voce).

• MONO: questo stato indica che lo strumento esegue le informazioni in


entrata in maniera monofonica (cioé utilizza una sola voce).

I modi disponibili sono ottenuti combinando gli stati sopra descritti.


4. Il M.I.D.I. 31

Codifica Nome Argomento


1011cccc 01111101 Omni Mode Off Il Data Byte 2 viene
00000000 trasmesso ma ignorato
1011cccc 01111100 Omni Mode On Il Data Byte 2 viene
00000000 trasmesso ma ignorato
1011cccc 01111110 Mono mode on vvvv (Ch. allocation)
0000vvvv serve per specificare il
numero di canali che
vengono utilizzati per
ricevere e trasmettere le
voci monofoniche. Per
calcolare il numero di
canali che vengono allo-
cati si indica con C il
numero di canale base
(quello dello status by-
te) e con X il numero di
canali allocati; allora X
è compreso tra C e C +
X-1
1011cccc 01111111 Poly Mode On Il Data Byte 2 viene
00000000 trasmesso ma ignorato
1011cccc 01111001 Reset All Il Data Byte 2 viene
00000000 trasmesso ma ignorato
1011cccc 011111010 Local Control Può assumere due valo-
0vvvvvvv ri utili: 00000000 indi-
ca il messaggio di Lo-
cal Control Off men-
tre 01111111 indica il
valore di Local Control
On
1011cccc 01111011 All Notes Off Il Data Byte 2 viene
00000000 trasmesso ma ignorato

4.4 I controller

I controller si dividono in due tipi:


4.4 I controller 4. Il M.I.D.I.

• Controller continui: permettono di indicare le variazioni di uno stato di


cose in modo continuo, partendo da un valore minimo pari a 0 fino ad
arrivare ad un valore massimo pari a 127.

• Controller a interruttore: hanno solo due stati (on e off). Un qualsiasi


numero compreso tra 0 e 63 indica il valore di off mentre tra 64 e 127
indica il valore on.

I controller da 0 a 31 sono di tipo continuo e usano i controller da 32 a 63


(LSB) per definire un numero maggiore di stati (da 128 passano a 16383).

N Nome Descrizione
0 Bank Select La maggior parte degli
strumenti musicali elet-
tronici contiene più di
128 patch, però con il
messaggio di Program
Change è possibile sele-
zionare al massimo 128
patch diverse. Per risol-
vere questo problema è
stato necessario divide-
re il numero delle patch
di uno strumento mu-
sicale in banchi, ognu-
no dei quali contiene
al massimo 128 patch.
Per accedere ad un suo-
no contenuto in un ban-
co bisogna allora utiliz-
zare il controller Bank
Select e successivamen-
te il messaggio Program
Change
Continua nella prossima pagina
4. Il M.I.D.I. 33

Tabella 4.3 – continua dalla pagina precedente


N Nome Descrizione
1 Modulation wheel Modifica il valore del-
la ruota di modulation,
il cui scopo è quel-
lo di aggiungere l’effet-
to di vibrato al timbro
corrente
2 Breath control Modifica la pressione
del fiato in uno stru-
mento MIDI a fiato.
Generalmente in un sin-
tetizzatore standard è
associabile a qualsiasi
altro parametro
3 Non definito
4 Foot controller Associa un parametro
qualsiasi ad un pedale
di tipo continuo
5 Portamento Time Indica il valore del
tempo del portamento.
Il portamento permet-
te di far slittare il pit-
ch di un timbro da
una frequenza ad un’al-
tra (maggiore o mino-
re). Maggiore è il valore
del portamento e mag-
giore è il tempo che oc-
corre per far slittare il
pitch
Continua nella prossima pagina
4.4 I controller 4. Il M.I.D.I.

Tabella 4.3 – continua dalla pagina precedente


N Nome Descrizione
6 Data Entry Generalmente serve
per modificare il valore
di un parametro di
un messaggio RPN
o NRPN. In alcuni
casi, invece, può essere
associato ad altri para-
metri, indipendenti dai
messaggi RPN e NRPN
7 Channel Volume In uno strumento mul-
titimbrico modifica il
volume di un timbro,
altrimenti modifica il
volume Master dello
strumento
8 Balance Se lo strumento musica-
le MIDI ha un output
audio stereofonico, bi-
lancia il suono nell’im-
magine stereofonica
9 Non definito
10 Pan Modifica la posizione
di un suono (monofo-
nico) nell’immagine ste-
reo (0 = sinistra, 127 =
destra, 64 = centro)
Continua nella prossima pagina
4. Il M.I.D.I. 35

Tabella 4.3 – continua dalla pagina precedente


N Nome Descrizione
11 Expression Controller Controlla il volume in
funzione di una percen-
tuale, potendo cosı̀ rea-
lizzare crescendo e de-
crescendo senza utiliz-
zare il controller del vo-
lume. Se lo strumen-
to è multitimbrico allo-
ra è possibile controlla-
re l’espressione di ogni
singolo timbro
12...13 Effect control 1, 2 Modificano i parametri
di una unità per gli
effetti
14...15 Non definiti
16...19 General #1, 2, 3, 4 Possono essere associati
a qualsiasi parametro
20...31 Non definiti
32...63 LSB LSB per i controller da
0 a 31
64 Damper pedal on/off Simula un effetto simile
(Sustain) a quello prodotto in un
pianoforte con il peda-
le delle code abbassato.
Permette quindi di pro-
lungare il suono di un
timbro anche quando si
è rilasciato il tasto
65 Portamento on/off Attiva e disattiva il
portamento
Continua nella prossima pagina
4.4 I controller 4. Il M.I.D.I.

Tabella 4.3 – continua dalla pagina precedente


N Nome Descrizione
66 Sostenuto on/off Si comporta in modo si-
mile al Damper, però
sostiene solo le note che
sono già premute, e non
quelle che lo saranno
dopo aver attivato il
controller stesso
67 Soft pedal on/off Diminuisce il volume di
un timbro. Si compor-
ta come l’equivale pe-
dale di un pianoforte
tradizionale
68 Legato Footswitch Simula la tecnica del le-
gato, cioé senza stacca-
re le note l’una dall’al-
tra
69 Hold 2
70...79 Sound Controller Modificano i parame-
tri associati ad un suo-
no, come l’inviluppo, il
taglio del filtro e via
dicendo
80...83 General Purpose 5, 6, 7, Controller continui as-
8 sociabili a qualsiasi pa-
rametro
84 Portamento Control
85...90 Non definiti
91...95 Effects 1, 2, 3, 4, 5 Permettono di modifi-
Depth care il livello dell’effetto
applicato al timbro (92:
tremulo level - 93: cho-
rus level - 94: celeste
level - 95: phaser level)
96 Data Entry +1 Incrementa il valore di
un’unità
Continua nella prossima pagina
4. Il M.I.D.I. 37

Tabella 4.3 – continua dalla pagina precedente


N Nome Descrizione
97 Data Entry -1 Decrementa il valore di
un’unità
98...99 NRPN (98: LSB, 99: MSB)
100...101 RPN (100: LSB, 101: MSB)
102...119 Non definiti
120 All Sounds Off Trasmette un messag-
gio di Note Off a tutte
le note correntemente
attive
121 Reset All Controllers Riporta tutti i control-
ler al loro valore di
default
122 Local control on/off Permette di collegare o
scollegare il generato-
re sonoro di un sinte-
tizzatore dalla tastiera
del sintetizzatore stes-
so. Local on: quando
si preme un tasto sulla
tastiera del sintetizza-
tore lo strumento emet-
te il suono e trasmette
i messaggi MIDI sulla
porta MIDI OUT. Lo-
cal off: quando si pre-
me un tasto sulla tastie-
ra del sintetizzatore lo
strumento non emette
il suono ma trasmette i
messaggi MIDI in MIDI
OUT. Il generatore del-
lo strumento può esse-
re controllato tramite la
porta MIDI IN
123 All notes off
Continua nella prossima pagina
4.6 System Exclusive Message 4. Il M.I.D.I.

Tabella 4.3 – continua dalla pagina precedente


N Nome Descrizione
124 Omni mode off
125 Omni mode on
126 Poly mode on/off
127 Poly mode on

4.5 System Common Message

Codifica Nome Descrizione


11110001 nnnnvvvv Quarter Frame Fa parte del Midi Ti-
me Code (MTC). Ser-
ve per convertire il co-
dice di sincronizzazio-
ne SMPTE in MTC:
nnnn/vvvv = Type /
Data
11110010 0nnnnnnn Song Position Permette di assegnare
0vvvvvvv ad ogni beat di una se-
quenza un indirizzo as-
soluto: nnnnnnn (Poin-
ter 1) e vvvvvvv (Poin-
ter 2)
11110011 0nnnnnnn Song Select Permette di selezionare
una song in un sequen-
cer od altro dispositivo
simile. Non esiste Data
Byte 2
11110110 Tune Request Viene utilizzato per ac-
cordare lo strumento.
Non ha parametri

4.6 System Exclusive Message


Servono per accedere direttamente alle funzioni del dispositivo MIDI, per-
mettendo di programmarlo in maniera altrimenti impossibile.
4. Il M.I.D.I. 39

Codifica Nome Descrizione


11110000 System Exclusive Lo status byte è se-
guito da una serie di
byte che costituiscono
le informazioni conte-
nute nel messaggio di
sistema esclusivo
11110111 End of Exclusive Indica la fine del mes-
saggio di sistema esclu-
sivo

4.7 Lo standard GM General MIDI Level 1


Uno strumento musicale per essere GM compatibile deve associare ad ogni
valore di Program Change una patch stabilita. La GM Instrument Patch Map
specifica quali sono le patch che devono essere utilizzate e si divide in otto
famiglie di strumenti:

Patch Strumento Patch Strumento


Piano Reed
1 Acoustic Gran 65 Soprano Sax
2 Bright Acoustic 66 Alto Sax
3 Electic Grand 67 Tenor Sax
4 Honky-Tonk 68 Baritone Sax
5 Electric Piano 1 69 Oboe
6 Electric Piano 2 70 English Horn
7 Harpsichor 71 Bassoon
8 Clav 72 Clarinet
Chromatic Percussion Pipe
9 Celesta 73 Piccolo
10 Glockenspiel 74 Flute
11 Music Box 75 Recorder
12 Vibraphone 76 Pan Flute
13 Marimba 77 Blown Bottle
14 Xylophone 78 Skakuhachi
15 Tubular Bells 79 Whistle
16 Dulcimer 80 Ocarina
Organ Synt Lead
Continua nella prossima pagina
4.7 Lo standard GM General MIDI Level 1 4. Il M.I.D.I.

Tabella 4.5 – continua dalla pagina precedente


Patch Strumento Patch Strumento
17 Drawbar Organ 81 Lead 1 (square)
18 Percussive 82 Lead 2 (sawtoo-
Organ th
19 Rock Organ 83 Lead 3 (calliope)
20 Church Organ 84 Lead 4 (chiff)
21 Reed Organ 85 Lead 5 (charang)
22 Accordian 86 Lead 6 (voice)
23 Harmonica 87 Lead 7 (fifths)
24 Tango Accordian 88 Lead 8
(bass+lead)
Guitar Synt Pad
25 Acoustic Guitar 89 Pad 1 (new age)
(nylon)
26 Acoustic Guitar 90 Pad 2 (warm)
(steel)
27 Electric Guitar 91 Pad 3 (polysyn-
(jazz) th)
28 Electric Guitar 92 Pad 4 (choir)
(clean)
29 Electric Guitar 93 Pad 5 (bowed)
(muted)
30 Overdriven Gui- 94 Pad 6 (metallic)
tar
31 Distortion Gui- 95 Pad 7 (halo)
tar
32 Guitar 96 Pad 8 (sweep)
Harmonics
Bass Synt Effects
33 Acoustic Bass 97 FX 1 (rain)
34 Electric Bass 98 FX 2
(finger) (soundtrack)
35 Electric Bass 99 FX 3 (crystal)
(pick)
36 Fretless Bass 100 FX 4 (atmosphe-
re)
Continua nella prossima pagina
4. Il M.I.D.I. 41

Tabella 4.5 – continua dalla pagina precedente


Patch Strumento Patch Strumento
37 Slap Bass 1 101 FX 5 (bright-
ness)
38 Slap Bass 2 102 FX 6 (goblins)
39 Synth Bass 1 103 FX 7 (echoes)
40 Synth Bass 2 104 FX 8 (sci-fi)
Strings Ethnic
41 Violin 105 Sitar
42 Viola 106 Banjo
43 Cello 107 Shamisen
44 Contrabass 108 Koto
45 Tremolo Strings 109 Kalimba
46 Pizzicato Strings 110 Bagpipe
47 Orchestral 111 Fiddle
Strings
48 Timpani 112 Shanai
Ensemble Percussive
49 String Ensemble 113 Tinkle Bell
1
50 String Ensemble 114 Agogo
2
51 SynthStrings 1 115 Steel Drums
52 SynthStrings 2 116 Woodblock
53 Choir Aahs 117 Taiko Drum
54 Voice Oohs 118 Melodic Tom
55 Synth Voice 119 Synth Drum
56 Orchestra Hit 120 Reverse Cymbal
Brass Sound Effects
57 Trumpet 121 Guitar Fret Noi-
se
58 Trombone 122 Breath Noise
59 Tuba 123 Seashore
60 Muted Trumpet 124 Bird Tweet
61 French Horn 125 Telephone Ring
62 Brass Section 126 Helicopter
63 SynthBrass 1 127 Applause
Continua nella prossima pagina
4.7 Lo standard GM General MIDI Level 1 4. Il M.I.D.I.

Tabella 4.5 – continua dalla pagina precedente


Patch Strumento Patch Strumento
64 SynthBrass 2 128 Gunshot

Uno strumento GM inoltre deve utilizzare il canale 10 per la batteria e le


percussioni e deve associare ad ogni nota della Drum patch una determinata
voce. Le associazioni sono stabilite nella General MIDI Percussive Key Map:

Nota Strumento Nota Strumento


35 - B2 Acoustic Bass 58 - B4 Ride Cymbal 2
Drum
36 - C3 Bass Drum 1 60 - C5 Hi Bongo
37 - C3# Side Stick 61 - C5# Low Bongo
38 - D3 Acoustic Snare 62 - D5 Mute Hi Conga
39 - D3# Hand Clap 63 - D5# Open Hi Conga
40 - E3 Electric Snare 64 - E5 Low Conga
41 - F3 Low Floor Tom 65 - F5 High Timbale
42 - F3# Closed Hi-Hat 66 - F5# Low Timbale
43 - G3 High Floor Tom 67 - G5 High Agogo
44 - G3# Pedal Hi-Hat 68 - G5# Low Agogo
45 - A3 Low Tom 69 - A5 Cabasa
46 - A3# Open Hi-Hat 70 - A5# Maracas
47 - B3 Low-Mid Tom 71 - B5 Short Whistle
48 - C4 Hi-Mid Tom 72 - C6 Long Whistle
49 - C4# Crash Cymbal 1 73 - C6# Short Guiro
50 - D4 High Tom 74 - D6 Long Guiro
51 - D4# Ride Cymbal 1 75 - D6# Claves
52 - E4 Chinese Cymbal 76 - E6 Hi Wood Block
53 - F4 Ride Bell 77 - F6 Low Wood Block
54 - F4# Tambourine 78 - F6# Mute Cuica
55 - G4 Splash Cymbal 79 - G6 Open Cuica
56 - G4# Cowbell 80 - G6# Mute Triangle
57 - A4 Crash Cymbal 2 81 - A6 Open Triangle
58 - A4# Vibraslap

Infine, un sintetizzatore GM compatibile si deve predisporre in una certa


maniera all’accensione:

• Pitch Bend Amount = 0


4. Il M.I.D.I. 43

• Pitch Bend Sensitivity = + / - 2 semitoni

• Volume = 90

• Reset dei vari controlli

• Modo OMNI ON / POLY

• Tuning: LA3 = 440 Hz

E deve:

• Utilizzare il canale 10 per la batteria

• Utilizzare le patch definite nella GM patch map

• Utilizzare il kit di batteria specificato nella GM Percussive Key Map

• Avere una polifonia di 24 voci (16 per la parte strumentale e 8 per la parte
ritmica

• Riprodurre almeno 16 timbri contemporaneamente

• Poter disporre di tutti i sedici canali MIDI contemporaneamente

• Riconoscere il messaggio di Pitch Bender Change

• Riconoscere e rispondere ai seguenti controller:

1. Controller 1: Modulation Wheel

2. Controller 6: Data Entry

3. Controller 7: Volume

4. Controller 10: Pan

5. Controller 11: Expression

6. Controller 64: Sustain

7. Controller 121: Reset All Controllers

8. Controller 123: All notes off

9. RPN 0: Pitch Bend Sensitivity

10. RPN 1: Fine Tuning

11. RPN 2: Coarse Tuning


4.8 Roland GS General Standard 4. Il M.I.D.I.

4.8 Roland GS General Standard


Il Roland GS General Standard è una evoluzione dello standard GM Level 1
ed introduce nuovi tipi di messaggi e di controller. Innanzi tutto il GS abbatte
il limite delle 128 patch permettendo di selezionare con il Bank Select un nuovo
banco contenente altre 128 patch. Il GS inoltre prevede l’utilizzo e il controllo
degli effetti audio come il chorus e il riverbero e la modifica dei parametri dei
suoni.

4.9 Yamaha XG
Yamaha XG rappresenta lo standard più evoluto attualmente disponibile. È
compatibile con lo standard GM e le sequenze XG possono essere eseguite anche
su generatori sonori GM. Inoltre un sintetizzatore XG è in grado di riprodurre
correttamente le sequenze GS, previa trasmissione di un comando di GS Reset.
La caratteristica più importante dei moduli XG è che non devono necessa-
riamente essere conformi a tutte le raccomandazioni definite dallo standard. Un
modulo di questo tipo si dice scalato: se un modulo scalato riceve un messag-
gio che non può eseguire allora cerca di rispondere nella maniera più adatta
possibile.

4.10 SMF Standard MIDI File


Un file MIDI è un file di testo nel quale sono memorizzate le informazioni
che servono ad un sintetizzatore, sequencer e via dicendo per riprodurre una
canzone.
Il problema della compatibilità è stato risolto utilizzando un file di scambio
standard per tutte le piattaforme hardware: SMF Standard MIDI File.
Uno SMF viene genericamente chiamato anche file MIDI o file .mid ed è
codificato in formato ASCII (American Standard Code for Information Inter-
change).
Uno standard MIDI si divide in tre formati:

• Formato 0: assembla tutti i dati in una sola traccia.

• Formato 1: registra i dati MIDI su più tracce e quindi permette una


rielaborazione delle stesse in maniera molto più comoda.

• Formato 2: permettono di registrare più canzoni e più pattern nello stesso


file (sono rari da trovare).
4. Il M.I.D.I. 45

Uno SMF è composto essenzialmente da due chunk. Un chunk è un insieme di


byte e viene identificato senza errori dai primi quattro byte che lo compongono:

• Header Chunk : questo blocco deve sempre essere presente per primo. I
quattro byte che lo identificano hanno il valore esadecimale 4D 54 68 64
ed indicano le lettere MThd secondo il codice ASCII. Ha la funzione di
intestazione ed informa subito il dispositivo riguardo alla lunghezza del
blocco stesso. Poi contiene le informazioni riguardo il formato, il numero
di tracce, la divisione del quarto di nota (ppqn) e via dicendo.

• Track Chunk : questo blocco contiene le informazioni relative ad una trac-


cia ed i primi quattro byte che lo identificano hanno il valore esadecimale
4D 54 72 6B che significa MTrk. Successivamente vengono indicati la
lunghezza del chunk ed i dati, cioé le informazioni MIDI codificate. I mes-
saggi MIDI sono preceduti sempre da un Delta time, cioé da un riferimento
temporale che serve per riprodurre a tempo giusto il messaggio MIDI. Un
Delta time ed un messaggio MIDI costituiscono un evento di traccia.

4.11 RPN e N-RPN


Gli RPN ( Registered Parameter Number ) e N-RPN ( Non Registered Pa-
rameter Number ) vengono utilizzati, generalmente, insieme ai controller Data
Entry, Data Entry +1 e Data Entry -1 per controllare parametri particolari:

• Gli N-RPN sono liberamente definibili dal costruttore

• Gli RPN sono invece parametri standard definiti dalla MMA, come Coarse
Tuning, Pitch Bend Sensitivity e Fine Tuning

4.12 Sys-Ex
Come visto, nel protocollo MIDI esistono solo due messaggi di sistema esclu-
sivo: uno per aprire la sessione di trasmissione e l’altro per chiuderla. Ciò che
però realmente conta è l’insieme di byte di dati racchiusi tra questi due status
byte.
Questi byte di dati servono per poter controllare dei parametri di un dispo-
sitivo musicale a basso livello.
Sono indirizzati ad un particolare strumento musicale, cioè non sono stan-
dard, pertanto è stato necessario stabilire dei codici identificativi (ID) per ogni
ditta produttrice. Alcuni codici:
4.12 Sys-Ex 4. Il M.I.D.I.

ID Produttore
01 Sequential Circuit
04 Moog
06 Lexicon
07 Kurzweil
08 Fender
0F Ensoniq
18 EMU
26 Solton
29 PPG
41 Roland
42 Korg
43 Yamaha
44 Casio
47 Akai
Esistono diversi tipi di Sys-Ex :

• Manufacturer Sys-Ex Message: sono indirizzati a strumenti musicali com-


merciali. La forma generica di un messaggio di questa categoria è F0 x msg
F7, dove x indica l’ID e msg l’insieme dei byte di dati per programmare
lo strumento stesso.

• Universal non commercial Sys-Ex : tutte le apparecchiature MIDI che sono


allo stato di prototipo o che sono dispositivi educativi utilizzano un ID
uguale a 74. La forma generica di un messaggio di questa categoria è F0
74 msg F7.

• Universal non-real time: sono utilizzati per trasmettere le informazioni


contenute nella memoria di uno strumento musicale di un altro dispositivo,
o viceversa. Questa trasmissione viene detta più propriamente Bulk Dump.
I dati possono essere scambiati tra strumenti di diversi produttori poiché
l’ID di questi messaggi è sempre 7E.

• Universal real time: non possono essere assolutamente inviati in tempo


differito e neppure messi in stato di attesa (come invece si può per i pre-
cedenti), per questo motivo vengono utilizzati per scambiare informazioni
relative al sincronismo della rete MIDI. L’ID di questi messaggi è 7F.
4. Il M.I.D.I. 47

4.13 Sincronizzazione
Per fare andare a tempo due o più strumenti di una rete MIDI, ci vuole un
apparecchio (master ) che da’ il tempo e uno o più slave che funzionino a tempo.
Esistono due tipi di sincronizzazione:

• sincronizzazione temporale: è la sincronizzazione che avviene in funzione


del tempo della composizione musicale;

• sincronizzazione assoluta: è la sincronizzazione che avviene indipenden-


temente dal tempo della composizione, ma solo in relazione ad un valo-
re temporale assoluto rappresentato nel formato ore, minuti, secondi e
frazioni di secondo

4.14 SMPTE, MTC e world clock


Il formato di sincronizzazione più utilizzato è SMPTE (acronimo del no-
me della ditta che per prima lo ha utilizzato, Society of Motion Picture and
Television).
Il codice SMPTE è in sostanza un segnale audio (analogico) che si ripete
nel tempo ad una certa frequenza. Quindi può essere facilmente registrato in
un registratore multitraccia, ma non può essere inviato direttamente ad un
dispositivo musicale tramite un cavo MIDI.
Nel formato di sincronizzazione SMPTE il tempo viene diviso in:

• HH: ore

• MM: minuti

• SS: secondi

• FF: frame

Ogni secondo è diviso in un numero di frame tipico del tipo di codice SMPTE
utilizzato (SMPTE 24-Film Sync, che utilizza 24 frame al secondo, SMPTE 25-
EBU, che ne usa 25, SMPTE 30 Non-Drop Audio/MIDI, SMPTE 30 Non-Drop
Video, SMPTE 30 Drop-Frame Video).
Il codice di sincronizzazione MTC (MIDI Time Code) è praticamente la
traduzione in digitale del codice di sincronizzazione SMPTE. Quindi il codice
MTC è un codice di sincronizzazione a tempo assoluto
Il codice di sincronizzazione SMPTE e il codice MTC non possono essere uti-
lizzati per sincronizzare i segnali audio digitali. Per essi occorre una frequenza di
4.15 Reti MIDI 4. Il M.I.D.I.

sincronizzazione molto elevata, precisamente uguale a quella di campionamento


dell’audio digitale, 44.1 o 48 KHz. Questo segnale di sincronizzazione si dice
world clock.

4.15 Reti MIDI


Mettendo troppi strumenti in cascada, l’ultimo suonerà con un ritardo sen-
sibile (che si nota già dal terzo strumento e oltre i 15 metri di cavo).
Il problema della latenza è risolto dalle thru box. L’uscita della thru box si
stabilisce con il canale (ci sono di solito 2 IN e al massimo 16 THRU)
[TODO: Inserire figura di thrubox]
Con questo metodo il master è fisso. Se invece vogliamo che il master sia
variabile, c‘è un altro sistema:
[TODO Inserire figura con più master]
Tramite preset si può scegliere che master usare.
Le patch bay, invece, servono per collegare un’uscita con un’ingresso e vice-
versa (ne esistono anche di non-MIDI, per i mixer).
In alternativa, con un solo master e più slave, si può avere nel master più
uscite: si avrà comunque minor latenza e minor tipo di errori.
[TODO: Inserire figura con master a più uscite]