Network Musical Performance: RTP MIDI

Slides:



Advertisements
Presentazioni simili
Scenario di reti a larga banda Scenario di reti a larga banda MAN MAN LAN LAN LAN B-ISDN.
Advertisements

Il livello di trasporto
Lezione 18 MIDI e XML Programmazione MIDI (Prof. Luca A. Ludovico)
Esercitazione su SMF Lezione 14
Tecniche di compressione dei dati
RTP MIDI – parte 2 Lezione 16
Concetti fondamentali
Corso di laurea in INFORMATICA RETI di CALCOLATORI A.A. 2003/2004 Messaggi di errore e di controllo Alberto Polzonetti
La gestione dell'audio Creazione, acquisizione, formati di file a cura di Loris Tissìno (
Introduzione alle Reti di Prossima Generazione
I protocolli TCP/UDP prof.: Alfio Lombardo.
4-1 Il Livello di Rete Crediti Parte delle slide seguenti sono adattate dalla versione originale di J.F Kurose and K.W. Ross (© All Rights Reserved)
I modelli di riferimento OSI e TCP/IP
5-1 ATM Crediti Parte delle slide seguenti sono adattate dalla versione originale di J.F Kurose and K.W. Ross (© All Rights Reserved)
La rete in dettaglio: rete esterna (edge): applicazioni e host
3-1 User Datagram Protocol: UDP Crediti Parte delle slide seguenti sono adattate dalla versione originale di J.F Kurose and K.W. Ross (© All.
Moving Moving Young Young Turin Turin Hydrogen Hydrogen Olympic Olympic Safe RETE MANET informazioni in movimento.
Come programmare servizi di rete?
Luca Iannelli, Video on Demand tramite rete Approfondimento di Reti di calcolatori A.A. 2005/2006.
Anno Accademico Corso di Informatica Informatica per Scienze Biologiche e Biotecnologie Anno Accademico
Programmazione su Reti
Modello del sistema di posta Elettronica
Architettura del World Wide Web
I protocolli TCP/UDP prof.: Alfio Lombardo.
Internet Control Message Protocol rfc. Error Reporting Testing di affidabilità Controllo di congestione Notifica di route-change Misurazione di performance.
Corso di Informatica Corso di Laurea in Conservazione e Restauro dei Beni Culturali Gianluca Torta Dipartimento di Informatica Tel: Mail:
TCP Transmission Control Protocol. Programmazione II: Programmazione su Reti -- Prof. G. Persiano 2 TCP TCP fornisce un servizio di connessione –orientato.
Reti di Calcolatori IL LIVELLO RETE.
Concetti introduttivi
Reti di Calcolatori IL LIVELLO RETE.
Reti di Calcolatori IL LIVELLO TRASPORTO Protocolli TCP e UDP.
Componenti e tecnologie multimediali
I protocolli di trasporto per multimedia RTP e RTCP
4 Cosa è una rete? ã Punto di vista logico: sistema di dati ed utenti distribuito ã Punto di vista fisico: insieme di hardware, collegamenti, e protocolli.
ICMP - PING - TRACEROUTE
ADSL VOIP Voice Over IP.
Corso di Informatica per Giurisprudenza Lezione 7
ECDL Patente europea del computer
Modulo 2 – U.D. 1 – Lez. 2 Ernesto Damiani – Sistemi di elaborazione dell'informazione.
I protocolli TCP/UDP prof.: Alfio Lombardo.
Reti Insieme di computer e di altri dispositivi che comunicano tra loro per condividere i dati, le applicazioni e lhardware Modulo 1.
Introduzione al controllo derrore. Introduzione Quando dei dati vengono scambiati tra due host, può accadere che il segnale venga alterato. Il controllo.
Modulo 2 – U.D. 4 – Lez. 5 (parte I)
TCP/IP.
Laureando: Giuseppe BRUSCELLA
Corso di Laurea in Conservazione e Restauro dei Beni Culturali
Reti di Calcolatori ed Internet Fabio Massimo Zanzotto.
RETI DI CALCOLATORI Domande di riepilogo Prima Esercitazione.
Livello di trasporto Protocolli TCP e UDP.
MUSE Progetto di un servizio di audio streaming in reti wireless Progetto realizzato da: Leardini Francesco Mercati Alberto Morsiani Marco Bologna
1 Informatica Generale Alessandra Di Pierro Ricevimento: Giovedì ore presso Dipartimento di Informatica, Via Buonarroti,
Consuntivo corso Reti diCalcolatori Reti di Calcolatori (F1I063) Docente Luigi Vetrano Durata Ore di lezione56 di cui, ore di.
Sistemi di elaborazione dell’informazione Modulo 2 -Protocolli di rete TCP/IP Unità didattica 6 -User Datagram Protocol Ernesto Damiani Lezione 1 – UDP.
REAL TIME STREAMING PROTOCOL Seminario di Reti e Sistemi Distribuiti A.A A cura di Nicolucci Luca.
Servizi continui su rete IEEE – Music Everywhere Presentazione di Alberto Mercati Reti di Calcolatori LS.
Muse2: MUSic Everywhere with WI-FI Progetto realizzato da: Bambini Stefano Bergamini Andrea Pierangeli Diego Bologna C.d.L.S. Ingegneria Informatica.
Università degli Studi di Bologna Facoltà di Scienze Matematiche Fisiche e Naturali Corso di Laurea in Scienze dell’Informazione Università degli Studi.
Controllo di flusso TCP. Elementi base del flusso TCP (1) Comunicazione punto-punto Un mittente, un destinatario. Flusso di byte affidabile Flusso suddiviso.
1 “Trasporto traffico multimediale in Internet: il protocollo RTP” A cura di: Prof. Polidoro Maurizia Stefano Bistarelli Università degli Studi G. D’Annunzio.
Strato di accesso alla rete (network access layer); comprende le funzioni che nel modello OSI sono comprese negli strati fisico, di collegamento e parte.
ARCHITETTURA DI RETE Protocollo: insieme di regole che governano le comunicazioni tra i nodi di una rete. La condivisione di queste regole tra tutte gli.
Applicazione Presentazione Sessione Trasporto Rete Data link Fisico OSI Processo / Applicazione Trasporto Rete- Internet Interfaccia di.
INTERNET PROTOCOL SUITE FACOLTA’ DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria delle Telecomunicazioni Docente: Prof. Pasquale Daponte Tutor:
INTERNET E INTRANET Classe VA SIA. La Storia di INTERNET ’ – ARPANET 1969 – anno di nascita università Michigan - Wayne 1970 – – INTERNET.
1 Il livello transport. Concetti fondamentali - Canale logico e canale fisico 2 Quando un segnale deve essere trasmesso, viene inviato su un Canale, cioè.
Cenni di Crittografia Luigi Vetrano TechnoLabs S.p.A. L’Aquila, Aprile 2011.
INTERNET MAP SCENARIO Primi anni ’90: Rapida crescita della rete Internet. Nuove applicazioni multimediali. Esigenza di applicazioni security – sensitive.
RTP MIDI e Network Musical Performances
Transcript della presentazione:

Network Musical Performance: RTP MIDI Lezione 15 Network Musical Performance: RTP MIDI Programmazione MIDI (Prof. Luca A. Ludovico)

Network Musical Performance Obiettivo: permettere a musicisti geograficamente distribuiti di interagire e suonare assieme via rete Problema: latenze (o ritardi) Insite nella produzione fisica del suono (velocità di propagazione nell’aria v = 344 m/s) Introdotte dal sistema informatico, che si sovrappone a quelle di natura precedente Catena di acquisizione Propagazione dei pacchetti in rete Catena di riproduzione Programmazione MIDI (Prof. Luca A. Ludovico) 15. RTP MIDI (parte 1)

Esempi Programmazione MIDI (Prof. Luca A. Ludovico) 15. RTP MIDI (parte 1)

Esempi di latenza di rete Trasmissione di un pacchetto su rete dedicata Da Berkeley a Stanford Distanza: 40 miglia Latenza simmetrica: 2.1 ms Similitudine: musicisti a 0.72 m di distanza Da Berkeley a Caltech (California) Distanza: 375 miglia Latenza simmetrica: 14.2 ms Similitudine: musicisti a 4.88 m di distanza Programmazione MIDI (Prof. Luca A. Ludovico) 15. RTP MIDI (parte 1)

Cuffie e microfono minimizzano la propagazione del suono nell’aria Minimizzare i ritardi Cuffie e microfono minimizzano la propagazione del suono nell’aria Schede audio con Direct Memory Access minimizzano i ritardi di buffering interni alla macchina Non usare compressione minimizza il ritardo algoritmico Però… Programmazione MIDI (Prof. Luca A. Ludovico) 15. RTP MIDI (parte 1)

Minimizzare i ritardi: aspetti fondamentali Formato dell’informazione inviata Compresso o non compresso? Audio o performance? Caratteristiche fisiche della rete e suo utilizzo Rete dedicata e banda disponibile Distanze Numero di host e congestionamento Protocollo di trasporto su rete: affidabilità o velocità? Programmazione MIDI (Prof. Luca A. Ludovico) 15. RTP MIDI (parte 1)

Livello di trasporto: TCP vs UDP L'oggetto della comunicazione di TCP è il flusso di byte mentre quello di UDP è il singolo datagramma UDP non offre nessuna garanzia dell'arrivo dei datagrammi né sul loro ordine di arrivo (best effort) TCP garantisce la consegna ordinata dei dati, anche se al costo di un maggiore overhead meccanismi di acknowledgement e di ritrasmissione su timeout UDP invia solo i datagrammi richiesti dal livello applicativo TCP è un protocollo orientato alla connessione per stabilire, mantenere e chiudere una connessione è necessario inviare pacchetti di servizio i quali aumentano l'overhead di comunicazione. Programmazione MIDI (Prof. Luca A. Ludovico) 15. RTP MIDI (parte 1)

La sfida di una Network Musical Performance Contesto: reti su cui non sia praticabile lo streaming audio, a causa della limitazione della banda, del congestionamento e delle garanzie sulla qualità del servizio. In una rete di questo genere, smarrimento di pacchetti e ritardi nella consegna sono inevitabili. Obiettivo: ricreare performance geograficamente distribuite senza introdurre eccessivo ritardo (non tollerabile per un musicista) senza generare artefatti o smarrire eventi di fondamentale importanza nella performance Soluzione: utilizzare UDP per veicolare informazioni di performance (e non audio) in real time Programmazione MIDI (Prof. Luca A. Ludovico) 15. RTP MIDI (parte 1)

MIDI in tempo reale su rete Consentire performance live geograficamente distribuite con feedback per gli esecutori Far comunicare via rete (cablata o wireless) dispositivi per la produzione e la gestione del suono in formato MIDI Promuovere il MIDI a formato standard per la sonorizzazione su Internet in contesti caratterizzati da poca banda disponibile Aggiungere una sonorizzazione MIDI ad applicazioni multimediali quali web conference Programmazione MIDI (Prof. Luca A. Ludovico) 15. RTP MIDI (parte 1)

Sezione 15.1 RTP MIDI Programmazione MIDI (Prof. Luca A. Ludovico) 15. RTP MIDI (parte 1)

Il protocollo RTP (Real Time Protocol) Standard per trasportare stream multimediali su reti IP Adatto: per applicazioni interattive che richiedono bassa latenza per applicazioni di trasporto di contenuto L’informazione viene suddivisa in pacchetti Progettato per funzionare sia con UDP (interpretazione prevalente) sia con TCP E’ estensibile: è sufficiente definire un nuovo formato per il “payload” Programmazione MIDI (Prof. Luca A. Ludovico) 15. RTP MIDI (parte 1)

Formato del pacchetto RTP Programmazione MIDI (Prof. Luca A. Ludovico) 15. RTP MIDI (parte 1)

Numerazione dei pacchetti e timestamp in RTP I pacchetti sono numerati con un valore incrementale a 16 bit. Il destinatario può accorgersi dello smarrimento di un pacchetto quando rileva un gap nella sequenza dei numeri d’ordine. I pacchetti presentano un timestamp a 32 bit che rappresenta il primo istante di codifica del pacchetto. Il timestamp lavora in riferimento a una frequenza stabilita in fase di setup del protocollo. Esempio: fissata f = 44100 Hz, all’istante t = 2 s corrisponde timestamp = 88200 Esempio: fissata f = 1 Hz, all’istante t = 5 s corrisponde timpestamp = 5 Programmazione MIDI (Prof. Luca A. Ludovico) 15. RTP MIDI (parte 1)

Altri campi del pacchetto Altri campi riguardano la specifica RTP Ad esempio, il campo V (2 bit) serve a specificare la versione del protocollo in uso. Al momento, la versione più recente è la 2 (codifica 012) Documenti ufficiali: RFC 1889 (http://www.ietf.org/rfc/rfc1889.txt) RFC 3550 (http://www.ietf.org/rfc/rfc3550.txt) Programmazione MIDI (Prof. Luca A. Ludovico) 15. RTP MIDI (parte 1)

RTP MIDI Proposta di protocollo standard per la trasmissione di messaggi MIDI in pacchetti RTP su reti non affidabili Problemi dovuti a latenza o smarrimento di pacchetti: introduzione di artefatti Transienti (ad esempio, smarrimento di un NoteOn) Indefiniti (ad esempio, smarrimento di un NoteOff o di un MIDI Control Change per il controller 7 – Channel Volume) Obiettivo: minimizzare gli artefatti transienti ed eliminare quelli indefiniti, ma senza trasmissione di pacchetti di acknowledgment dal destinatario al mittente Programmazione MIDI (Prof. Luca A. Ludovico) 15. RTP MIDI (parte 1)

Formato del payload RTP MIDI Il payload è la parte estensibile di un pacchetto RTP. Ciò che caratterizza il protocollo RTP MIDI è il payload. Il formato del payload mappa uno stream di comandi MIDI su uno stream RTP 16 voice channels system commands In generale, il payload è strutturato nel seguente modo: header MIDI list, ossia coppie (Delta Time, comando), eventualmente con codifica Running status Recovery Journal (opzionale) Programmazione MIDI (Prof. Luca A. Ludovico) 15. RTP MIDI (parte 1)

Formato del payload RTP MIDI: campo LEN Il campo LEN ha lunghezza variabile e specifica la lunghezza della MIDI list. La sua lunghezza dipende dal flag B (vedi slide successiva) Se ha un valore non nullo, questo è il numero di ottetti (ossia di gruppi di 8 bit = 1 byte) che compongono la MIDI list. Può essere nullo, in tal caso la MIDI list è vuota. Programmazione MIDI (Prof. Luca A. Ludovico) 15. RTP MIDI (parte 1)

Formato del payload RTP MIDI: flag B se B = 0, allora LEN ha dimensione 4 bit e la MIDI list è fatta di massimo 15 ottetti Modalità pensata per applicazioni interattive: un comando MIDI per pacchetto minimizza la latenza di codifica se B = 1, allora LEN ha dimensione 12 bit e la MIDI list è fatta di massimo 4095 ottetti Modalità pensata per applicazioni di streaming, con molti comandi MIDI per pacchetto in modo da minimizzare gli overhead dell’header e del journal (vedi più avanti) Programmazione MIDI (Prof. Luca A. Ludovico) 15. RTP MIDI (parte 1)

Formato del payload RTP MIDI: MIDI list Strutturazione della MIDI list Programmazione MIDI (Prof. Luca A. Ludovico) 15. RTP MIDI (parte 1)

Codifica dei tempi delta tra comandi MIDI Il tempo delta fa riferimento al timestamp base del pacchetto RTP La codifica dei tempi delta tra comandi in un singolo pacchetto è una versione modificata della specifica SMF, usando da 1 a 4 ottetti per codificare valori su 32 bit. Un esempio di codifica e decodifica è mostrato alla slide successiva. Tutti gli istanti iniziali dei comandi nel pacchetto n devono precedere il timestamp del pacchetto n+1. Codifica comoda per trascrivere da SMF, meno per convertire da temporizzazione implicita (ad es. i comandi che passano su cavo DIN) Programmazione MIDI (Prof. Luca A. Ludovico) 15. RTP MIDI (parte 1)

Codifica dei tempi delta tra comandi MIDI Programmazione MIDI (Prof. Luca A. Ludovico) 15. RTP MIDI (parte 1)

Formato del payload RTP MIDI: flag Z Se Z = 1, la MIDI list è strutturata come una sequenza di coppie ordinate (Delta Time, Comando) se Z = 0, allora il primo campo Delta Time è assente dalla MIDI list e il primo comando viene eseguito al tempo del timestamp RTP Il caso Z = 0 è tipico quando si codifica un singolo comando MIDI per pacchetto. In tal caso è sufficiente il timestamp. Programmazione MIDI (Prof. Luca A. Ludovico) 15. RTP MIDI (parte 1)