" 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.