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.