Lezione 4
Messaggi Channel Voice
Programmazione MIDI (Prof. Luca A. Ludovico)
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)
4. Messaggi Channel Voice
Note On
• Generato alla pressione di un tasto
–
Stretto legame del MIDI con i primi controller a tastiera
• Struttura del messaggio:
–
–
1 byte di stato (1)001cccc
2 byte di dati, rispettivamente per esprimere l’altezza (pitch)
della nota e la sua intensità (velocity)
MIDI Out
o
MIDI Thru
II Byte di dati
I Byte di dati
Byte di stato
Velocity
[1..127]10
Pitch
[0..127]10
1001cccc2
Programmazione MIDI (Prof. Luca A. Ludovico)
4. Messaggi Channel Voice
MIDI In
Codifica del pitch: notazione scientifica
• La notazione scientifica associa al nome della nota (e
agli eventuali accidenti) un numero arabo indicante
l'ottava
–
Definizione proposta dall'Acoustical Society of America nel 1939
• Nomi delle note secondo il sistema letterale
anglosassone
C D E F G A B in luogo di Do Re Mi Fa Sol La Si
• C0 è il Do nella regione della più bassa frequenza udibile
(corrisponde a una frequenza di circa 16 Hz); C4 è il Do
centrale
Programmazione MIDI (Prof. Luca A. Ludovico)
4. Messaggi Channel Voice
Il pitch nella teoria musicale
Programmazione MIDI (Prof. Luca A. Ludovico)
4. Messaggi Channel Voice
Frequenza ISO delle note
Programmazione MIDI (Prof. Luca A. Ludovico)
4. Messaggi Channel Voice
Codifica del pitch nel MIDI
• Obiettivi e origini storiche del MIDI
• Sistema temperato, per cui Do# ha la stessa frequenza
di Reb, ecc.
• Nei sistemi MIDI le note sono numerate
da 0 (corrispondente a C-1 in notazione scientifica)
a 127 (corrispondente a G9 in notazione scientifica)
–
Range di valori rappresentabili superiore a quello considerato
dalla notazione scientifica
Programmazione MIDI (Prof. Luca A. Ludovico)
4. Messaggi Channel Voice
Mappatura sulla tabella ISO di MIDI e pianoforte
Programmazione MIDI (Prof. Luca A. Ludovico)
4. Messaggi Channel Voice
Le ottave nel MIDI
• A seconda del software e dell'hardware in uso, può capitare che
convenzionalmente:
–
–
–
Si utilizzi la notazione scientifica
[Do centrale è C4]
Si consideri come "ottava 0" quella che comincia dalla nota dal pitch
MIDI 0, cioè da C-1 in notazione scientifica
Calcolo dell’ottava o a partire dal MIDI pitch mp: o = mp / 12
[Do centrale è C5]
Si usi la numerazione convenzionale per la musicologia, che numera
l’ottava centrale come terza ottava, quindi la nota più bassa del range
MIDI è C-2
[Do centrale è C3]
• Ma importa davvero? No, perché le specifiche fissano il Do centrale
(261.63 Hz) sul pitch 60.
Programmazione MIDI (Prof. Luca A. Ludovico)
4. Messaggi Channel Voice
Codifica della velocity
• Velocity sfrutta il range [0..127]
Notazione
musicale
Indicazione di
intensità
Assente
Intervallo di
velocity MIDI
0
ppp
Più che pianissimo
1..15
pp
Pianissimo
16..31
p
Piano
32..47
mp
Mezzo piano
48.63
mf
Mezzo forte
64..79
f
Forte
80..95
ff
Fortissimo
96..111
fff
Più che fortissimo
112..127
Programmazione MIDI (Prof. Luca A. Ludovico)
4. Messaggi Channel Voice
Codifica della velocity
• Non tutti i controller sono in grado di leggere questo
valore, non tutti i dispositivi di ricezione lo sanno
interpretare
–
–
Valore di default: 64
Esempio: tastiere pesate
• La velocity è concettualmente differente dal volume:
influisce su come viene generato il suono, ma non è
necessariamente un aumento del volume
–
Esempio: suoni più brillanti, o uso di campioni differenti
Programmazione MIDI (Prof. Luca A. Ludovico)
4. Messaggi Channel Voice
Note Off
• Generato al rilascio di un tasto (precedentemente
premuto).
• Non significa automaticamente interruzione del suono
• Struttura del messaggio
–
–
1 byte di stato (1)000cccc
2 byte di dati, rispettivamente per esprimere l’altezza (pitch)
della nota da rilasciare e la velocità del gesto (release velocity)
MIDI Out
o
MIDI Thru
II Byte di dati
I Byte di dati
Byte di stato
Release Velocity
[0..127]10
Pitch
[0..127]10
1000cccc2
Programmazione MIDI (Prof. Luca A. Ludovico)
4. Messaggi Channel Voice
MIDI In
Note Off
• Variante adottata da molti dispositivi:
utilizzare un messaggio Note On con velocity pari a 0.
Non ha ripercussioni sulla polifonia.
• Cosa avviene se si rilascia una nota mai generata con un
messaggio Note On? Nulla!
• Cosa avviene se non viene mai ricevuto un messaggio
Note Off corrispondente a un Note On?
Esiste un messaggio di controllo All Notes Off per
rilasciare tutte le note per cui il dispositivo non ha
ricevuto messaggi Note Off.
Programmazione MIDI (Prof. Luca A. Ludovico)
4. Messaggi Channel Voice
Esempio
• Messaggio
100100100011111001000000
(1)0010010
Byte di stato
(0)0111110
I Byte di dati
(0)1000000
II Byte di dati
Note On su canale 3
Pitch 62 (Re dell’ottava centrale)
Velocity 64 (mf)
Programmazione MIDI (Prof. Luca A. Ludovico)
4. Messaggi Channel Voice
Esercizio
• Messaggio
100100110100010101001111
(1)0010011
Byte di stato
(0)1000101
I Byte di dati
(0)1001111
II Byte di dati
Note On su canale 4
Pitch 69 (La dell’ottava centrale)
Velocity 79 (mf, f)
Programmazione MIDI (Prof. Luca A. Ludovico)
4. Messaggi Channel Voice
Esercizio
• Messaggio
100100000011001100000000
(1)0010000
Byte di stato
(0)0110011
I Byte di dati
(0)0000000
II Byte di dati
Note On su canale 1
Pitch 51 (Re# sotto ottava centrale)
Velocity 0 (Note Off)
Programmazione MIDI (Prof. Luca A. Ludovico)
4. Messaggi Channel Voice
Channel Pressure (o Channel Aftertouch)
• Generato quando varia la pressione di un tasto già
premuto.
• Struttura del messaggio
–
–
1 byte di stato (1)101cccc
1 byte di dati, che rappresenta la variazione di pressione rispetto
a quella iniziale
MIDI Out
o
MIDI Thru
Programmazione MIDI (Prof. Luca A. Ludovico)
4. Messaggi Channel Voice
Byte di dati
Byte di stato
Pressure
[0..127]10
1101cccc2
MIDI In
Channel Pressure (o Channel Aftertouch)
• Comportamento dei sintetizzatori? Può variare.
–
Ad es.: effetto vibrato.
• Cosa avviene in caso di polifonia (su uno stesso canale)?
La variazione di pressione più forte (su una delle note)
influenza l’intensità di tutte le restanti note, oppure se
ne considera il valore medio.
Programmazione MIDI (Prof. Luca A. Ludovico)
4. Messaggi Channel Voice
Polyphonic Aftertouch
• Generato quando varia la pressione di un tasto già
premuto, in un contesto potenzialmente polifonico. Ogni
nota può avere un proprio valore indipendente.
• Struttura del messaggio
–
–
1 byte di stato (1)010cccc
2 byte di dati, rispettivamente per esprimere l’altezza (pitch)
della nota e la variazione di pressione
MIDI Out
o
MIDI Thru
II Byte di dati
I Byte di dati
Byte di stato
Pressure
[0..127]10
Pitch
[0..127]10
1010cccc2
Programmazione MIDI (Prof. Luca A. Ludovico)
4. Messaggi Channel Voice
MIDI In
Esempio di channel vs polyphonic aftertouch
Byte di stato
I Byte di dati
II Byte di dati
Battuta.Suddivisione
Note On, ch. 3
C5
64
1.1
Note On, ch. 3
A4
64
1.1
Ch. Aftertouch, ch. 3
64
-
2.1
Ch. Aftertouch, ch. 3
127
-
3.3
Ch. Aftertouch, ch. 3
64
-
4.3
Ch. Aftertouch, ch. 3
0
-
6.1
Note On, ch. 3
C5
0
7.1
Note On, ch. 3
A4
0
7.1
Programmazione MIDI (Prof. Luca A. Ludovico)
4. Messaggi Channel Voice
Esempio di channel vs polyphonic aftertouch
Byte di stato
I Byte di dati
II Byte di dati
Battuta.Suddivisione
Note On, ch. 3
C5
64
1.1
Note On, ch. 3
A4
64
1.1
Poly. Aftertouch, ch. 3
C5
32
2.1
Poly. Aftertouch, ch. 3
A4
64
2.1
Poly. Aftertouch, ch. 3
C5
78
3.3
Poly. Aftertouch, ch. 3
A4
127
3.3
Poly. Aftertouch, ch. 3
C5
32
4.3
Poly. Aftertouch, ch. 3
A4
64
4.3
Poly. Aftertouch, ch. 3
C5
0
6.1
Poly. Aftertouch, ch. 3
A4
0
6.1
Note On, ch. 3
C5
0
7.1
Note On, ch. 3
A4
0
7.1
Programmazione MIDI (Prof. Luca A. Ludovico)
4. Messaggi Channel Voice
Problemi legati al channel e al polyphonic aftertouch
• I dispositivi in grado di leggere il comportamento del
musicista devono essere dotati di sensori e meccanismi
intrinsecamente più complessi, quindi più costosi.
–
Ad esempio, tra il 1992 e il 2010 non è stato realizzato alcun
controller MIDI in grado di inviare messaggi di polyphonic
aftertouch (che tipicamente venivano gestiti tramite sequencer).
Più di recente è stato implementato sui modelli Infinite Response
VAX77 e Rhodes MK 7 AM Series Electric Piano.
• Messaggi di questo tipo tendono a saturare facilmente il
canale trasmissivo, dato che vengono inviati in grande
quantità per inseguire il comportamento del musicista.
Programmazione MIDI (Prof. Luca A. Ludovico)
4. Messaggi Channel Voice
Program Change
• Generato quando si richiede a un modulo sonoro la
variazione di un timbro, o a un generico dispositivo il
caricamento di un preset
• Struttura del messaggio
–
–
1 byte di stato (1)100cccc
1 byte di dati, pari al nuovo numero di programma
MIDI Out
o
MIDI Thru
Byte di dati
Byte di stato
Num. di programma
[0..127]10
1100cccc2
Programmazione MIDI (Prof. Luca A. Ludovico)
4. Messaggi Channel Voice
MIDI In
Program Change
• Attenzione: in un modulo per la sintesi sonora, cambiare
il programma è diverso da cambiare il banco di suoni
–
–
Il programma determina un timbro tra tanti timbri contenuti nel
banco
Il banco è una determinata collezione di timbri, e viene variato
con un messaggio Sound Bank Control Change
• Nei moduli sonori, si è adottato uno standard che fa
corrispondere allo stesso numero di Program lo stesso
timbro: General MIDI
Programmazione MIDI (Prof. Luca A. Ludovico)
4. Messaggi Channel Voice
Pitch Bend Change
• Generato da un controller che fa variare
“morbidamente” la frequenza base della nota, con
effetto di glissando
• Struttura del messaggio
–
–
1 byte di stato (1)110cccc
2 byte di dati, per graduare accuratamente l’intervallo
27+7 = 214 = 16384 tacche, divise in 8192 inf. e 8191 sup.
MIDI Out
o
MIDI Thru
II Byte di dati
I Byte di dati
Most Significant Least Significant
Byte (MSB)
Byte(LSB)
[0..127]10
[0..127]10
Programmazione MIDI (Prof. Luca A. Ludovico)
4. Messaggi Channel Voice
Byte di stato
1110cccc2
MIDI In
Pitch Bend Change
• Valore centrale: (0)1000000 (0)0000000 = 819210
–
–
I byte dati (LSB) = 0
II byte dati (MSB) = 64
• Una tacca sopra: (0)1000000 (0)0000001 = 819310
–
–
I byte dati (LSB) = 1
II byte dati (MSB) = 64
• Una tacca sotto: (0)0111111 (0)1111111 = 819110
–
–
I byte dati (LSB) = 127
II byte dati (MSB) = 63
Programmazione MIDI (Prof. Luca A. Ludovico)
4. Messaggi Channel Voice
Pitch Bend Change
• La quantità di pitch bend in termini assoluti (Pitch
Wheel Range) dipende da come è configurato il modulo
sonoro
• Le specifiche MIDI raccomandano la copertura di [-2..+2]
semitoni
• Se il dispositivo lo consente, è possibile riconfigurare
questo parametro per far variare l’intonazione ad es. su
un’intera ottava
Programmazione MIDI (Prof. Luca A. Ludovico)
4. Messaggi Channel Voice
Scarica

Presentazione del corso