Lezione 3
Messaggi MIDI
Programmazione MIDI (Prof. Luca A. Ludovico)
Messaggi MIDI
• Sono mattoni per costruire performance
• Apparecchiature MIDI comunicano tra di loro
scambiandosi messaggi MIDI
• Ogni jack MIDI Out in uso deve essere collegato con un
MIDI In, mentre il MIDI In può ricevere messaggi da
MIDI Out o da MIDI Thru
Programmazione MIDI (Prof. Luca A. Ludovico)
3. Messaggi MIDI
Protocollo di trasmissione
• MIDI usa trasmissione seriale a 31250 bps
• Parola: 8 bit (+2 bit per il controllo di errore)
• Combinazioni possibili: 2^8 = 256
• Ciascuna parola può rappresentare un valore
compreso tra 0 e 255
Programmazione MIDI (Prof. Luca A. Ludovico)
3. Messaggi MIDI
Struttura dei messaggi MIDI
• Ogni messaggio si compone di una o più parole, ed è
costruito nel seguente modo:
–
–
Byte di stato (obbligatorio), seguito da
Byte di dati (0..n, a seconda del byte di stato)
MIDI Out
o
MIDI Thru
II Byte di dati
Programmazione MIDI (Prof. Luca A. Ludovico)
3. Messaggi MIDI
I Byte di dati
Byte di stato
MIDI In
Byte di stato
• Identifica il tipo di informazione inviata tramite il MIDI
• Bit più significativo (MSB, most significant bit) posto a 1
–
Valori ammissibili: [1000 0000..1111 1111]2 ossia [128..255]10
MIDI Out
o
MIDI Thru
II Byte di dati
Programmazione MIDI (Prof. Luca A. Ludovico)
3. Messaggi MIDI
I Byte di dati
Byte di stato
MIDI In
Byte di stato
• Il primo bit è riservato a distinguere il byte di stato dai
byte di dati.
• I 3 bit seguenti identificano la funzione MIDI
–
8 combinazioni possibili
• I 4 bit restanti identificano il canale MIDI
–
16 combinazioni possibili (canale 1 > canale 16)
1
funzione
Programmazione MIDI (Prof. Luca A. Ludovico)
3. Messaggi MIDI
canale
Funzioni
•
•
•
•
•
•
•
•
(1)000
(1)001
(1)010
(1)011
(1)100
(1)101
(1)110
(1)111
>
>
>
>
>
>
>
>
Note Off
Note On
Polyphonic Key Pressure (Aftertouch)
Control change e Channel mode
Program change
Channel Pressure (After-touch)
Pitch Wheel Change
Funzioni di sistema comuni, in tempo reale ed
esclusive
1
funzione
Programmazione MIDI (Prof. Luca A. Ludovico)
3. Messaggi MIDI
Byte di stato
0000
0001
0010
0011
…
1110
1111
>
>
>
>
Canale
Canale
Canale
Canale
1
2
3
4
> Canale 15
> Canale 16
1
Programmazione MIDI (Prof. Luca A. Ludovico)
3. Messaggi MIDI
canale
Byte di dati
• Contiene valori numerici il cui significato dipende dal
Byte di stato.
• Bit più significativo (MSB, most significant bit) posto a 0
–
Valori ammissibili: [0000 0000..0111 1111]2 ossia [0..127]10
MIDI Out
o
MIDI Thru
II Byte di dati
Programmazione MIDI (Prof. Luca A. Ludovico)
3. Messaggi MIDI
I Byte di dati
Byte di stato
MIDI In
Altezza delle note (vedi prossima lezione)
• Tipicamente, l’altezza delle note (pitch) è un parametro
che viene passato come byte di dati.
• Quanti sono i valori disponibili?
2(8-1) = 27 = 128
corrispondenti al range [0..127]10
• Significato semantico?
Al Do centrale è associato il valore 6010 = (0)01111002
Al Do# = Reb è associato il valore 6110 = (0)01111012
…
Programmazione MIDI (Prof. Luca A. Ludovico)
3. Messaggi MIDI
Esempi
• Sul canale trasmissivo: 20010, 110, 12010
MIDI Out
o
MIDI Thru
01111000
120
00000001
1
10111000
200
MIDI In
Control change
• Sul canale trasmissivo: 25510, 21310, 9810
MIDI Out
o
MIDI Thru
01100010
98
11010101
213
11111111
255
Channel aftertouch
System reset
Programmazione MIDI (Prof. Luca A. Ludovico)
3. Messaggi MIDI
MIDI In
Categorie di funzioni MIDI
• Channel Voice Messages
–
Eventi MIDI essenziali per la performance musicale (es.: Note On, Note
Off)
• Channel Mode Messages
–
Comunicano ai dispositivi il modo di inviare o ricevere informazioni
(es.: spegnimento di tutte le note)
• System Common Messages
–
Messaggi comuni a tutti i dispositivi HW/SW della configurazione MIDI
(es.: riferimento al MIDI Time Code, accordatura)
• System Real Time Messages
–
Messaggi in tempo reale (es.: start e stop)
• System Exclusive Messages
–
Impostazioni specifiche per il dispositivo (es.: trasferimento campioni)
Programmazione MIDI (Prof. Luca A. Ludovico)
3. Messaggi MIDI
Channel vs System
• I messaggi di canale sono rivolti a tutti i dispositivi in ascolto su
quel dato canale.
• I messaggi di sistema sono rivolti potenzialmente a tutti i dispositivi
presenti sulla catena MIDI
• Non è detto che tutti i dispositivi siano in ascolto su un certo
canale, anche se ricevono (e propagano su MIDI Thru) i 16 canali
–
Ad esempio, un messaggio di accensione della nota (NoteOn) è un Channel Voice
Message che per definizione viene gestito solo dai synth in ascolto su quel canale
• Non è detto che tutti i dispositivi della catena siano in grado di
interpretare un messaggio di sistema
–
Ad esempio, un messaggio di ri-calibrazione degli oscillatori analogici (Tune
Request) è un messaggio System Common, ma solo i synth analogici lo possono
gestire correttamente
Programmazione MIDI (Prof. Luca A. Ludovico)
3. Messaggi MIDI
Scarica

Presentazione del corso