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
Scarica

Presentazione del corso