Sincronizzazione Lezione 8

Slides:



Advertisements
Presentazioni simili
Dall’informazione al linguaggio macchina
Advertisements

Rappresentazioni numeriche
Informatica Generale Susanna Pelagatti
Informatica Generale Marzia Buscemi IMT Lucca
Rappresentazioni numeriche
Lezione 18 MIDI e XML Programmazione MIDI (Prof. Luca A. Ludovico)
Esercitazione su SMF Lezione 14
Messaggi System Common e System Real Time
MIDI e computer Lezione 17
Messaggi System Exclusive
Network Musical Performance: RTP MIDI
Concetti fondamentali
Messaggi Control Change
Programmazione MIDI Presentazione del corso
Messaggi Channel Voice
Trasmissione delle informazioni
La gestione dell'audio Creazione, acquisizione, formati di file a cura di Loris Tissìno (
TESI DI LAUREA Ingegneria Elettronica Applicata
Digital Data Acquisition
MUSICA E INTERNET LEONARDO BOF RICCARDO FERRETTI
Circuiti di memorizzazione elementari: i Flip Flop
INTRODUZIONE AI CONVERTITORI ANALOGICO-DIGITALI (ADC)
ANALOGICO-DIGITALI (ADC) DIGITALE-ANALOGICI (DAC)
Università degli Studi di Bergamo Facoltà di Lingue e Letterature Straniere Facoltà di Lettere e Filosofia A.A Informatica generale 1 Appunti.
Informatica 3 Codifica binaria.
A.S.E.13.1 ARCHITETTURA DEI SISTEMI ELETTRONICI LEZIONE N° 13 Somma e differenza di due numeri in C2Somma e differenza di due numeri in C2 Half AdderHalf.
A.S.E.6.1 ARCHITETTURA DEI SISTEMI ELETTRONICI LEZIONE N° 6 Complemento a MComplemento a M Rappresentazione di numeri con segnoRappresentazione di numeri.
A.S.E.5.1 ARCHITETTURA DEI SISTEMI ELETTRONICI LEZIONE N° 5 Rappresentazione di numeri con segnoRappresentazione di numeri con segno –Modulo e segno (MS)
1 Corso di Informatica (Programmazione) Lezione 4 (24 ottobre 2008) Architettura del calcolatore: la macchina di Von Neumann.
Corso di Informatica (Programmazione)
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Rappresentazione dellinformazione su calcolatore Anno Accademico 2009/2010.
Corso di Informatica (Programmazione)
I CODICI.
Flip-flop e Registri.
Codici binari decimali
Struttura dei sistemi operativi (panoramica)
Convertitore A/D e circuito S/H
La conversione analogico-digitale, campionamento e quantizzazione
3. Architettura Vengono descritte le principali componenti hardware di un calcolatore.
2) Trattamento dell'informazione. Lab.Calc. I AA 2002/03 - cap.22 Esempio Supponiamo di volere calcolare X, per uno o più possibili valori di Y, in base.
Cos’è un problema?.
Lezione 6 Encoder ottici
Limiti al trasferimento di informazione u Il tempo necessario per trasmettere dellinformazione dipende da: –la velocita di segnalazione (cioe quanto velocemente.
Corso di Laurea in Biotecnologie corso di Informatica Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
Diagramma degli stati che descrive il comportamento della rete.
Cassaforte Asincrona di Mealy
1 Esercizio 1 Un router riceve da un collegamento A lungo 10 km a 100 Mb/s e instrada i pacchetti ricevuti, lunghi 1000 bit verso una linea duscita B a.
microcontrollori PIC by prof. Romei Michele
Internet L’essenziale.
2. Hardware Componenti di base di un computer
Codici QR Presentazione 1.6
Il Calcolatore Elettronico
L' ARCHITETTURA DI VON NEUMANN
Dispositivi MIDI in Java
Progetto MIUR 5% Salvaguardia delluomo… – 2 o Convegno Nazionale, Firenze, 2003 Procedure standardizzate per la raccolta dei dati nelle stazioni di misura.
1 Ripassino Reti di Computer Carasco 19/02/ Che cosa è una rete informatica? Una rete informatica è un insieme di computer connessi tra di loro.
Elaborato di Laurea di Alessandro LAZZARINI BARNABEI
BUS DI CPU M. Mezzalama - M. Rebaudengo - M. Sonza Reorda
TCP/IP.
Unità centrale di processo
Codifica dell’informazione
Linguaggi e Programmazione per l’Informatica Musicale
I computer vengono utilizzati per automatizzare la soluzione di problemi di varia natura trattando le informazioni in entrata (DATI) eseguendo gli opportuni.
Rappresentazione delle durate Lezione 7 Programmazione per la Musica | Prof. Luca A. Ludovico.
X-48: REGISTRATORE / EDITOR / MIXER 48 TRACCE, 48 CANALI, 24/96 The TASCAM Way to High Definition Audio.
STRUTTURA DELL’ELABORATORE
Applicazione Presentazione Sessione Trasporto Rete Data link Fisico OSI Processo / Applicazione Trasporto Rete- Internet Interfaccia di.
Sincronizzazione Lezione 6
Transcript della presentazione:

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 MIDI Time Code (o timecode SMPTE) (MIDI) Timing Clock Programmazione MIDI (Prof. Luca A. Ludovico) 8. Sincronizzazione

MIDI TIME CODE (MTC) Sezione 8.2 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 00:00:02:23 00:00:03:00 Programmazione MIDI (Prof. Luca A. Ludovico) 8. Sincronizzazione

Le tipologie di timecode SMPTE MIDI Time Code (MTC): versione MIDI di SMPTE. Usato per sincronizzare dispositivi MIDI compatibili con dispositivi audio/video. 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. 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 I Byte di dati Valore [0..127]10 Byte di stato MTC Quarter Frame 111100012 MIDI In Programmazione MIDI (Prof. Luca A. Ludovico) 8. Sincronizzazione

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 Ordine di invio al crescere del tempo t Byte di dati 02 nnn2 dddd2 Programmazione MIDI (Prof. Luca A. Ludovico) 8. Sincronizzazione

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 I Byte di dati 02 nnn2 dddd2 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 0 000 1010 11110001 0 001 0001 11110001 0 010 0010 11110001 0 011 0000 11110001 0 100 0011 11110001 0 101 0010 11110001 0 110 0001 11110001 0 111 0 11 0 Ore: 000012 = 110 Minuti: 001000112 = 3510 Secondi: 000000102 = 210 Frame: 000110102 = 2610 Fps: 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 0 000 1011 11110001 0 001 0000 11110001 0 010 0011 11110001 0 011 0000 11110001 0 100 1000 11110001 0 101 0001 11110001 0 110 0111 11110001 0 111 0 01 0 Ore: 001112 = 710 Minuti: 000110002 = 2410 Secondi: 000000112 = 310 Frame: 000010112 = 1110 Fps: 012  25 fps Programmazione MIDI (Prof. Luca A. Ludovico) 8. Sincronizzazione

MIDI TIMING CLOCK Sezione 8.2 Programmazione MIDI (Prof. Luca A. Ludovico) 8. Sincronizzazione

Segnale di sincronizzazione basato sul tempo metronomico (BPM) (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 Byte di stato Timing Clock 111110002 MIDI In Programmazione MIDI (Prof. Luca A. Ludovico) 8. Sincronizzazione

Esempio Pulsazione 1, tick 2: Song Select Suddivisione Pulsazione Pulsazione 1, tick 2: Song Select Tick Pulsazione Pulsazione 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, tick 18: Control Change (Sostenuto) Pulsazione Programmazione MIDI (Prof. Luca A. Ludovico) 8. Sincronizzazione

Alcuni protocolli di 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 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