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