Relatore: Prof. G.Haus Studente: Maurizio Molinari
Correlatore: Dr. A.Ballista Matr.: 369883
Riassunto di tesi di laurea in Scienze dell'Informazione
Anno Accademico 1994/95
Controllo in tempo reale di un sistema basato su integrazione di dispositivi MIDI e Digital Signal Processor, per la elaborazione del segnale audio mediante distorsione non lineare.
Il presente lavoro di tesi, svolto presso il Laboratorio di
Informatica Musicale del Dipartimento di Scienze dell'Informazione
dell'Università degli Studi di Milano, è stato rivolto
principalmente alla progettazione e realizzazione di una applicazione
per il controllo in tempo reale di un sistema basato su dispositivi
MIDI e DSP, tra loro integrati al fine di eseguire la elaborazione
mediante distorsione non lineare di un segnale audio.
La motivazione iniziale che ha spinto alla realizzazione di questo
lavoro, è stata la volontà di fornire uno strumento
che soddisfi alcune delle nuove esigenze espresse da ricercatori
nell'ambito dell'uso della distorsione non lineare in computer
music, rilevate da uno studio approfondito sul settore. L'applicazione
realizzata offre quindi molte delle funzionalità già
presenti in lavori precedenti, inoltre le nuove tecnologie e la
maggiore potenza di calcolo disponibili, hanno permesso l'esecuzione
ed il controllo della distorsione in tempo reale (ciò che
prima veniva fatto in tempo differito), non più solo su
una semplice sinusoide ma su un segnale qualunque e, l'implementazione
di una interfaccia utente efficace, di immediata comprensione
e, di facile utilizzo.
In seguito, la possibilità di impiego in ambito musicale
ventilata da alcuni musicisti e, i loro conseguenti commenti e
consigli, hanno fortemente influenzato la struttura della applicazione,
soprattutto per quanto riguarda l'integrazione con l'ambiente
MIDI, nell'intento di offrire la maggiore libertà possibile
in vista di una eventuale attività di ricerca anche in
questa direzione.
Le principali problematiche che sono state affrontate riguardano
la realizzazione della applicazione, soprattutto per quanto concerne
l'implementazione di una interfaccia utente 'amica' ed efficiente
in termini di tempi di risposta, la realizzazione del microprogramma
per la scheda DSP, in grado di eseguire la distorsione in tempo
reale, l'integrazione MIDI/DSP, lo studio sull'uso della distorsione
non lineare in computer music, non solo dal punto di vista storico,
ma anche introducendo una nuova tecnica nata con la collaborazione
di alcuni matematici.
Realizzazione della applicazione
L'applicazione oggetto di questo lavoro di tesi, denominata WSH_CHEBYCHEV,
esegue in tempo reale la distorsione non lineare di un segnale
audio dato in ingresso, in base ad una funzione distorcente rappresentata
da una combinazione lineare di polinomi di Chebychev di 1^ specie.
Per l'esecuzione vengono impiegate due unità di elaborazione:
un computer Macintosh il cui compito è la gestione della
variazione da parte dell'utente della funzione distorcente, attraverso
la modifica dei coefficienti di combinazione lineare e, una scheda
DSP dotata di processore Motorola 56001, che si occupa dell'esecuzione
della distorsione.
Per quanto riguarda l'interazione con l'utente, particolare attenzione
è stata rivolta alla realizzazione di una interfaccia chiara
e di facile utilizzo. In particolare, l'utente ha la possibilità
di modificare i coefficienti, o in modo grafico agendo con il
mouse sui regolatori di livello ad essi associati, simili a quelli
utilizzati per i volumi nei normali mixer audio, oppure via MIDI
attraverso messaggi inviati alla porta di input da altre applicazioni
compatibili con il MIDI Manager o, da un qualsiasi strumento MIDI
(solo se il Macintosh è dotato di MIDI Interface). L'interfaccia
è stata realizzata in linguaggio C utilizzando principalmente
una tecnica di programmazione ad oggetti, anche se per alcune
parti la necessità di tempi di risposta brevissimi ha costretto
a sacrificarne l'eleganza, la manutenibilità e la sicurezza,
in favore di una più efficiente tecnica procedurale classica.
Realizzazione del microprogramma
La scheda DSP, attraverso l'esecuzione del microprogramma caricato
dal Macintosh in fase di inizializzazione, ad una frequenza di
44.1 KHz realizza la distorsione su una coppia di campioni stereo
di 16 bit ottenuti campionando il segnale in ingresso, inoltre
adegua la funzione distorcente in caso di una eventuale variazione
da parte dell'utente di uno dei coefficienti di combinazione lineare,
comunicata dal programma principale in esecuzione sul Macintosh.
Il microprogramma, a frequenza di campionamento, per ben due volte
deve quindi essere in grado di applicare la funzione distorcente
ai campioni in ingresso e, di ricalcolare tale funzione, ovvero
la combinazione lineare dei polinomi di Chebychev di 1^ specie,
nel caso di variazione di qualche coefficiente. La grossa mole
di calcoli da eseguire a frequenza di campionamento ha costretto
a ridurre a 10 il numero di polinomi di Chebychev utilizzati.
Il microprogramma è stato realizzato in linguaggio assembly
per Motorola 56001, sfruttando a fondo il parallelismo ed il pipelining
nell'elaborazione delle istruzioni che caratterizzano questo processore.
Integrazione MIDI/DSP
L'utente ha la possibilità di modificare i coefficienti
di combinazione lineare della funzione distorcente via MIDI, tramite
messaggi di Note On e Note Off trasmessi alla porta di input,
sul canale settato per la ricezione. Il modo in cui tali messaggi
modificano i coefficienti viene stabilito configurando la Key-Map.
Essa rappresenta il nodo di collegamento tra gli ambienti MIDI
e DSP, in quanto permette di associare coppie di messaggi di Note
On e Note Off aventi lo stesso parametro Note Number, ad uno o
più coefficienti della funzione distorcente. L'utente ha
inoltre la possibilità di stabilire per ogni coefficiente
il segno e l'entità della variazione causata dall'arrivo
del Note On associato e, se essa deve essere proporzionale al
parametro di Key Velocity oppure no. La variazione di un coefficiente
viene gestita in modo tale che, a quella iniziale causata dall'arrivo
di un Note On, seguono delle ripetizioni ad intervalli regolari
di circa mezzo secondo, sino all'arrivo del relativo Note Off.
L'applicazione consente inoltre il salvataggio, l'apertura e la
generazione random delle Key-Maps.
Uso della distorsione non lineare in computer music
La struttura della applicazione e la scelta di questa particolare
tecnica di distorsione, deriva da uno studio approfondito di tutto
il materiale che è stato trovato sull'uso della distorsione
non lineare in computer music, dal 1979 anno del riconoscimento
ufficiale, sino ai giorni nostri. La tecnica implementata è
stata quella che si è rivelata maggiormente documentata,
utilizzata e promettente, soprattutto in relazione alla particolare
proprietà dei polinomi di Chebychev di 1^ specie secondo
cui, posto Tn(x) l'n-esimo polinomio (con n¿) e s(t)=cos(wt),
si ha Tn[s(t)]=cos(nwt).
L'esperienza acquisita e la collaborazione con alcuni matematici,
hanno permesso inoltre di mettere a punto una nuova tecnica di
distorsione non lineare, la quale tramite l'impiego dell'operatore
di approssimazione di Bernstein, è in grado di determinare
una funzione distorcente polinomiale F(x) tale che, posto s(t)=cos(wt),
si ha F[s(t)]=cos(kwt) con k e ke1.
Note conclusive
Questa tesi ha rivelato l'opportunità dell'uso di un sistema
che integri dispositivi MIDI e DSP, per la ricerca nei campi della
sintesi ed elaborazione dei timbri, oltre che per quella non meno
importante eseguita dai musicisti al fine di ottenere effetti
esteticamente e musicalmente apprezzabili.