sincronizzazione lezione 8 programmazione midi (prof. luca a. ludovico)

29
Sincronizzazione Lezione 8 Programmazione MIDI (Prof. Luca A. Ludovico)

Upload: anunciata-casadei

Post on 01-May-2015

221 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Sincronizzazione Lezione 8 Programmazione MIDI (Prof. Luca A. Ludovico)

Sincronizzazione

Lezione 8

Programmazione MIDI (Prof. Luca A. Ludovico)

Page 2: Sincronizzazione Lezione 8 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 MIDI1. Time Code (o timecode SMPTE)2. (MIDI) Timing Clock

Programmazione MIDI (Prof. Luca A. Ludovico)8. Sincronizzazione

Page 3: Sincronizzazione Lezione 8 Programmazione MIDI (Prof. Luca A. Ludovico)

MIDI TIME CODE (MTC)Sezione 8.2

Programmazione MIDI (Prof. Luca A. Ludovico)8. Sincronizzazione

Page 4: Sincronizzazione Lezione 8 Programmazione MIDI (Prof. Luca A. Ludovico)

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

Page 5: Sincronizzazione Lezione 8 Programmazione MIDI (Prof. Luca A. Ludovico)

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

Page 6: Sincronizzazione Lezione 8 Programmazione MIDI (Prof. Luca A. Ludovico)

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

Page 7: Sincronizzazione Lezione 8 Programmazione MIDI (Prof. Luca A. Ludovico)

Esempio

Programmazione MIDI (Prof. Luca A. Ludovico)8. Sincronizzazione

00:00:02:22 00:00:02:23 00:00:03:00

Page 8: Sincronizzazione Lezione 8 Programmazione MIDI (Prof. Luca A. Ludovico)

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

Page 9: Sincronizzazione Lezione 8 Programmazione MIDI (Prof. Luca A. Ludovico)

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

Page 10: Sincronizzazione Lezione 8 Programmazione MIDI (Prof. Luca A. Ludovico)

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

Page 11: Sincronizzazione Lezione 8 Programmazione MIDI (Prof. Luca A. Ludovico)

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

Programmazione MIDI (Prof. Luca A. Ludovico)8. Sincronizzazione

MIDI Out o

MIDI Thru

MIDI InI Byte di datiValore

[0..127]10

Byte di stato

MTC Quarter Frame111100012

Page 12: Sincronizzazione Lezione 8 Programmazione MIDI (Prof. Luca A. Ludovico)

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: 000 = Current Frames Low Nibble (1 nibble = 4 bit) 001 = Current Frames High Nibble 010 = Current Seconds Low Nibble 011 = Current Seconds High Nibble 100 = Current Minutes Low Nibble 101 = Current Minutes High Nibble 110 = Current Hours Low Nibble 111 = Current Hours High Nibble and SMPTE Type

Programmazione MIDI (Prof. Luca A. Ludovico)8. Sincronizzazione

Byte di dati02 nnn2 dddd2

Ordine di invio al crescere del tempo t

Page 13: Sincronizzazione Lezione 8 Programmazione MIDI (Prof. Luca A. Ludovico)

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

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

I Byte di dati02 nnn2 dddd2

Page 14: Sincronizzazione Lezione 8 Programmazione MIDI (Prof. Luca A. Ludovico)

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/sche corrisponde a 1 messaggio ogni 8.33 millisecondi circa

Programmazione MIDI (Prof. Luca A. Ludovico)8. Sincronizzazione

Page 15: Sincronizzazione Lezione 8 Programmazione MIDI (Prof. Luca A. Ludovico)

Esempio su MTC

Programmazione MIDI (Prof. Luca A. Ludovico)8. Sincronizzazione

• 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 MTC11110001 0 000 101011110001 0 001 000111110001 0 010 001011110001 0 011 000011110001 0 100 001111110001 0 101 001011110001 0 110 000111110001 0 111 0 11 0

Ore: 000012 = 110

Minuti: 001000112 = 3510

