UN SISTEMA PER LA PERFORMANCE MULTIMEDIALE BASATO SU PROTOCOLLO M.I.D.I.

Luciano Conca

 

 

 

Obbiettivo di questa tesi è stata la progettazione e la realizzazione prototipale di un sistema per la performance multimediale in tempo reale.
Tale sistema consente il trattamento di dati di vario tipo, quali segnali audio e video in forma numerica, immagini digitalizzate, dati M.I.D.I., testi, mediante l'invio di comandi basati sull'estensione M.I.D.I. Show Control (M.S.C.) del protocollo M.I.D.I., nata per consentire il controllo remoto di apparecchiature dedicate nelle performance teatrali, negli spettacoli dal vivo e in altri simili ambienti.
I comandi M.S.C. vengono inviati dal prototipo oggetto di questa tesi, ad altri computer connessi in rete locale, dove la presenza di appositi driver, sviluppati parallelamente, ne permette l'interpretazione e l'esecuzione.
Il documento che descrive le motivazioni e la filosofia generale seguita durante lo sviluppo del progetto è stato redatto in maniera tale da permettere al lettore la visione del sistema da vari livelli di astrazione.
Innanzi tutto viene presentata, nell'introduzione, una panoramica sul protocollo M.S.C. mettendone in risalto sia la notevole potenzialità di utilizzo sia la relativa facilità di implementazione, in riferimento soprattutto alla possibilità di creare e gestire real time una performance multimediale. In questa parte sono anche descritti i comandi necessari alla fase preliminare di connessione della rete che sono stati appositamente creati in quanto nel protocollo M.S.C. non ne è stato fatto esplicito riferimento.
Il capitolo seguente traccia quella che è stata l'evoluzione dei sistemi per la performance in tempo reale prodotti al L.I.M. (Laboratorio di Informatica Musicale) sede di sviluppo anche di questo progetto. Successivamente vengono descritte le caratteristiche generali dell'applicazione, denominata MultiMedia Performer, nonchè le principali direttive di funzionamento, precedute da una breve premessa sull'ambiente di sviluppo del sistema.
La scelta di fornire all'utente un mezzo sicuro e di facile uso, senza la necessità di essere a conoscenza della sintassi di comandi o di protocolli, si esplicita nell'interfaccia grafica pensata e realizzata come una sorta di partitura multimediale, che si rifà in un certo senso a quella musicale. Essa risulta costituita da un certo numero di tracce, nelle quali è possibile l'inserimento di istanze di comandi sotto forma di veri e propri oggetti multimediali dalle dimensioni dipendenti dal tipo di rappresentazione usata nel contesto della performance, dalla scala temporale corrente, oltre naturalmente dal tempo di esecuzione dei file associati a tali oggetti, file residenti sulle unità collegate.
Nella parte centrale del capitolo viene fatto anche un riferimento all'ambiente Macintosh, all'interno del quale l'applicazione è stata creata e del quale ha cercato di seguire quella che è la filosofia comunicativa della macchina: lo schema comunicativo oggetto-azione che si esplicita prima nella selezione di oggetti, nel nostro caso multimediali, sui cui, solo in seguito, effettuare manipolazioni.
Nel passo successivo si scende ancor più in dettaglio nella descrizione dell'applicazione mostrando all'utente, anche con il supporto di figure, i vari menù che consentono di rendere operative le opzioni relative alla fase di editing, a quella di esecuzione o di salvataggio della performance, oltre alle varie operazioni di manipolazione sugli oggetti effettuate con il solo apporto del mouse, quali allungamenti o traslazioni degli stessi.
Tale descrizione segue per maggior coerenza un ordine che rispecchia la sequenza cronologica delle operazioni che l'utente deve effettuare, facendo riferimento ogni volta ai comandi M.S.C. implementati. Sempre qui viene ribadito il concetto di performance real time, che si concretizza nella possibilità di una integrazione della fase di editing con di quella di performing.
In questo capitolo è data anche una descrizione formale dell'automa a stati finiti su cui il sistema è stato modellato raggiungendo così il più elevato livello di astrazione.
Una volta data al lettore una visione completa delle funzionalità e dell'uso dell'applicazione è possibile scendere un pò più in dettaglio affrontando argomenti prettamente informatici con riferimenti precisi a strutture dati utilizzate e a parti fondamentali del codice. Questo è quanto viene descritto nei due capitoli seguenti, tra loro strettamente collegati. Le decisioni di allocare blocchi di memoria direttamente dallo heap, curandone anche la gestione, e di strutturare il codice con un ciclo principale per la gestione degli eventi di sistema od esterni, sono state certamente condizionate da quella che è la configurazione della macchina sulla quale il progetto è stato sviluppato.
La descrizione delle principali routine del codice viene suddivisa in quattro parti. Nella prima vengono affrontati i problemi sorti per la creazione di un vero e proprio protocollo di connessione della rete, tenendo presenti anche eventuali problemi di perdita di messaggi. Nella seconda parte avviene l'analisi delle principali procedure per l'editing, in cui viene posto l'accento sul fatto che queste potranno eventualmente essere richiamate anche durante la fase di esecuzione della performance. E' stato quindi necessario affrontare e risolvere il problema di pericolose condivisioni di strutture dati da parte di routine di editing e routine di performing che avrebbero potuto portare ad inconsistenze.
Nella terza parte viene descritta la temporizzazione dei processi che consentono l'invio di comandi ai device con particolare riferimento alle procedure chiamate via interrupt.
Infine nell'ultima parte vengono chiarite le soluzioni adottate per il salvataggio di una performance costruita sulla partitura multimediale, con la creazione di un particolare formato di file adatto a tale scopo.
Allo scopo di venire in aiuto all'utente che, come si intuisce, potrebbe essere quasi più vicino al mondo dello spettacolo che non a quello dell'informatica, si pensato di dedicare un capitolo ad un esempio di sessione di lavoro, descrivendo in maniera chiara tutte le operazioni necessarie al corretto funzionamento del sistema, affrontando anche gli eventuali errori in cui l'utente stesso potrebbe incorrere.
Il documento si conclude con una breve trattazione sulla possibilità di una estensione dell'applicazione al controllo di altri device dedicati come del resto prevede il protocollo M.S.C.. Inoltre viene sottolineato il fatto che in futuro potrebbero essere veri e propri dispositivi fisici e non calcolatori ad essere pilotati dal MultiMedia Performer, sempre che il M.S.C. venga su di essi implementato. Il lavoro sperimentale e di simulazione svolto in questa tesi potrebbe allora essere stato d'aiuto a tale scopo.