streaming audio real-time per applicazioni musicali sulla
Transcript
streaming audio real-time per applicazioni musicali sulla
Streaming audio real-time per applicazioni musicali sulla piattaforma Beagleboard Leonardo Gabrielli, Università Politecnica delle Marche, via brecce bianche, 60131, Ancona, IT, [email protected] Stefano Squartini, Università Politecnica delle Marche, via brecce bianche, 60131, Ancona, IT, [email protected] Emanuele Principi, Università Politecnica delle Marche, via brecce bianche, 60131, Ancona, IT, [email protected] Francesco Piazza, Università Politecnica delle Marche, via brecce bianche, 60131, Ancona, IT, [email protected] Abstract Negli ultimi anni le tecnologie multimediali in campo domotico hanno raggiunto buoni livelli di standardizzazione e automatizzazione grazie alla redazione di protocolli ad hoc da parte di consorzi, come l'UPnP Forum e DLNA (Digital Living Network Alliance), implementati e supportati anche dalla comunità open source per numerose piattaforme HW/SW. Da questo ecosistema si può trarre spunto per la creazione di nuovi scenari applicativi legati alla creazione di contenuti multimediali, in particolar modo alla performance e produzione musicale. Questi potranno appoggiarsi al set di protocolli UPnP AV garantendo la compatibilità con molti dispositivi già esistenti, oppure potranno essere sviluppati nuovi protocolli che permettano una gestione dello streaming e di altri dati di controllo maggiormente mirata all'ambito musicale. L'estensione delle tecnologie UPnP/DLNA allo streaming di flussi multimediali catturati in real-time può invece rendere possibili nuovi scenari applicativi, non necessariamente in ambito di fruizione di contenuti, come un piccolo studio di registrazione o performance con strumenti musicali collegati via wireless come chitarra, amplificatore e mixer DLNA-enabled, etc. Con l'aggiunta di segnali di controllo si renderebbe possibile anche l'evoluzione dei sistemi di produzione musicale, fermi ormai da tempo sul protocollo MIDI (Musical Instrument Digital Interface) che risale al 1982. In questo lavoro si confrontano per la prima volta le possibilità tecniche del sistema UPnP/DLNA e di un sistema customizzato basato sulla piattaforma di programmazione per computer music Pure Data. In entrambi casi la piattaforma implementativa è una board open hardware nota come BeagleBoard su cui gira un sistema operativo GNU/Linux. Il focus del lavoro non è tanto sugli aspetti tecnici di comunicazione (che in entrambi i casi richiederanno molto lavoro per ottimizzare le latenze e la banda) quanto sugli aspetti di utilizzabilità. La piattaforma hardware di riferimento è la beagle board (www.beagleboard.org), una piattaforma di sviluppo basata su SoC Texas Instruments DM3730. Quest'ultimo include un ARM Cortex-A8 sul quale è possibile compilare un comune kernel Linux. In maggior dettaglio nel presente lavoro sono state utilizzate due beagle board entrambe con sistema operativo Ubuntu e tutta la suite di pacchetti necessaria ad effettuare lo streaming tra i due dispositivi. Lo scenario d'uso prevede la connessione delle due unità tramite rete wireless o cablata. Uno dei due dispositivi agisce da producer, acquisendo il segnale audio da una sorgente sonora come uno strumento musicale od un microfono, l'altro agisce da consumer, ricevendo lo streaming audio per riproduzione tramite impianto acustico o registrazione su supporto appropriato. Il dispositivo producer è dotato delle funzionalità che in un comune sistema DLNA sono proprie del server, con la differenza che non ha necessità di storage in quanto i contenuti multimediali sono generati in tempo reale e catturati dalle sue interfacce di acquisizione. Il dispositivo consumer deve essere capace di decodificare lo streaming multimediale ed eventualmente, se previsto dall'applicazione, memorizzare i dati su supporto adeguato. L'estensione della suite di protocolli DLNA è in questo lavoro esplorativo effettuata tramite l'utilizzo congiunto del server DLNA Rygel e il server audio pulseaudio. Configurandoli in maniera appropriata è possibile acquisire audio dagli ingressi della board, incanalarli attraverso una pipeline Gstreamer e inviarli attraverso Rygel come flusso audio in wireless. Questo semplice sistema permette una facile connessione tra i dispositivi grazie ai sistemi di device discovery del DLNA ma non fornisce una risposta adeguata per applicazioni musicali: manca il supporto per segnali di controllo, la latenza non è controllabile, manca un sistema di trattamento del segnale. Per ovviare a ciò, un sistema complementare è stato preparato in cui si utilizza il server audio Jack per garantire una minore latenza e l'ambiente di prototipazione grafico Pure Data di Miller Puckette viene utilizzato per inviare segnali di controllo, aggiungere effetti o processare il segnale. La trasmissione si appoggia esclusivamente su UDP, tramite delle "external" (plugin in C/C++ per Pure Data) già presenti nella codebase di Pure Data sotto licenza GPL garantendo una minore latenza e minore overhead. Questo sistema non ha alcun meccanismo di device discovery ma si dimostra più efficace per gli scopi prefissati garantendo basse latenze e l'invio di segnali non multimediali. In conclusione, per realizzare un ecosistema di dispositivi per applicazioni musicali (registrazione, mastering, performance e apprendimento) sarà necessaria l'integrazione di protocolli che facilitino la connessione tra i dispositivi da un lato, ma che garantiscano stretti vincoli temporali necessari per l'utilizzo in ambito audio. Parole Chiave: DLNA, streaming multimediale, real-time, beagle board, Pure Data