il

Il protocollo e la sintassi

Lo scambio d'informazioni fra diverse apparecchiature (tastiere, expander, computers, mixer midi ecc), avviene in forma digitale, e cioè in bit, (8 bit equivalgono ad un byte).
Ora, per rendere decifrabile questo flusso di bit, si delineano, a seconda delle necessità, delle funzioni e dell'hardware, delle regole per la trasmissione e la ricezione, appunto il protocollo.

Con il protocollo midi di determinano quali e quanti byte servono per effettuare istruzioni riconoscibili dalle apparecchiature collegate, quale deve essere la velocità con la quale viaggiano i bit, che circuito deve avere l'interfaccia, insomma tutto quello che serve per effettuare una comunicazione corretta.

Per la comunicazione dei messaggi vengono impiegati i byte, bisogna comunque distinguere gli status byte (byte di stato) dai data byte (byte di dati). Gli status byte sono quelli inviati per primi e servono a decifrare i data byte successivi, senza possibilità di errori.

Dato che, sia i byte di stato che i byte di dati sono numeri compresi tra 0 e 255, nel protocollo viene specificato che i byte di stato devono essere numeri compresi tra 128 e 255, mentre i byte di data tra 0 e 127.

Descrizione del protocollo midi riferita ai byte di stato, DEC=decimale, HEX=esadecimale

DEC HEX NOTE OFF - Evento nota spenta
128 80 canale midi 1
129 81 canale midi 2
130 82 canale midi 3
131 83 canale midi 4
132 84 canale midi 5
133 85 canale midi 6
134 86 canale midi 7
135 87 canale midi 8
136 88 canale midi 9
137 89 canale midi 10
138 8A canale midi 11
139 8B canale midi 12
140 8C canale midi 13
141 8D canale midi 14
142 8E canale midi 15
143 8F canale midi 16
DEC HEX NOTE ON - Evento nota accesa
144 90 canale midi 1
145 91 canale midi 2
146 92 canale midi 3
ecc.. ecc.. ecc.
159 9F canale midi 16
DEC HEX AFTER TOUCH - Variazione della pressione di un tasto
160 A0 canale midi 1
161 A1 canale midi 2
162 A2 canale midi 3
ecc.. ecc.. ecc.
175 AF canale midi 16
DEC HEX CONTROL CHANGE - Variazione della posizione di un controllo es. Modulazione, Volume, Panpot, ecc.
176 B0 canale midi 1
177 B1 canale midi 2
178 B2 canale midi 3
ecc.. ecc.. ecc.
191 BF canale midi 16
DEC HEX PROGRAM CHANGE - Cambio di programma es. voce, path, performans, ecc.
192 C0 canale midi 1
193 C1 canale midi 2
194 C2 canale midi 3
ecc.. ecc.. ecc.
207 CF canale midi 16
DEC HEX AFTER TOUCH (sul canale midi) - Variazione della pressione di un tasto riferita al canale midi
208 D0 canale midi 1
209 D1 canale midi 2
210 D2 canale midi 3
ecc.. ecc.. ecc.
223 DF canale midi 16
DEC HEX PITCH BENDER - Variazione della posizione del pitch bender
224 E0 canale midi 1
225 E1 canale midi 2
225 E2 canale midi 3
ecc.. ecc.. ecc.
239 EF canale midi 16

Quelli fino ad ora descritti sono detti anche messaggi di canale, e possono essere indirizzati attraverso i canali midi, esclusivamente a specifiche apparecchiature.

I seguenti messaggi invece fanno parte dei messaggi di sistema, e sono ricevuti da tutte le apparecchiature collegate.

DEC HEX Descrizione
240 F0 SYSTEM EXCLUSIVE - Sistema esclusivo
241 F1 MIDI TIME CODE (MTC)
242 F2 SONG POSITION - Posizione della song
243 F3 SONG SELECT - Numero della song
246 F6 TUNE REQUEST - Richiesta di accordatura
247 F7 END OF EXCLUSIVE - Fine dei messggi di sistema esclusivo
248 F8 MIDI CLOCK - Sincronismo midi
250 FA START - Posiziona a capo della song
251 FB CONTINUE - Riprende dal punto interrotto
252 FC STOP - Ferma la song
255 FF RESET - Inizializza le apparecchiature

La sintassi

Il primo esempio di messaggio midi, suoniamo una nota

Byte di stato --- Byte di dati 1 --- Byte di dati 2
NOTE ON
Nota accesa
144 (90H)
--> KEY NUMBER
Numero di nota
60 (3CH)
--> KEY VELOCTY
Pressione del tasto
64 (40H)

Decriviamo questo primo esempio formato da 3 byte, con il primo (byte di stato) si determina che èstato premuto un tasto, mentre con gli altri due (byte di dati) il numero di nota e la velocità.
Analizzando i numeri dei byte, vediamo che il 144 (90H) H=esadecimale, corrisponde per il protocollo midi all'evento nota accesa e si riferisce specificatamente al canale midi n. 1, il secondo, numero 60 (3CH) al Do centrale (Do3), ed il terzo 64 (40H) alla pressione che corrisponde al volume con il quale suonerà la nota.

Dopo questo messaggio la tastiera l'expander o altro che sia, suonerà la nota Do centrale fino a che non si inviarà il seguente messaggio, smettiamo di suonare una nota

Byte di stato --- Byte di dati 1 --- Byte di dati 2
NOTE OFF
Nota spenta
128 (80H)
--> KEY NUMBER
Numero di nota
60 (3CH)
--> ATTACK VELOCTY
Rilascio del tasto
64 (40H)

Ammettiamo che dopo aver premuto un tasto (note on), invece di rilasciarlo (note off) esercitassimo una pressione maggiore, seguirebbe il messaggio

Byte di stato --- Byte di dati 1
AFTER TOUCH
Pressione del tasto
208 (D0H)
--> AFTER TOUCH NUMBER
Numero di variazione
64 (40H)

Nell'esempio è stato indicato un solo byte di dati, ma ce ne potrebbero essere molti altri per definire le variazioni della pressione esercitata.

 

 1) Il protocollo e la sintassi  6) Le apparecchiature
 2) La sintassi parte seconda  7) I collegamenti
 3) I messaggi di sistema  8) Midifile: struttura e formato
 4) I canali midi  9) Midifile: Standard GM e GS
 5) I messaggi di modo

  Iscriviti per gli aggiornamenti

 

I l  M e r c a t i n o  M u s i c a l e

L e  E d i z i o n i  M u s i c a l i

C o n c o r s i  e  F e s t i v a l

I l  M i d i

S. I. A. E.

R i c e r c a

 

Realizzazione: Dmsoft - © 1996-1999 DimaNet.com tutti i diritti sono riservati.