Lezione 6 Messaggi Channel Mode 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) 6. Messaggi Channel Mode Collocazione logica dei messaggi Control Change Messaggi MIDI Channel Voice Messages Note On Channel Mode Messages Note Off Control Change 0 … … Programmazione MIDI (Prof. Luca A. Ludovico) 5. Messaggi Control Change System Common Messages System Real Time Messages System Exclusive Messages Control Change Control Change 119 Control Change 120 … Control Change 127 Messaggi Control Change • Insieme di 128 eventi o azioni trasmessi attraverso il MIDI. Ciascun evento viene identificato da un proprio numero. • Il Byte di stato identifica un messaggio Control Change tramite la combinazione 1011cccc2 = [176..191]10 • Il messaggio è formato poi da 2 Byte di dati – – I Byte di dati: Control Change da eseguire II Byte di dati: valore per il Control Change selezionato MIDI Out o MIDI Thru II Byte di dati I Byte di dati Byte di stato Val. di controllo Val. di controllo Control Change [0..127]10 [0..127]10 1011cccc2 Programmazione MIDI (Prof. Luca A. Ludovico) 6. Messaggi Channel Mode MIDI In Messaggi Channel Mode • Forzano i modi in cui i messaggi MIDI vengono ricevuti e trasmessi • Si tratta di casi particolari di evento Control Change – – Per indicare il modo specifico, si utilizza il I Byte di dati Il II Byte di dati normalmente assume il valore predefinito 0, però esistono alcune varianti MIDI Out o MIDI Thru II Byte di dati I Byte di dati Byte di stato 000000002 ? Specificatore [124..127]10 Control Change 1011cccc2 Programmazione MIDI (Prof. Luca A. Ludovico) 6. Messaggi Channel Mode MIDI In Il canale base (Base Channel) • Ogni dispositivo MIDI ha (almeno) un canale base nell’intervallo [1..16] che l’utente di solito può impostare manualmente • Sul canale base possono essere trasmessi/ricevuti anche messaggi di tipo Channel Voice • I messaggi Control Change relativi a un canale N vengono ascoltati da tutti e soli i dispositivi che hanno N come canale base – Questo anche nel caso il dispositivo sia impostato per ricevere i messaggi Channel Voice pure da tutti i 16 canali Programmazione MIDI (Prof. Luca A. Ludovico) 6. Messaggi Channel Mode Modalità Omni On vs. Omni Off • Omni Off Il dispositivo risponde a messaggi Channel Voice su un numero limitato di canali, solitamente 1. – Esempio: se il canale base di un dispositivo è posto a 1, e giunge un messaggio Channel Voice sul canale 2, il dispositivo lo ignora. • Omni On Il dispositivo riceve messaggi su tutti i 16 canali MIDI. – Osservazione: più semplice da utilizzare in una configurazione semplice (quale controller + modulo sonoro), però poco appropriato a configurazioni daisy-chain complesse. Programmazione MIDI (Prof. Luca A. Ludovico) 6. Messaggi Channel Mode Esempio Omni On/Off Sintesi dei msg Channel Voice sul Channel 1 Msg Channel Voice sui Channel 1, 2, 5 e 7 MIDI Out Sequencer MIDI In Sintesi dei msg Channel Voice sul Channel 2 MIDI Thru MIDI In Sintesi dei msg Channel Voice sui Channel 1, 2, 5 e 7 MIDI Thru Synth A (Base Ch.: 1) Synth B (Base Ch.: 2) Synth C (Base Ch.: 7) Omni Off Omni Off Omni On Per cambiare in Omni On l’impostazione di Synth B, si dovrà inviare un messaggio Control Change così costruito: (1)011 0001 (0)1111101 (0)0000000 Control Change su Ch. 2 MIDI In Omni Mode On Valore di default che cambierebbe il modo anche per gli altri dispositivi con canale base 2. Programmazione MIDI (Prof. Luca A. Ludovico) 6. Messaggi Channel Mode Messaggi MIDI Omni On/Off • Omni Mode Off MIDI Out o MIDI Thru II Byte di dati I Byte di dati Byte di stato 000000002 Modo 011111002 Control Change 1011cccc2 II Byte di dati I Byte di dati Byte di stato 000000002 Modo 011111012 Control Change 1011cccc2 MIDI In • Omni Mode On MIDI Out o MIDI Thru Programmazione MIDI (Prof. Luca A. Ludovico) 6. Messaggi Channel Mode MIDI In Omni On e Omni Off con strumenti multitimbrici • Strumento multitimbrico: può ascoltare e riprodurre messaggi inviati sui tutti i 16 canali MIDI simultaneamente, impostando uno strumento o una patch differente per ciascuno. • L’utente può scegliere quali canali far ascoltare e quali no. Non è necessario sfruttare tutti i 16 canali. • Si usa il modo Omni On? No: lo strumento appare come l’unione di 16 moduli sonori distinti (detti parti). Ogni parte è in modalità Omni Off. Programmazione MIDI (Prof. Luca A. Ludovico) 6. Messaggi Channel Mode Modalità Poly vs. Mono • Poly Il dispositivo può rispondere a più di un evento Note On “simultaneo” su un dato canale. Quindi ammette accordi e polifonie su un dato canale. • Mono Il dispositivo non risponde a più di un evento Note On “simultaneo” su un dato canale. Quindi ammette linee melodiche, e non accordi su un dato canale. • Osservazioni: – – Su canali distinti? Cosa si intende per “simultaneo”? Programmazione MIDI (Prof. Luca A. Ludovico) 6. Messaggi Channel Mode Esempi in modalità Poly e Mono • Poly Sul canale x giunge un Note On relativo a C4, poi un Note On relativo a G4. Viene eseguito l’accordo. • Mono Sul canale x giunge un Note On relativo a C4, poi un Note On relativo a G4. Alla ricezione di G4, viene automaticamente spento C4 (messaggio Note Off). • Utilità del modo Mono: simulare strumenti tipicamente monodici, quali la maggior parte dei fiati. Alle volte, la transizione viene gestita in modo intelligente. Programmazione MIDI (Prof. Luca A. Ludovico) 6. Messaggi Channel Mode Messaggi MIDI Omni On/Off • Mono Mode On (Poly Mode Off) MIDI Out o MIDI Thru II Byte di dati I Byte di dati Se Omni On: 000000002 Modo Se Omni Off: 0nnnnnnn2 011111102 con nnnnnnn codifica binaria del num di canali Byte di stato MIDI In Control Change 1011cccc2 • Mono Mode Off (Poly Mode On) MIDI Out o MIDI Thru II Byte di dati I Byte di dati Byte di stato 000000002 Modo 011111112 Control Change 1011cccc2 Programmazione MIDI (Prof. Luca A. Ludovico) 6. Messaggi Channel Mode MIDI In I quattro modi: Mode 1 • Mode 1 (Omni On, Poly) Ricezione polifonica su tutti i 16 canali MIDI Poly Mono Omni On 1 2 Omni Off 3 4 • Il dispositivo: – – in ingresso gestisce i dati MIDI su tutti i canali, indipendentemente dal proprio canale base N in uscita convoglia tutti i messaggi sul proprio canale base N • Il dispositivo gestisce la polifonia sul singolo canale Programmazione MIDI (Prof. Luca A. Ludovico) 6. Messaggi Channel Mode I quattro modi: ricezione in Mode 1 6 8 7 9 10 5 11 12 4 Poly Mono Omni On 1 2 Omni Off 3 4 13 3 14 2 15 1 16 Voice messages are received from all Voice Channels, and assigned to voices polyphonically. 1 … Programmazione MIDI (Prof. Luca A. Ludovico) 6. Messaggi Channel Mode k Dispositivo in grado di gestire polifonia a k voci I quattro modi: Mode 1 • Modalità usata raramente, in quanto “miscela” i messaggi provenienti da tutti i canali, perdendo dunque i riferimenti ai differenti canali Poly Mono Omni On 1 2 Omni Off 3 4 • Applicabile in un sistema MIDI molto semplice (ad es. un master ed uno slave) • Esempio Sequencer con msg Channel Voice sui canali 1 e 2 che pilota un modulo sonoro monotimbrico polifonico a 16 voci. Programmazione MIDI (Prof. Luca A. Ludovico) 6. Messaggi Channel Mode I quattro modi: Mode 2 • Mode 2 (Omni On, Mono) Ricezione monofonica su tutti i 16 canali MIDI Poly Mono Omni On 1 2 Omni Off 3 4 • Il dispositivo: – – in ingresso riceve messaggi MIDI da tutti i canali, controllando solo una voce monofonicamente in uscita i messaggi Voice di una voce vengono inviati sul canale base N • Il dispositivo non gestisce la polifonia sul singolo canale. Programmazione MIDI (Prof. Luca A. Ludovico) 6. Messaggi Channel Mode I quattro modi: ricezione in Mode 2 6 7 8 9 5 11 12 4 Mono Omni On 1 2 Omni Off 3 4 13 3 14 2 1 10 Poly 15 16 Voice messages are received from all Voice Channels, and control only one voice, monophonically. 1 Programmazione MIDI (Prof. Luca A. Ludovico) 6. Messaggi Channel Mode Dispositivo in grado di gestire una sola voce (sul canale base N) I quattro modi: Mode 2 • Modalità implementata raramente, in quanto suonare una nota alla volta tra gli eventi che arrivano sui 16 canali può essere poco sensato. Poly Mono Omni On 1 2 Omni Off 3 4 • Esempio Collegamento di più controller monofonici (ciascuno su un canale differente) orientati alla sintesi di uno stesso strumento ad un sintetizzatore monofonico e monotimbrico. Programmazione MIDI (Prof. Luca A. Ludovico) 6. Messaggi Channel Mode I quattro modi: Mode 3 • Mode 3 (Omni Off, Poly) Ricezione polifonica su specifico canale MIDI Poly Mono Omni On 1 2 Omni Off 3 4 • Il dispositivo: – – in ingresso gestisce solo i dati MIDI in ingresso destinati al proprio canale base N in uscita convoglia tali messaggi sul proprio canale base N • Il dispositivo gestisce la polifonia sul singolo canale. Programmazione MIDI (Prof. Luca A. Ludovico) 6. Messaggi Channel Mode I quattro modi: ricezione in Mode 3 6 8 7 9 10 5 11 12 4 Poly Mono Omni On 1 2 Omni Off 3 4 13 3 14 2 15 1 16 Voice messages are received in Voice Channel N only, and are assigned to voices polyphonically. 1 … Programmazione MIDI (Prof. Luca A. Ludovico) 6. Messaggi Channel Mode k Dispositivo in grado di gestire polifonia a k voci I quattro modi: Mode 3 • Modalità maggiormente usata. E’ l’impostazione migliore per un sistema MIDI complesso, in quanto permette di assegnare i canali MIDI in ricezione e trasmissione. Poly Mono Omni On 1 2 Omni Off 3 4 • Esempio Controller a tastiera che pilota un sintetizzatore (polifonico) dedicato presente nella catena. Programmazione MIDI (Prof. Luca A. Ludovico) 6. Messaggi Channel Mode I quattro modi: Mode 4 • Mode 4 (Omni Off, Mono) Ricezione monofonica su specifico canale MIDI Poly Mono Omni On 1 2 Omni Off 3 4 • Il dispositivo: – – in ingresso gestisce i dati MIDI in ingresso destinati al proprio canale base N in uscita convoglia tali messaggi sul proprio canale base N • Il dispositivo non gestisce la polifonia su tale canale. Programmazione MIDI (Prof. Luca A. Ludovico) 6. Messaggi Channel Mode I quattro modi: ricezione in Mode 4 6 7 8 9 5 10 11 12 4 Poly Mono Omni On 1 2 Omni Off 3 4 13 3 14 2 15 1 16 Voice messages are received in Voice Channel N only, and control only one voice, monophonically. 1 Programmazione MIDI (Prof. Luca A. Ludovico) 6. Messaggi Channel Mode Dispositivo in grado di gestire una sola voce (sul canale base N) I quattro modi: Mode 4 • Modalità utile per il collegamento di sintetizzatori per strumenti monofonici, quali la maggior parte dei fiati. Poly Mono Omni On 1 2 Omni Off 3 4 • Esempio Controller a fiato che pilota un sintetizzatore monofonico dedicato presente nella catena. Programmazione MIDI (Prof. Luca A. Ludovico) 6. Messaggi Channel Mode Osservazioni • I 4 messaggi implicano anche All Notes Off. • Non tutti i dispositivi gestiscono i 4 modi previsti dalle specifiche MIDI. Essi dovrebbero: – ignorare i messaggi Channel Mode (pure se inviati al proprio canale base) che li portano nello stato non supportato, oppure… – …portarsi nello stato più prossimo a quello richiesto • Dispositivi che possono sia ricevere che trasmettere messaggi MIDI (ad es. tastiere con funzioni di sintesi) devono consentire impostazioni differenti su ingresso e uscita per quanto concerne il canale base e il modo MIDI Programmazione MIDI (Prof. Luca A. Ludovico) 6. Messaggi Channel Mode Altri modi: MultiTimbral (o Multi-, o Super-) Mode • Usato nei dispositivi multitimbrici, ad esempio nei moduli sonori multitimbrici. • Evoluzione del Modo 3 (Omni Off / Poly): consente al dispositivo di rispondere simultaneamente e indipendentemente a diversi canali MIDI polifonici. • Gestione delle voci disponibili: solitamente allocazione dinamica delle risorse a fini di ottimizzazione. Programmazione MIDI (Prof. Luca A. Ludovico) 6. Messaggi Channel Mode Altri modi: Mono Mode • Reinterpretazione del Modo 4: consente l’uso simultaneo di più canali Omni Off/Mono – In ingresso, si ricevono messaggi MIDI sui canali [N..N+M-1], che vengono assegnati monofonicamente alle voci [1..M]. Il numero di voci da ricevere viene specificato tramite il 3°byte del messaggio Mono Mode – In uscita, i messaggi delle voci [1..M] vengono trasmessi, monofonicamente e una voce per canale, sui canali [N..N+M-1] • Esempio: chitarre MIDI (un canale per ciascuna corda del controller consente un tracking migliore delle note, pitch bend indipendenti, e un timbro o patch diversa per canale) Programmazione MIDI (Prof. Luca A. Ludovico) 6. Messaggi Channel Mode Altri modi: Mono Mode 6 8 7 9 10 5 11 12 4 13 3 14 2 15 1 16 1 … 6 Voice messages are received in Voice Channels N through N+M-1, and assigned monophonically to voices 1 through M, respectively. The number of voices M is specified by the third byte of the Mono Mode Message. Es.: per le corde di una chitarra N = 2, M = 6 Programmazione MIDI (Prof. Luca A. Ludovico) 6. Messaggi Channel Mode Esercizio Si consideri una catena MIDI di dispositivi collegati in daisy-chain, nel seguente ordine: • • • • • Controller chitarra MIDI, denominato C1, collegato a una patchbay PB Controller con 2 tastiere indipendenti (organo elettronico) e senza funzioni di sintesi, denominato C2, collegato alla patchbay PB; Modulo sonoro per la sintesi della prima tastiera, denominato S1; Modulo sonoro per la sintesi della seconda tastiera, denominato S2; Modulo sonoro per la sintesi monotimbrica di tutti gli eventi, denominato S3; Si determini il modo operativo più opportuno per ciascun dispositivo. C2 MIDI Out C1 MIDI In PB MIDI Out MIDI In S1 MIDI Out Programmazione MIDI (Prof. Luca A. Ludovico) 6. Messaggi Channel Mode MIDI In S2 MIDI Thru MIDI In S3 MIDI Thru MIDI In Soluzione C2 MIDI Out C1 MIDI In PB MIDI Out MIDI In S1 MIDI Out MIDI In S2 MIDI Thru MIDI In S3 MIDI Thru MIDI In • C1 (monofonia su 6 canali indipendenti): 6 dispositivi in Modo 4 (Mono) • C2 (polifonia su canali indipendenti): 2 dispositivi in Modo 3 • S1, S2 (polifonia sul proprio canale): entrambi i dispositivi in Modo 3 • S3 (polifonia da vari canali sul canale base): dispositivo in Modo 1 Programmazione MIDI (Prof. Luca A. Ludovico) 6. Messaggi Channel Mode Approfondimenti • http://www.midi.org/techspecs/midimessages.php • http://www.blitter.com/~russtopia/MIDI/~jglatt/tech/midispec/modes.htm • http://www.philrees.co.uk/articles/midimode.htm • http://www.xs4all.nl/~hensing/midi_specs/midi_specs.html Programmazione MIDI (Prof. Luca A. Ludovico) 6. Messaggi Channel Mode