270 likes | 387 Views
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
E N D
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 MIDI Out oMIDI Thru II Byte di dati Velocity [1..127]10 I Byte di dati Pitch [0..127]10 Byte di stato 1001cccc2 MIDI In • 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) Programmazione MIDI (Prof. Luca A. Ludovico)4. Messaggi Channel Voice
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 scientificaCalcolo 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] 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 MIDI Out oMIDI Thru II Byte di dati ReleaseVelocity [0..127]10 I Byte di dati Pitch [0..127]10 Byte di stato 1000cccc2 MIDI In • 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) Programmazione MIDI (Prof. Luca A. Ludovico)4. Messaggi Channel Voice
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 • Messaggio100100100011111001000000 (1)0010010 (0)0111110 (0)1000000Byte di stato I Byte di dati II Byte di datiNote On su canale 3 Pitch 62 (Re dell’ottava centrale) Velocity 64 (mf) Programmazione MIDI (Prof. Luca A. Ludovico)4. Messaggi Channel Voice
Esercizio • Messaggio100100110100010101001111 (1)0010011 (0)1000101 (0)1001111Byte di stato I Byte di dati II Byte di datiNote 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 • Messaggio100100000011001100000000 (1)0010000 (0)0110011 (0)0000000Byte di stato I Byte di dati II Byte di datiNote 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) MIDI Out oMIDI Thru Byte di dati Pressure [0..127]10 Byte di stato 1101cccc2 MIDI In • 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 Programmazione MIDI (Prof. Luca A. Ludovico)4. Messaggi Channel Voice
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 MIDI Out oMIDI Thru II Byte di dati Pressure [0..127]10 I Byte di dati Pitch [0..127]10 Byte di stato 1010cccc2 MIDI In • 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 Programmazione MIDI (Prof. Luca A. Ludovico)4. Messaggi Channel Voice
Esempio di channel vs polyphonic aftertouch Programmazione MIDI (Prof. Luca A. Ludovico)4. Messaggi Channel Voice
Esempio di channel vs polyphonic aftertouch 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 MIDI Out oMIDI Thru Byte di dati Num. di programma [0..127]10 Byte di stato 1100cccc2 MIDI In • 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 Programmazione MIDI (Prof. Luca A. Ludovico)4. Messaggi Channel Voice
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 MIDI Out oMIDI Thru II Byte di dati MostSignificant Byte (MSB) [0..127]10 I Byte di dati LeastSignificant Byte(LSB) [0..127]10 Byte di stato 1110cccc2 MIDI In • 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. Programmazione MIDI (Prof. Luca A. Ludovico)4. Messaggi Channel Voice
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