messaggi channel voice lezione 4 programmazione midi (prof. luca a. ludovico)

25
Messaggi Channel Voice Lezione 4 Programmazione MIDI (Prof. Luca A. Ludovico)

Upload: allegra-mele

Post on 01-May-2015

230 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Messaggi Channel Voice Lezione 4 Programmazione MIDI (Prof. Luca A. Ludovico)

Messaggi Channel Voice

Lezione 4

Programmazione MIDI (Prof. Luca A. Ludovico)

Page 2: Messaggi Channel Voice Lezione 4 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

Page 3: Messaggi Channel Voice Lezione 4 Programmazione MIDI (Prof. Luca A. Ludovico)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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