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.