UN SISTEMA PER LA INTERPRETAZIONE DI PARTITURE MULTIMEDIALI BASATO SU PROTOCOLLO MIDI
Giovanni Casati
Obbiettivo della tesi è la progettazione e la realizzazione
prototipale in ambiente Macintosh di un sistema che consenta
l'interpretazione e l'esecuzione in tempo reale di partiture multimediali,
costituite cioè da elementi di natura non esclusivamente
musicale ma anche testuale visuale e sonora in senso lato, provenienti
da un performer sviluppato parallelamente.
Si è trattato, in pratica, di sviluppare uno strumento
che, attraverso un trattamento trasparente e coerente dei dati
relativi ai media considerati, fungesse da esecutore materiale
dei comandi generati dal performer che dal canto suo rappresenta
una sorta di tastiera multimediale.
In fase di ideazione del progetto è risultato conveniente,
piuttosto che organizzare tutto in un'unica applicazione, realizzare
per ogni ambito un driver dedicato; ciò ha consentito,
da un lato, di ridurre considerevolmente i tempi di risposta dei
singoli driver ai comandi ricevuti fornendo all'utente, dall'altro,
la possibilità di conciliare al meglio l'utilizzo delle
risorse HW a disposizione con le proprie esigenze espressive;
una soluzione distribuita offre infatti la facoltà di
utilizzare, in ogni singola sessione di lavoro, solo alcuni dei
driver a disposizione o eventualmente più istanze di qualcuno
di questi e contemporaneamente di dedicare ad ognuno di essi un
singolo computer o, viceversa, impiegare una macchina per più
applicazioni.
Sono stati quindi sviluppati, in corrispondenza dei media considerati,
i seguenti programmi:
MID (MIdi Driver) per il trattamento dei file di comandi MIDI.
MOD (MOvie Driver) per il trattamento del video digitale;
PID (PIcture Driver) per il trattamento delle immagini digitali;
TED (TExt Driver) per il trattamento dei testi ;
DAD (Digital Audio Driver) per il trattamento del suono digitale;
Il sistema complessivo (performer + driver) risulta così
costituito da una rete di processi connessi a stella in cui il
nodo centrale è rappresentato dal performer e all'interno
del quale i collegamenti fisici sono realizzati mediante interfaccia
e cavi MIDI mentre la comunicazione si sviluppa attraverso lo
scambio di messaggi definiti sulla base del protocollo MSC.
Il MSC è un'estensione della specifica MIDI definita con
l'intento di consentire il controllo remoto dei più disparati
dispositivi utilizzati nell'ambito teatrale, audiovisuale e multimediale:
dalle semplici console di luci ai più sofisticati generatori
di fumogeni o fuochi d'artificio.
Configurazione del sistema
Prima di procedere alla composizione della partitura è
necessario sviluppare una fase di inizializzazione del sistema
in cui ai driver vengono richieste, da parte del performer, alcune
informazioni a lui utili per l'organizzazione della performance;
completato questo protocollo di acknowledgement l'utente ha, attraverso
l'interfaccia del performer, la completa visione del sistema e
degli oggetti che può utilizzare nel corso della performance.
Successivamente, per permettere la effettiva esecuzione della
partitura i 5 driver devono essere in grado di implementare, sui
file a loro disposizione le operazioni specificate dai comandi
MSC ricevuti riguardanti in pratica:
caricamento del file;
riproduzione del file dall'inizio o da un qualsiasi punto intermedio;
interruzione istantanea della riproduzione;
variazione della velocità di riproduzione di un file anche
durante l'esecuzione dello stesso.
A questo scopo tutti i driver presentano una struttura comune
utile ad implementare, nel contesto della classica impostazione
event_driven delle applicazioni Macintosh, un sistema di esecuzione
real time di comandi inviati da un processo esterno; il ciclo
principale del programma si occupa, pertanto, di istanziare le
procedure necessarie ad assolvere le richieste giunte dal performer
mentre ad una procedura attivata a livello di interrupt dall'arrivo
stesso dei comandi spetta il compito di effettuarne l'analisi
sintattica.
Variano naturalmente da driver a driver le strutture dati, i manager,
e gli algoritmi utilizzati per sviluppare le funzioni appena viste.
E' importante rilevare, a questo riguardo, che sia MOD che PID
si affidano per il trattamento dei dati di loro pertinenza alle
funzioni di QuickTime, estensione del Macintosh system software,
che consente l'integrazione in un'unica struttura, il Movie, di
diversi tipi di dati dinamici quali video, animazioni e suoni.
E' indispensabile, per assicurare la perfetta sincronizzazione
fra i vari oggetti della partitura, che la riproduzione dei file
da parte dei driver inizi pressoché istantaneamente e che
la sua durata non venga in alcun modo influenzata dalle caratteristiche
hardware della macchina utilizzata e dal carico gravante su di
essa; per consentire, inoltre, la riproduzione continua di diversi
file, non intervallata cioè dai relativi tempi di caricamento,
si è reso necessario implementare una sorta di parallelismo
virtuale fra fase di caricamento e fase di riproduzione, in modo
che un file, essendo caricato in memoria durante l'esecuzione
del precedente, risulti, al termine della stessa, immediatamente
disponibile alla riproduzione.
Naturalmente le diverse caratteristiche e modalità di gestione
dei file relativi ai 5 media considerati hanno suggerito di volta
in volta soluzioni differenti; in generale si è fatto ricorso
a primitive di lettura asincrona da disco in modo da non monopolizzare
l'uso del processore durante il caricamento e a procedure richiamate
a livello di interrupt per rendere indipendente la riproduzione
dei file dallo stato corrente dell'applicazione.
Opportuni menu, infine, consentono all'utente di manipolare alcune
caratteristiche dell'interfaccia dei singoli driver al fine di
personalizzarne l'utilizzo all'interno della performance, risulta
così possibile, ad esempio condividere un unico schermo
per la riproduzione contemporanea di più video digitali
od immagini fisse o ridefinire la distribuzione delle tracce di
un file MIDI sui canali MIDI disponibili.
Il sistema originato dall'integrazione dei progetti sviluppati
in questa tesi e nella tesi, 'Un sistema per la performance multimediale
basato su protocollo MIDI', a questa complementare costituisce
quindi uno strumento flessibile per l'esecuzione in tempo reale
di performance multimediali.