Messaggi Channel Mode Lezione 5 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) 5. Messaggi Channel Mode
Collocazione logica dei messaggi Control Change Messaggi MIDI Channel Voice Messages Note On Note Off … Channel Mode Messages Control Change Control Change 0 Control Change 119 Control Change 120 Control Change 127 System Common Messages System Real Time Messages System Exclusive Messages Programmazione MIDI (Prof. Luca A. Ludovico) 5. Messaggi Control Change
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 Val. di controllo [0..127]10 I Byte di dati Val. di controllo [0..127]10 Byte di stato Control Change 1011cccc2 MIDI In Programmazione MIDI (Prof. Luca A. Ludovico) 5. Messaggi Channel Mode
Forzano i modi in cui i messaggi MIDI vengono ricevuti e trasmessi 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 000000002 ? I Byte di dati Specificatore [124..127]10 Byte di stato Control Change 1011cccc2 MIDI In Programmazione MIDI (Prof. Luca A. Ludovico) 5. Messaggi Channel Mode
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) 5. 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) 5. Messaggi Channel Mode
Esempio Omni On/Off Sequencer Synth A (Base Ch.: 1) Omni Off Synth B Sintesi dei msg Channel Voice sul Channel 1 Sintesi dei msg Channel Voice sul Channel 2 Sintesi dei msg Channel Voice sui Channel 1, 2, 5 e 7 MIDI Out MIDI In MIDI Thru MIDI In MIDI Thru MIDI In Msg Channel Voice sui Channel 1, 2, 5 e 7 Sequencer Synth A (Base Ch.: 1) Omni Off Synth B (Base Ch.: 2) Omni Off Synth C (Base Ch.: 7) 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 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) 5. Messaggi Channel Mode
Messaggi MIDI Omni On/Off Omni Mode Off Omni Mode On MIDI Out o MIDI Thru II Byte di dati 000000002 I Byte di dati Modo 011111002 Byte di stato Control Change 1011cccc2 MIDI In MIDI Out o MIDI Thru II Byte di dati 000000002 I Byte di dati Modo 011111012 Byte di stato Control Change 1011cccc2 MIDI In Programmazione MIDI (Prof. Luca A. Ludovico) 5. Messaggi Channel Mode
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) 5. 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) 5. 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) 5. Messaggi Channel Mode
Messaggi MIDI Omni On/Off Mono Mode On (Poly Mode Off) Mono Mode Off (Poly Mode On) MIDI Out o MIDI Thru II Byte di dati Se Omni On: 000000002 Se Omni Off: 0nnnnnnn2 con nnnnnnn codifica binaria del num di canali I Byte di dati Modo 011111102 Byte di stato Control Change 1011cccc2 MIDI In MIDI Out o MIDI Thru II Byte di dati 000000002 I Byte di dati Modo 011111112 Byte di stato Control Change 1011cccc2 MIDI In Programmazione MIDI (Prof. Luca A. Ludovico) 5. Messaggi Channel Mode
Mode 1 (Omni On, Poly) Ricezione polifonica su tutti i 16 canali MIDI I quattro modi: Mode 1 Poly Mono Omni On 1 2 Omni Off 3 4 Mode 1 (Omni On, Poly) Ricezione polifonica su tutti i 16 canali MIDI 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) 5. Messaggi Channel Mode
I quattro modi: ricezione in Mode 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Poly Mono Omni On 1 2 Omni Off 3 4 Voice messages are received from all Voice Channels, and assigned to voices polyphonically. 1 k Dispositivo in grado di gestire polifonia a k voci … Programmazione MIDI (Prof. Luca A. Ludovico) 5. Messaggi Channel Mode
I quattro modi: Mode 1 Poly Mono Omni On 1 2 Omni Off 3 4 Modalità usata raramente, in quanto “miscela” i messaggi provenienti da tutti i canali, perdendo dunque i riferimenti ai differenti canali 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) 5. Messaggi Channel Mode
Mode 2 (Omni On, Mono) Ricezione monofonica su tutti i 16 canali MIDI I quattro modi: Mode 2 Poly Mono Omni On 1 2 Omni Off 3 4 Mode 2 (Omni On, Mono) Ricezione monofonica su tutti i 16 canali MIDI 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) 5. Messaggi Channel Mode
I quattro modi: ricezione in Mode 2 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Poly Mono Omni On 1 2 Omni Off 3 4 Voice messages are received from all Voice Channels, and control only one voice, monophonically. 1 Dispositivo in grado di gestire una sola voce (sul canale base N) Programmazione MIDI (Prof. Luca A. Ludovico) 5. Messaggi Channel Mode
I quattro modi: Mode 2 Poly Mono Omni On 1 2 Omni Off 3 4 Modalità implementata raramente, in quanto suonare una nota alla volta tra gli eventi che arrivano sui 16 canali può essere poco sensato. 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) 5. Messaggi Channel Mode
Mode 3 (Omni Off, Poly) Ricezione polifonica su specifico canale MIDI I quattro modi: Mode 3 Poly Mono Omni On 1 2 Omni Off 3 4 Mode 3 (Omni Off, Poly) Ricezione polifonica su specifico canale MIDI 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) 5. Messaggi Channel Mode
I quattro modi: ricezione in Mode 3 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Poly Mono Omni On 1 2 Omni Off 3 4 Voice messages are received in Voice Channel N only, and are assigned to voices polyphonically. 1 k Dispositivo in grado di gestire polifonia a k voci … Programmazione MIDI (Prof. Luca A. Ludovico) 5. Messaggi Channel Mode
I quattro modi: Mode 3 Poly Mono Omni On 1 2 Omni Off 3 4 Modalità maggiormente usata. E’ l’impostazione migliore per un sistema MIDI complesso, in quanto permette di assegnare i canali MIDI in ricezione e trasmissione. Esempio Controller a tastiera che pilota un sintetizzatore (polifonico) dedicato presente nella catena. Programmazione MIDI (Prof. Luca A. Ludovico) 5. Messaggi Channel Mode
Mode 4 (Omni Off, Mono) Ricezione monofonica su specifico canale MIDI I quattro modi: Mode 4 Poly Mono Omni On 1 2 Omni Off 3 4 Mode 4 (Omni Off, Mono) Ricezione monofonica su specifico canale MIDI 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) 5. Messaggi Channel Mode
I quattro modi: ricezione in Mode 4 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Poly Mono Omni On 1 2 Omni Off 3 4 Voice messages are received in Voice Channel N only, and control only one voice, monophonically. 1 Dispositivo in grado di gestire una sola voce (sul canale base N) Programmazione MIDI (Prof. Luca A. Ludovico) 5. Messaggi Channel Mode
I quattro modi: Mode 4 Poly Mono Omni On 1 2 Omni Off 3 4 Modalità utile per il collegamento di sintetizzatori per strumenti monofonici, quali la maggior parte dei fiati. Esempio Controller a fiato che pilota un sintetizzatore monofonico dedicato presente nella catena. Programmazione MIDI (Prof. Luca A. Ludovico) 5. Messaggi Channel Mode
I 4 messaggi implicano anche All Notes Off. 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) 5. 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) 5. 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) 5. Messaggi Channel Mode
Altri modi: Mono Mode 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 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 1 6 … Programmazione MIDI (Prof. Luca A. Ludovico) 5. 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 MIDI In C1 PB S1 S2 S3 MIDI Out MIDI In MIDI Out MIDI In MIDI Thru MIDI In MIDI Thru MIDI In Programmazione MIDI (Prof. Luca A. Ludovico) 5. Messaggi Channel Mode
Soluzione 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 C2 MIDI Out MIDI In C1 PB S1 S2 S3 MIDI Out MIDI In MIDI Out MIDI In MIDI Thru MIDI In MIDI Thru MIDI In Programmazione MIDI (Prof. Luca A. Ludovico) 5. 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) 5. Messaggi Channel Mode