Lezione 8
Sincronizzazione
Programmazione MIDI (Prof. Luca A. Ludovico)
Sincronizzazione tra dispositivi
• Relazione master-slave
–
Il master è uno, gli slave possono essere più di uno
• Cosa si può sincronizzare?
–
–
Sequencer e: drum machine, dispositivo di riproduzione video,
registratore multitraccia, …
Perché non un controller e un synth? Non serve!
• Due metodi di sincronizzazione per il MIDI
1. Time Code (o timecode SMPTE)
2. (MIDI) Timing Clock
Programmazione MIDI (Prof. Luca A. Ludovico)
8. Sincronizzazione
Sezione 8.2
MIDI TIME CODE (MTC)
Programmazione MIDI (Prof. Luca A. Ludovico)
8. Sincronizzazione
Society of Motion Picture and Television Engineers
• SMPTE è l’acronimo di Society of Motion Picture and
Television Engineers
• Fondata nel 1916 come Society of Motion Picture
Engineers (SMPE), è un'associazione professionale
internazionale con sede negli Stati Uniti, che riunisce
tecnici dell'industra televisiva e cinematografica.
• SMPTE è riconosciuta come organismo in grado di
stabilire standard internazionali: ha all’attivo più di 400
standard, raccomandazioni e linee guida per il cinema,
la televisione, l'audio e la fotografia medica
Programmazione MIDI (Prof. Luca A. Ludovico)
8. Sincronizzazione
Time Code (o timecode SMPTE)
• Il Time Code (o timecode SMPTE) è un insieme di
standard cooperativi per l'identificazione univoca di
fotogrammi video o su pellicola cinematografica con un
timecode, standard definito dalla SMPTE nella specifica
12M.
• Il Time Code è aggiunto a materiale video, audio o
cinematografico ed è anche stato adattato per la
sincronizzazione musicale, fornendo in ogni caso un
riferimento temporale assoluto per il montaggio e la
scalettatura del materiale.
Programmazione MIDI (Prof. Luca A. Ludovico)
8. Sincronizzazione
Time Code (o timecode SMPTE)
• Segnale elettronico per identificare posizione precisa su
un media basato sul tempo (es. videoregistratori o
sistemi audio digitali che supportano time code)
• Rappresentazione della posizione temporale:
ore:minuti:secondi:frame[:subframe]
• Il segnale elettronico viene inviato assieme al media per
permettere ad altri dispositivi di sincronizzarsi. Lo slave
ha meccanismo di bloccaggio per sincronizzarsi con la
temporizzazione del master
Programmazione MIDI (Prof. Luca A. Ludovico)
8. Sincronizzazione
Esempio
00:00:02:22
Programmazione MIDI (Prof. Luca A. Ludovico)
8. Sincronizzazione
00:00:02:23
00:00:03:00
Le tipologie di timecode SMPTE
1. MIDI Time Code (MTC): versione MIDI di SMPTE.
Usato per sincronizzare dispositivi MIDI compatibili con dispositivi
audio/video.
2. Vertical Interval Time Code (VITC): segnale registrato come parte
del segnale video in una linea non utilizzata che è parte
dell’intervallo verticale.
Usato per sincronizzare dispositivi VITC compatibili.
3. Longitudinal Time Code (LTC): solitamente segnale audio registrato
su una delle tracce del nastro.
Usato anche per sincronizzare macchine video, ma in grado di agire
anche su dispositivi esclusivamente audio (al contrario del VITC).
Programmazione MIDI (Prof. Luca A. Ludovico)
8. Sincronizzazione
Frequenze di fotogrammi (o frame rate)
•
Perché è importante nel Time Code?
•
Frequenze (fps, frame per second) standard
–
–
–
–
–
24 fps: standard delle pellicole cinematografiche
25 fps: standard video PAL (Phase Alternate Line) e SECAM/EBU (Sequential
Color And Memory/European Broadcast Union), in uso rispettivamente in Asia e
in Europa
29.97 fps (o 29.97 Non-Drop, talvolta indicato come 30 fps): standard video
NTSC (National Television Standards Committee) in uso in Nord America
29.97 fps DF (o 29.97 Drop-Frame, talvolta indicato come 30 fps DF): introdotto
per ospitare le informazioni extra relative al colore, rallentando i 30 fps del
b/n a 29.97 per il colore
30 fps: formato utilizzato con il primo NTSC bianco e nero
Programmazione MIDI (Prof. Luca A. Ludovico)
8. Sincronizzazione
MIDI Time Code (MTC)
• Consente ai dispositivi di creazione musicale dotati di
sequencer di agganciarsi ai dispositivi di produzione
audio/video basati su SMPTE Time Code.
• MTC è una versione MIDI di SMPTE Time Code. Necessita
di un convertitore ad hoc.
• I messaggi MIDI comunicano al sequencer la posizione
temporale esatta in termini di: ore, minuti, secondi,
frame e tipo di time code (ad es. PAL, NTSC, …)
Programmazione MIDI (Prof. Luca A. Ludovico)
8. Sincronizzazione
Struttura dei messaggi MTC
• Famiglia: System Common (messaggi pensati per tutti i
canali, vedi lezione 9)
• MTC è detto anche quarter frame: nel tempo di 1
frame, MIDI deve inviare 4 messaggi MTC
• Un solo byte di dati per rappresentare il tipo di time
code (fps) e il valore dell’indirizzo temporale
MIDI Out
o
MIDI Thru
Programmazione MIDI (Prof. Luca A. Ludovico)
8. Sincronizzazione
I Byte di dati
Byte di stato
Valore
[0..127]10 MTC Quarter Frame
111100012
MIDI In
Struttura dei messaggi MTC
•
Problema: per rappresentare un SMPTE completo si usano 80 bit
(contiene anche altre info), il Data Byte dell’MTC ne presenta solo 7.
Soluzione: spezzare l’informazione in 8 messaggi, marchiati in modo
da poter ricostruire l’indirizzo temporale di partenza
dddd2 contiene il valore (o meglio, una parte del valore)
nnn2 identifica quale parte del valore secondo la tabella:
Byte di dati
02 nnn2 dddd2








