messaggi channel voice lezione 4 programmazione midi (prof. luca a. ludovico)
TRANSCRIPT
![Page 1: Messaggi Channel Voice Lezione 4 Programmazione MIDI (Prof. Luca A. Ludovico)](https://reader036.vdocumenti.com/reader036/viewer/2022062312/5542eb4b497959361e8b7c4a/html5/thumbnails/1.jpg)
Messaggi Channel Voice
Lezione 4
Programmazione MIDI (Prof. Luca A. Ludovico)
![Page 2: Messaggi Channel Voice Lezione 4 Programmazione MIDI (Prof. Luca A. Ludovico)](https://reader036.vdocumenti.com/reader036/viewer/2022062312/5542eb4b497959361e8b7c4a/html5/thumbnails/2.jpg)
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
![Page 3: Messaggi Channel Voice Lezione 4 Programmazione MIDI (Prof. Luca A. Ludovico)](https://reader036.vdocumenti.com/reader036/viewer/2022062312/5542eb4b497959361e8b7c4a/html5/thumbnails/3.jpg)
Note On
Programmazione MIDI (Prof. Luca A. Ludovico)4. Messaggi Channel Voice
MIDI Outo
MIDI Thru
MIDI InII Byte di dati
Velocity[1..127]10
I Byte di dati
Pitch[0..127]10
Byte di stato
1001cccc2
• 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)
![Page 4: Messaggi Channel Voice Lezione 4 Programmazione MIDI (Prof. Luca A. Ludovico)](https://reader036.vdocumenti.com/reader036/viewer/2022062312/5542eb4b497959361e8b7c4a/html5/thumbnails/4.jpg)
Codifica del pitch: notazione scientifica
Programmazione MIDI (Prof. Luca A. Ludovico)4. Messaggi Channel Voice
• 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
![Page 5: Messaggi Channel Voice Lezione 4 Programmazione MIDI (Prof. Luca A. Ludovico)](https://reader036.vdocumenti.com/reader036/viewer/2022062312/5542eb4b497959361e8b7c4a/html5/thumbnails/5.jpg)
Il pitch nella teoria musicale
Programmazione MIDI (Prof. Luca A. Ludovico)4. Messaggi Channel Voice
![Page 6: Messaggi Channel Voice Lezione 4 Programmazione MIDI (Prof. Luca A. Ludovico)](https://reader036.vdocumenti.com/reader036/viewer/2022062312/5542eb4b497959361e8b7c4a/html5/thumbnails/6.jpg)
Frequenza ISO delle note
Programmazione MIDI (Prof. Luca A. Ludovico)4. Messaggi Channel Voice
![Page 7: Messaggi Channel Voice Lezione 4 Programmazione MIDI (Prof. Luca A. Ludovico)](https://reader036.vdocumenti.com/reader036/viewer/2022062312/5542eb4b497959361e8b7c4a/html5/thumbnails/7.jpg)
Codifica del pitch nel MIDI
Programmazione MIDI (Prof. Luca A. Ludovico)4. Messaggi Channel Voice
• 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
![Page 8: Messaggi Channel Voice Lezione 4 Programmazione MIDI (Prof. Luca A. Ludovico)](https://reader036.vdocumenti.com/reader036/viewer/2022062312/5542eb4b497959361e8b7c4a/html5/thumbnails/8.jpg)
Le ottave nel MIDI
Programmazione MIDI (Prof. Luca A. Ludovico)4. Messaggi Channel Voice
• 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
[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é Do centrale è sempre a 261.63 Hz ed è sempre numerato come pitch 60
![Page 9: Messaggi Channel Voice Lezione 4 Programmazione MIDI (Prof. Luca A. Ludovico)](https://reader036.vdocumenti.com/reader036/viewer/2022062312/5542eb4b497959361e8b7c4a/html5/thumbnails/9.jpg)
Codifica della velocity
Programmazione MIDI (Prof. Luca A. Ludovico)4. Messaggi Channel Voice
• Velocity sfrutta il range [0..127]
Notazione musicale
Indicazione di intensità
Intervallo di velocity MIDI
Assente 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
![Page 10: Messaggi Channel Voice Lezione 4 Programmazione MIDI (Prof. Luca A. Ludovico)](https://reader036.vdocumenti.com/reader036/viewer/2022062312/5542eb4b497959361e8b7c4a/html5/thumbnails/10.jpg)
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
![Page 11: Messaggi Channel Voice Lezione 4 Programmazione MIDI (Prof. Luca A. Ludovico)](https://reader036.vdocumenti.com/reader036/viewer/2022062312/5542eb4b497959361e8b7c4a/html5/thumbnails/11.jpg)
Note Off
Programmazione MIDI (Prof. Luca A. Ludovico)4. Messaggi Channel Voice
MIDI Outo
MIDI Thru
MIDI InII Byte di dati
Release Velocity[0..127]10
I Byte di dati
Pitch[0..127]10
Byte di stato
1000cccc2
• 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)
![Page 12: Messaggi Channel Voice Lezione 4 Programmazione MIDI (Prof. Luca A. Ludovico)](https://reader036.vdocumenti.com/reader036/viewer/2022062312/5542eb4b497959361e8b7c4a/html5/thumbnails/12.jpg)
Note Off
Programmazione MIDI (Prof. Luca A. Ludovico)4. Messaggi Channel Voice
• 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.
![Page 13: Messaggi Channel Voice Lezione 4 Programmazione MIDI (Prof. Luca A. Ludovico)](https://reader036.vdocumenti.com/reader036/viewer/2022062312/5542eb4b497959361e8b7c4a/html5/thumbnails/13.jpg)
Esempio
Programmazione MIDI (Prof. Luca A. Ludovico)4. Messaggi Channel Voice
• Messaggio100100100011111001000000
(1)0010010 (0)0111110 (0)1000000Byte di stato I Byte di dati II Byte di dati
Note On su canale 3
Pitch 62 (Re dell’ottava centrale)
Velocity 64 (mf)
![Page 14: Messaggi Channel Voice Lezione 4 Programmazione MIDI (Prof. Luca A. Ludovico)](https://reader036.vdocumenti.com/reader036/viewer/2022062312/5542eb4b497959361e8b7c4a/html5/thumbnails/14.jpg)
Esercizio
Programmazione MIDI (Prof. Luca A. Ludovico)4. Messaggi Channel Voice
• Messaggio100100110100010101001111
(1)0010011 (0)1000101 (0)1001111Byte di stato I Byte di dati II Byte di dati
Note On su canale 4
Pitch 69 (La dell’ottava centrale)
Velocity 79 (mf, f)
![Page 15: Messaggi Channel Voice Lezione 4 Programmazione MIDI (Prof. Luca A. Ludovico)](https://reader036.vdocumenti.com/reader036/viewer/2022062312/5542eb4b497959361e8b7c4a/html5/thumbnails/15.jpg)
Esercizio
Programmazione MIDI (Prof. Luca A. Ludovico)4. Messaggi Channel Voice
• Messaggio100100000011001100000000
(1)0010000 (0)0110011 (0)0000000Byte di stato I Byte di dati II Byte di dati
Note On su canale 1
Pitch 51 (Re# sotto ottava centrale)
Velocity 0 (Note Off)
![Page 16: Messaggi Channel Voice Lezione 4 Programmazione MIDI (Prof. Luca A. Ludovico)](https://reader036.vdocumenti.com/reader036/viewer/2022062312/5542eb4b497959361e8b7c4a/html5/thumbnails/16.jpg)
Channel Pressure (o Channel Aftertouch)
Programmazione MIDI (Prof. Luca A. Ludovico)4. Messaggi Channel Voice
MIDI Outo
MIDI Thru
MIDI InByte di dati
Pressure[0..127]10
Byte di stato
1101cccc2
• 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
![Page 17: Messaggi Channel Voice Lezione 4 Programmazione MIDI (Prof. Luca A. Ludovico)](https://reader036.vdocumenti.com/reader036/viewer/2022062312/5542eb4b497959361e8b7c4a/html5/thumbnails/17.jpg)
Channel Pressure (o Channel Aftertouch)
Programmazione MIDI (Prof. Luca A. Ludovico)4. Messaggi Channel Voice
• 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.
![Page 18: Messaggi Channel Voice Lezione 4 Programmazione MIDI (Prof. Luca A. Ludovico)](https://reader036.vdocumenti.com/reader036/viewer/2022062312/5542eb4b497959361e8b7c4a/html5/thumbnails/18.jpg)
Polyphonic Aftertouch
Programmazione MIDI (Prof. Luca A. Ludovico)4. Messaggi Channel Voice
• 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 Outo
MIDI Thru
MIDI InII Byte di dati
Pressure[0..127]10
I Byte di dati
Pitch[0..127]10
Byte di stato
1010cccc2
![Page 19: Messaggi Channel Voice Lezione 4 Programmazione MIDI (Prof. Luca A. Ludovico)](https://reader036.vdocumenti.com/reader036/viewer/2022062312/5542eb4b497959361e8b7c4a/html5/thumbnails/19.jpg)
Esempio di channel vs polyphonic aftertouch
Programmazione MIDI (Prof. Luca A. Ludovico)4. Messaggi Channel Voice
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
![Page 20: Messaggi Channel Voice Lezione 4 Programmazione MIDI (Prof. Luca A. Ludovico)](https://reader036.vdocumenti.com/reader036/viewer/2022062312/5542eb4b497959361e8b7c4a/html5/thumbnails/20.jpg)
Esempio di channel vs polyphonic aftertouch
Programmazione MIDI (Prof. Luca A. Ludovico)4. Messaggi Channel Voice
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
![Page 21: Messaggi Channel Voice Lezione 4 Programmazione MIDI (Prof. Luca A. Ludovico)](https://reader036.vdocumenti.com/reader036/viewer/2022062312/5542eb4b497959361e8b7c4a/html5/thumbnails/21.jpg)
Program Change
Programmazione MIDI (Prof. Luca A. Ludovico)4. Messaggi Channel Voice
MIDI Outo
MIDI Thru
MIDI InByte di dati
Num. di programma[0..127]10
Byte di stato
1100cccc2
• 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
![Page 22: Messaggi Channel Voice Lezione 4 Programmazione MIDI (Prof. Luca A. Ludovico)](https://reader036.vdocumenti.com/reader036/viewer/2022062312/5542eb4b497959361e8b7c4a/html5/thumbnails/22.jpg)
Program Change
Programmazione MIDI (Prof. Luca A. Ludovico)4. Messaggi Channel Voice
• 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
![Page 23: Messaggi Channel Voice Lezione 4 Programmazione MIDI (Prof. Luca A. Ludovico)](https://reader036.vdocumenti.com/reader036/viewer/2022062312/5542eb4b497959361e8b7c4a/html5/thumbnails/23.jpg)
Pitch Bend Change
Programmazione MIDI (Prof. Luca A. Ludovico)4. Messaggi Channel Voice
MIDI Outo
MIDI Thru
MIDI InII Byte di dati
Most Significant Byte (MSB)[0..127]10
I Byte di dati
Least Significant Byte(LSB)[0..127]10
Byte di stato
1110cccc2
• 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.
![Page 24: Messaggi Channel Voice Lezione 4 Programmazione MIDI (Prof. Luca A. Ludovico)](https://reader036.vdocumenti.com/reader036/viewer/2022062312/5542eb4b497959361e8b7c4a/html5/thumbnails/24.jpg)
Pitch Bend Change
Programmazione MIDI (Prof. Luca A. Ludovico)4. Messaggi Channel Voice
• 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
![Page 25: Messaggi Channel Voice Lezione 4 Programmazione MIDI (Prof. Luca A. Ludovico)](https://reader036.vdocumenti.com/reader036/viewer/2022062312/5542eb4b497959361e8b7c4a/html5/thumbnails/25.jpg)
Pitch Bend Change
Programmazione MIDI (Prof. Luca A. Ludovico)4. Messaggi Channel Voice
• 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