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.