Secondi: 000000102 = 210

Frame: 000110102 = 2610

Fps: 112 30 fps

Page 16: Sincronizzazione Lezione 8 Programmazione MIDI (Prof. Luca A. Ludovico)

Esercizio su MTC

Programmazione MIDI (Prof. Luca A. Ludovico)8. Sincronizzazione

• 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 MTC11110001 0 000 101111110001 0 001 000011110001 0 010 001111110001 0 011 000011110001 0 100 100011110001 0 101 000111110001 0 110 011111110001 0 111 0 01 0

Ore: 001112 = 710

Minuti: 000110002 = 2410

Secondi: 000000112 = 310

Frame: 000010112 = 1110

Fps: 012 25 fps

Page 17: Sincronizzazione Lezione 8 Programmazione MIDI (Prof. Luca A. Ludovico)

MIDI TIMING CLOCKSezione 8.2

Programmazione MIDI (Prof. Luca A. Ludovico)8. Sincronizzazione

Page 18: Sincronizzazione Lezione 8 Programmazione MIDI (Prof. Luca A. Ludovico)

(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

Page 19: Sincronizzazione Lezione 8 Programmazione MIDI (Prof. Luca A. Ludovico)

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

Page 20: Sincronizzazione Lezione 8 Programmazione MIDI (Prof. Luca A. Ludovico)

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

Programmazione MIDI (Prof. Luca A. Ludovico)8. Sincronizzazione

Byte di stato

Timing Clock111110002

MIDI Out o

MIDI Thru

MIDI In

Page 21: Sincronizzazione Lezione 8 Programmazione MIDI (Prof. Luca A. Ludovico)

Esempio

Programmazione MIDI (Prof. Luca A. Ludovico)8. Sincronizzazione

Pulsazione

Pulsazione

Pulsazione

Pulsazione

Pulsazione

Pulsazione

Pulsazione

Suddivisione

Tick

Tick

Pulsazione 1, tick 2: Song Select

Pulsazione 1, tick 13: Program Change

Pulsazione 1, tick 24: Note On

Pulsazione 2, tick 1: Note On

Pulsazione 2, tick 3: Note On

Pulsazione 2, tick 5: Note On

Pulsazione 2, tick 18: Control Change (Sostenuto)

Page 22: Sincronizzazione Lezione 8 Programmazione MIDI (Prof. Luca A. Ludovico)

ALCUNI PROTOCOLLI DI SINCRONIZZAZIONE

Sezione 8.3

Programmazione MIDI (Prof. Luca A. Ludovico)8. Sincronizzazione

Page 23: Sincronizzazione Lezione 8 Programmazione MIDI (Prof. Luca A. Ludovico)

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

Page 24: Sincronizzazione Lezione 8 Programmazione MIDI (Prof. Luca A. Ludovico)

Esempio di utilizzo di MMC

Programmazione MIDI (Prof. Luca A. Ludovico)8. Sincronizzazione

• 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)

Page 25: Sincronizzazione Lezione 8 Programmazione MIDI (Prof. Luca A. Ludovico)

Tascam DA-78 HR digital 8-track recorder

Programmazione MIDI (Prof. Luca A. Ludovico)8. Sincronizzazione

Tascam DA-78 HR digital 8-track recorder•built-in SMPTE synchronizer•TimeCode in/out•MIDI In/Out/Thru•MMC

Page 26: Sincronizzazione Lezione 8 Programmazione MIDI (Prof. Luca A. Ludovico)

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

Page 27: Sincronizzazione Lezione 8 Programmazione MIDI (Prof. Luca A. Ludovico)

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

Page 28: Sincronizzazione Lezione 8 Programmazione MIDI (Prof. Luca A. Ludovico)

ETC Element Lighting Console

Programmazione MIDI (Prof. Luca A. Ludovico)8. Sincronizzazione

Porta MIDI

Page 29: Sincronizzazione Lezione 8 Programmazione MIDI (Prof. Luca A. Ludovico)

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