" Un Sequencer per il controllo integrato di unità di sintesi M.I.D.I. e unità Digital Signal Processing "
Tesi di Laurea di : Andrea Ballista Relatore
: Dott. Goffredo Haus
Matricola : 254656 Correlatore
: Prof. Mario Italiani
Anno Accademico : 1989/90
Introduzione
In questa tesi ci si è occupati dell'analisi, della
progettazione e della realizzazione di un Sequencer M.I.D.I.
che unisse alle funzioni di registrazione, editing e riproduzione
di processi M.I.D.I. anche la possibilità di integrare,
tramite un apposito driver, una scheda Motorola D.S.P. 56001
collocata internamente al calcolatore.
La motivazione fondamentale che ha spinto alla realizzazione
di questo lavoro è stata l'integrazione di un ambiente
sperimentale di sintesi sonora con il mondo M.I.D.I., attuale
standard di comunicazione tra strumenti musicali elettronici.
Le principali problematiche che sono state affrontate riguardano
la realizzazione del Sequencer, argomento sul quale si è
constatata una notevole carenza di letteratura, e la sua integrazione
con l'unità D.S.P. , parte che è stata trattata
a partire dalla gestione degli interrupt del sistema fino alla
definizione dell'interfaccia utente e che costituisce l'elemento
innovativo della tesi.
Realizzazione del Sequencer
Possiamo dire che il Sequencer M.I.D.I. si può trovare,
durante una sessione di lavoro, in tre stati fondamentali: riproduzione
, registrazione e editing .
In riproduzione si scrivono semplicemente i dati ordinati temporalmente
sulla porta di output; in registrazione , mentre si scrive
su output, si accettano messaggi M.I.D.I. provenienti dalla
porta di input e infine in editing si consente di modificare
i dati contenuti nel programma che è già predisposto
per gestire fino a 32 sequenze distinte .
Per supportare in particolar modo le fasi di riproduzione e di
registrazione, è stata implementata una particolare struttura
dati costituita da una lista principale, che viene scandita confrontando
il tempo trascorso con il tempo in cui il prossimo evento deve
essere scritto sulla porta di out, e da una lista temporanea su
cui vengono memorizzati i dati in arrivo; alla fine della eventuale
sessione di registrazione, la lista temporanea viene svuotata
mentre viene aggiornata quella principale. Le due liste sono
ordinate con una chiave temporale discretizzata al mezzo millisecondo
per garantire una sufficiente precisione nella esecuzione e il
ciclo di registrazione è stato studiato per essere il più
veloce possibile visto che il vincolo temporale è un fattore
molto rilevante e che il numero necessario di operazioni da
eseguire è elevato.
Per quanto riguarda lo stato di editing , il problema non è
stato tanto di scrivere un codice veloce quanto di individuare
una chiara ed efficace interfaccia utente che nella fattispecie
si avvale di una lista delle battute del brano musicale consentendo
di intervenire sui dati ad un livello di precisione più
elevato.
Integrazione con l'unità D.S.P.
Tramite un'opzione del Sequencer è possibile assegnare
al D.S.P. una o più delle 32 sequenze, cioé inviare
un determinato insieme di dati M.I.D.I. ad un driver che controlla
la scheda e che, in funzione del tipo di sintesi sonora usata,
traduce appositamente l'informazione musicale. Inoltre il driver
funziona da filtro per tutti i tipi di dati che possono essere
inviati alla scheda che può essere d'altra parte utilizzata
per vari tipi di sintesi.
Per riuscire a cambiare timbro al D.S.P. durante la stessa esecuzione
è stato scelto il messaggio M.I.D.I. di Program Change,
usato normalmente per lo stesso scopo dai dispositivi M.I.D.I.
compatibili; quindi possiamo dire che la scheda, all'interno del
Sequencer, è vista come un normale sintetizzatore.
E' stato inoltre impostato un completo meccanismo di allocazione
e salvataggio di tutti i patch definiti dall'ambiente di sviluppo
della scheda tramite una libreria di funzioni messa a disposizione
dell'implementatore di microprogrammi per il D.S.P. rendendo
quindi il Sequencer un sistema aperto a nuovi tipi di sintesi.
Note conclusive
Molta attenzione è stata dedicata alla comunicazione
del Sequencer con l'ambiente esterno : essa avviene tramite il
formato 1.0 degli Standard M.I.D.I. Files, che è usato
da tutte le applicazioni musicali sul mercato, e tramite il M.I.D.I.
Manager Tool Set che oltre a fornire le necessarie primitive
d'accesso alle porte di in e di out rende possibile lo scambio
diretto di dati M.I.D.I. fra più applicazioni aperte contemporaneamente
nel sistema .
Il software funziona su Macintosh, è stato sviluppato
in ambiente M.P.W. e scritto in Pascal nell'ambito del Progetto
Finalizzato Informatica 2 del C.N.R..
Per finire possiamo dire che l'esperienza accumulata svolgendo questo lavoro suggerisce di continuare sulla strada della sempre maggiore integrazione tra Sequencer e D.S.P. per due motivi principali : la progressiva diminuzione dei costi dell'hardware e il notevole incremento di potenzialità che viene offerto all'utente.