
Dopo avere visto quali e quanti byte transitano sui cavi midi quando si preme e si rilascia un tasto. Proseguiamo ancora con esempi dei vari messaggi che si possono incontrare:
Muoviamo il Pitch Bender. Ci auguriamo che sappiate cos'è il pitch bender, è quella rotella o joystick che si trova in genere sulla parte sinistra della tastiera e che serve per far andare su e giù (glissato) l'intonazione.
| Byte di stato | Byte di dati 1 | Byte di dati 2 | ||
| PITCH BENDER Pitch bender 224 (E0H) |
--> | BENDER POSITION MSB Numero di posizione1 64 (40H) |
--> | BENDER POSITION LSB Numero di posizione2 64 (40H) |
Il messaggio richiede una precisazione. Dato che un solo byte di dati, 127 posizioni, (V. Il protocollo byte di dati), sarebbero state sicuramente poche per affrontare le variazioni di frequenza che impone un buon glissato, è stato deciso nel protocollo di utilizzare invece di un solo byte due byte di dati, per un totale di 14 bit equivalenti a 16383 posizioni. Ne consegue che il numero di posizione 0 equivarrà al massimo della rotazione verso sinistra (abbassamento di frequenza), il numero di posizione 8192 al punto centrale e il numero di posizione 16383 al massimo della rotazione verso destra (aumento di frequenza).
Queste posizioni vengono calcolate dall'insieme dei due byte
di dati, MSB+LSB.
MSB Most Significant Bit, bit più significativo.
LSB Least significant Bit, bit meno significativo.
L'importante secondo noi non è capire come funziona il calcolo, ma sapere che la posizione del PITCH BENDER è determinata da l'insieme di due byte anzichè uno.
A proposito della posizione del Pitch Bender, è bene ricordare che, mentre il numero della posizione del Pitch Bender sarà uguale per tutte le apparecchiature midi collegate (sullo stesso canale), la frequenza invece potrà cambiare in dipendenza del settaggio.
Esempio: tastiera 1 settata come glissato massimo di 12 semitoni
(un'ottava), tastiera 2 settata come glissato massimo di 4 semitoni.
Se il numero numero di posizione del Pitch Bender sarà
0, la tastiera 1 suonerà un'ottava sotto, mentre la tastiera
2 solo di 4 semitoni.
Variamo la posizione di un controller.
| Byte di stato | Byte di dati 1 | Byte di dati 2 | ||
| CONTROL CHANGE Cambio del controller 176 (B0H) |
--> | CONTROLLER NUMBER Numero del controller 64 (40H) |
--> | CONTROLLER POSITION Numero di variazione 00 (00H) |
Ad ogni controller (volume, pedali, rotelle, joystick, modulazione, ecc..), viene assegnato un numero di identificazione.
| FUNZIONI DEL CONTROLLER | NUMERO DEC | NUMERO HEX |
| Modulation wheel | 01 | 01 |
| Breath Controller | 02 | 02 |
| Foot Controller | 04 | 04 |
| Portamento | 05 | 05 |
| Data Entry MSB | 06 | 06 |
| Volume | 07 | 07 |
| Bilanciamento | 08 | 08 |
| Pan L-R | 10 | 0A |
| Expressione | 11 | 0B |
| Controlli Generali | 16-19 | 10-13 |
| LSB (0-31) | 32-63 | 20-3F |
| Pedale Sustain | 64 | 40 |
| Portamento | 65 | 41 |
| Sostenuto | 66 | 42 |
| Pedale Soft | 67 | 43 |
| Hold 2 | 69 | 45 |
| Controlli Generali | 80-83 | 50-53 |
| Reverber Depth | 91 | 5B |
| Tremolo Depth | 92 | 5C |
| Chorus Depth | 93 | 5D |
| Phaser Depth | 95 | 5F |
| Data Incremento | 96 | 60 |
| Data Decremeto | 97 | 61 |
| LSB | 98 | 62 |
| MSB | 99 | 63 |
| LSB | 100 | 64 |
| MSB | 101 | 65 |
| Reset di tutti i contoller | 121 | 79 |
| Controllo Locale | 122 | 7A |
| Tutte le note spente | 123 | 7B |
| Modo Omni Off | 124 | 7C |
| Modo Omni On | 125 | 7D |
| Mono Mode On | 126 | 7E |
| Poly Mode On | 127 | 7F |
Con il primo byte di dati si identifica il controller, con
il secondo la variazione.
Meritano un'attenzione approfondita alcune funzioni tra cui le
ultime sette, dette di modo, che riguardano il controllo generale
di una apparecchiatura e non un singolo parametro: reset, controllo
locale, tutte le note spente, modo omni off, modo omni on, mono
mode, poly mode, per cui ci ritorneremo più avanti
Alziamo al massimo il VOLUME della voce del canale midi 4.
| Byte di stato | Byte di dati 1 | Byte di dati 2 | ||
| CONTROL CHANGE Cambio del controller 179 (B3H) |
--> | CONTROLLER NUMBER Numero del controller 7 (07H) |
--> | CONTROLLER POSITION Numero di variazione 127 (7FH) |
Notiamo il numero del byte di stato 179 (esadecimale B3), dice alle apparecchiature collegate che sta per variare il controller del canale 4. Il secondo byte (byte di dati 1), quale controller, ed il terzo (byte di dati 2) in che posizione.
Portiamo a metà il VOLUME della voce del canale midi 4.
| Byte di stato | Byte di dati 1 | Byte di dati 2 | ||
| CONTROL CHANGE Cambio del controller 179 (B3H) |
--> | CONTROLLER NUMBER Numero del controller 7 (07H) |
--> | CONTROLLER POSITION Numero di variazione 64 (40H) |
In questo messaggio è cambiato solo il byte di dati 2, riferito alla variazione.
Cambiamo la VOCE o PATCH del canale midi 1.
| Byte di stato | Byte di dati 1 | |
| PROGRAM CHANGE Cambio della voce 192 (C0H) |
--> | PRESET NUMBER Numero del preset 1 (01H) |
Il messaggio è molto semplice, bisogna comunque fare attenzione alle apparecchiature midi collegate, perchè allo stesso numero di preset o patch, a volte non corrisponde la stessa voce. Con l'avvento del GM General Midi e GS standard midi, di cui parleremo più avanti, si è risolto tale problema, uniformando le voci con il numero di preset, così che, ad un determinato numero di preset di qualsiasi apparecchiatura e di qualsiasi marca corrisponderà la stessa voce.
Riassumiamo le categorie dei messaggi
I messaggi Midi vengono divisi in due grandi categorie, i messaggi di canale (channel message) e i messaggi di sistema (system message).
Fino ad adesso ci siamo occupati dei messaggi di canale, cioè di messaggi che possono essere indirizzati indifferentemente su di uno dei sedici canali midi a disposizione.
I messaggi di canale (Channel Message)
| 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 |
|
|
|
|
|
|
|
|