000
001
010
011
100
101
110
111
=
=
=
=
=
=
=
=
Current
Current
Current
Current
Current
Current
Current
Current
Programmazione MIDI (Prof. Luca A. Ludovico)
8. Sincronizzazione
Frames Low Nibble (1 nibble = 4 bit)
Frames High Nibble
Seconds Low Nibble
Seconds High Nibble
Minutes Low Nibble
Minutes High Nibble
Hours Low Nibble
Hours High Nibble and SMPTE Type
Ordine di invio
al crescere del
tempo t
Struttura dei messaggi MTC
•
Problema: come rappresentare in un solo byte di dati anche il tipo
di time code?
•
Soluzione: il byte di dati con nnn = 111 (ossia l’high nibble per le
ore) viene re-interpretato nel seguente modo
I Byte di dati
02 nnn2 dddd2
Generico byte di dati per MTC:
0 nnn dddd
Byte di dati per l’high nibble delle ore: 0 111 dddd
Byte di dati reinterpretato:
0 111 0 yy d
ove solo d rappresenta parte del valore, mentre yy
vanno letti secondo la seguente tabella:
00  24 fps
01  25 fps
10  30 fps-DF
11  30 fps
Programmazione MIDI (Prof. Luca A. Ludovico)
8. Sincronizzazione
Esempi ed esercizi su MTC
•
Quanti frame SMPTE scorrono mentre viene inviata una
informazione temporale completa con MTC?
Due frame: si inviano 4 messaggi MTC nel tempo di 1 fotogramma,
e servono 8 messaggi MTC per completare l’informazione.
L’incremento di indirizzo avviene ogni 2 frame.
•
Qual è la frequenza media dei messaggi MTC se si adotta SMPTE con
30 fps?
–
«Media» perché MTC non è un messaggio della famiglia real-time
30 · 4 messaggi in 1 secondo, f = 120 messaggi/s
che corrisponde a 1 messaggio ogni 8.33 millisecondi circa
Programmazione MIDI (Prof. Luca A. Ludovico)
8. Sincronizzazione
Esempio su MTC
•
Si ricostruisca l’esatto indirizzo temporale in formato SMPTE
hh:mm:ss:ff e il tipo di codifica SMPTE partendo dalla seguente
sequenza di messaggi MTC
11110001
11110001
11110001
11110001
11110001
11110001
11110001
11110001
Ore:
Minuti:
Secondi:
Frame:
Fps:
0
0
0
0
0
0
0
0
000
001
010
011
100
101
110
111
1010
0001
0010
0000
0011
0010
0001
0 11 0
000012 = 110
001000112 = 3510
000000102 = 210
000110102 = 2610
112  30 fps
Programmazione MIDI (Prof. Luca A. Ludovico)
8. Sincronizzazione
Esercizio su MTC
•
Si ricostruisca l’esatto indirizzo temporale in formato SMPTE
hh:mm:ss:ff e il tipo di codifica SMPTE partendo dalla seguente
sequenza di messaggi MTC
11110001
11110001
11110001
11110001
11110001
11110001
11110001
11110001
Ore:
Minuti:
Secondi:
Frame:
Fps:
0
0
0
0
0
0
0
0
000
001
010
011
100
101
110
111
1011
0000
0011
0000
1000
0001
0111
0 01 0
001112 = 710
000110002 = 2410
000000112 = 310
000010112 = 1110
012  25 fps
Programmazione MIDI (Prof. Luca A. Ludovico)
8. Sincronizzazione
Sezione 8.2
MIDI TIMING CLOCK
Programmazione MIDI (Prof. Luca A. Ludovico)
8. Sincronizzazione
(MIDI) Timing Clock
• Segnale di sincronizzazione basato sul tempo
metronomico (BPM)
• Differenza dal Time Code (SMPTE): non si riferisce a un
indirizzo di tempo assoluto, cioè espresso in ore, minuti
ecc.
• La frequenza del MIDI clock può variare per seguire il
tempo della sorgente di tempo master
• Essendo basato sul BPM, dovrebbe essere riservato a
sincronizzare i soli dispositivi MIDI
Programmazione MIDI (Prof. Luca A. Ludovico)
8. Sincronizzazione
Come funziona il (MIDI) Timing Clock
• Invio di 24 colpi di clock, detti tick o impulsi, per
pulsazione (nota da un quarto), spaziati
uniformemente, indipendentemente dal tempo
metronomico del brano
• Esempi:
–
–
–
a 60 BPM, 1440 tick per minuto (uno ogni 41.67 ms)
a 100 BPM, 2400 tick per minuto (uno ogni 25 ms)
a 120 BPM, 2880 tick per minuto (uno ogni 20.83 ms)
Programmazione MIDI (Prof. Luca A. Ludovico)
8. Sincronizzazione
Struttura dei messaggi (MIDI) Timing Clock
• Famiglia: System Real Time (controllano in tempo reale
tutti i dispositivi del sistema, e sono indipendenti dal
canale)
• Sincronizzazione tramite il solo byte di stato
• Si comportano come impulsi
MIDI Out
o
MIDI Thru
Programmazione MIDI (Prof. Luca A. Ludovico)
8. Sincronizzazione
Byte di stato
Timing Clock
111110002
MIDI In
Esempio
Suddivisione
Pulsazione Pulsazione 1, tick 2: Song Select
Tick
PulsazionePulsazione 1, tick 13: Program Change
Tick
Pulsazione
Pulsazione 1, tick 24: Note On
Pulsazione
Pulsazione 2, tick 1: Note On
Pulsazione
Pulsazione 2, tick 3: Note On
Pulsazione
Pulsazione 2, tick 5: Note On
Pulsazione 2, tickPulsazione
18: Control Change (Sostenuto)
Programmazione MIDI (Prof. Luca A. Ludovico)
8. Sincronizzazione
Sezione 8.3
ALCUNI PROTOCOLLI DI SINCRONIZZAZIONE
Programmazione MIDI (Prof. Luca A. Ludovico)
8. Sincronizzazione
MIDI Machine Control (MMC)
• Sottoinsieme delle specifiche MIDI contenente comandi
specifici per controllare dispositivi di registrazione quali
registratori a cassette e registratori multitraccia a
nastro magnetico
• MMC serve a inviare messaggi di controllo MIDI a un
dispositivo, tramite comandi quali Play, Stop, Rewind,
ecc.
• Specifiche aggiunte al protocollo MIDI nel 1992, di rado
sfruttate pienamente
Programmazione MIDI (Prof. Luca A. Ludovico)
8. Sincronizzazione
Esempio di utilizzo di MMC
•
Esempio: collegamento tra un registratore a nastro multitraccia con
timecode SMPTE e un sequencer MIDI
•
Comunicazione tra dispositivi:
–
–
–
•
La pressione di Play sul sequencer invia anche il comando di Play al
registratore tramite messaggi MMC su cavo MIDI
Il registratore genera messaggi MTC con i quali controlla il tempo del
sequencer (sincronizzazione)
La pressione di Stop sul sequencer ferma anche il registratore
Messaggi MIDI: sono System Exclusive (vedi lezione 10)
Programmazione MIDI (Prof. Luca A. Ludovico)
8. Sincronizzazione
Tascam DA-78 HR digital 8-track recorder
Tascam DA-78 HR digital 8-track recorder
• built-in SMPTE synchronizer
• TimeCode in/out
• MIDI In/Out/Thru
• MMC
Programmazione MIDI (Prof. Luca A. Ludovico)
8. Sincronizzazione
MIDI Show Control (MSC)
•
Meccanismo per fornire controllo MIDI su luci, elevatori,
macchine per produrre fumo e altro equipaggiamento di
scena
•
Come per le esecuzioni MIDI, non viene trasferita la
performance multimediale ma informazioni per ricostruirla
opportunamente tramite i dispositivi compatibili MSC
•
Specifiche aggiunte al protocollo MIDI nel 1991
•
Messaggi MIDI: sono System Exclusive (vedi lezione 10)
Programmazione MIDI (Prof. Luca A. Ludovico)
8. Sincronizzazione
MIDI Show Control (MSC): esempi e limiti
•
Primo show con pieno uso delle specifiche MSC: Magic Kingdom
Parade presso il Walt Disney World's Magic Kingdom (settembre
1991).
•
Tra i software che supportano il protocollo: ambienti per il
trattamento in tempo reale di informazione audio quali PureData e
MAX/MSP e applicazioni specifiche per il teatro e il live
entertainment quali Qlab.
•
Raramente si sono interfacciati dispositivi MIDI con
equipaggiamento di scena.
Principale causa: l’inadeguatezza dei protocolli di sicurezza,
solitamente tralasciati nelle applicazioni musicali del MIDI.
Programmazione MIDI (Prof. Luca A. Ludovico)
8. Sincronizzazione
ETC Element Lighting Console
Porta MIDI
Programmazione MIDI (Prof. Luca A. Ludovico)
8. Sincronizzazione
Favorire la sincronizzazione
•
Connessioni fisiche, a seconda del tipo di sincronizzazione
–
–
MIDI Time Clock richiede connessione con cavi MIDI da MIDI Out del master (del
convertitore del segnale master) a MIDI In dello slave
VITC o LTC solitamente vanno convertiti in MIDI Time Clock affinché i sequencer
riconoscano l’informazione di sincronizzazione
•
Punto di ingresso: da quale porta si trasmettono e su quale porta
arrivano le informazioni di sincronizzazione?
•
Relazioni master/slave
–
•
Ad es. un sequencer può assumere ciascuno dei due ruoli
Formato di sincronizzazione: scelta di un timecode unico
Programmazione MIDI (Prof. Luca A. Ludovico)
8. Sincronizzazione
Scarica

Presentazione del corso