Un sistema ad architettura aperta per la programmazione timbrica con interfaccia iconica.

 

Tesi di laurea di: Isabella Pighi
Matricola: 356833

Relatore: Prof. Goffredo Haus
Correlatore: Prof. Mario Italiani

Anno Accademico: 1991/92

 

La presente tesi ha per obiettivo la progettazione e lo sviluppo di un ambiente di programmazione dedicato alla sintesi di segnali musicali.
L'approccio seguito consiste nella schematizzazione del modello timbrico in moduli classificabili in quattro classi:
a) moduli controllori: responsabili del controllo e della sincronizzazione dei moduli presenti nel modello;
b) moduli generatori: i quali generano segnali con forma d'onda fissata;
c) moduli operandi: agenti sulle forme d'onda più semplici, essi possono essere ad uno o più ingressi provenienti dai generatori;
d) moduli consumatori: la cui configurazione dei parametri in entrata stabilisce il formato e la destinazione finale del segnale prodotto.
Ogni modulo dialoga con il mondo esterno esclusivamente mediante le porte di ingresso e di uscita, attraverso le quali passano due tipi di informazione:
a) le funzioni di controllo dei moduli;
b) il segnale generato.
La comunicazione fra moduli avviene mediante il seguente collegamento funzionale:

In ogni modello devono comparire un solo controllore ed un solo consumatore. Il controllore regola le funzioni di controllo di tutti i moduli presenti garantendo un comportamento deterministico al modello timbrico.
I generatori producono le forme d'onda che verranno manipolate dagli operandi, ognuno di questi moduli ha un solo ingresso per il controllore ed una sola uscita per il consumatore.
Il consumatore infine riceverà in ingresso il segnale prodotto disponendone secondo il valore delle funzioni di controllo.
Diversificando i flussi di informazione fra i moduli è possibile realizzare agevolmente tutte le tecniche di sintesi sonora note in letteratura; l'oggetto risultante da una sessione di progettazione sperimentale di sintesi è chiamato strumento.
Ogni strumento a sua volta può far parte come modulo generatore di un modello timbrico più complesso (modelli ricorsivi non sono ammessi), ogni classe precedentemente illustrata infatti può essere arricchita con nuovi elementi costruiti su un insieme ristretto di moduli di base.
Avendo a disposizione moduli di base quali ad esempio un controllore, un consumatore, un generatore di onde sinusoidali, un operatore di somma e un operatore di traslazione è possibile realizzare tutti i modelli di timbri, in quanto è possibile costruire lo sviluppo in serie di Fourier di qualsiasi forma d'onda.
Durante la fase di progetto è stato individuato un opportuno insieme di moduli di base, esso rappresenta il nucleo di funzioni costituente il sistema ad architettura aperta.
La necessità di rivolgersi ad utenti inesperti in ambiti informatici (quali generalmente i musicisti) ha fatto sì che TimbreLab (nome del sistema prototipo in questione) fosse progettato affinché l'utente, mediante una penna ideale, potesse codificare lo strumento progettandone mediante strumenti grafici (icone e patch) la forma d'onda.
Analizzando i testi scientifici riguardanti il trattamento dei segnali, si è riscontrato frequentemente il binomio: <espressione matematica, schema sonoro>. Lo schema sonoro rappresenta graficamente la forma d'onda come composizione di forme d'onda più semplici.
Si è formalizzato di conseguenza un linguaggio di programmazione grafico che, rispettando il più possibile gli standard e le metodologie presenti in letteratura, fosse al tempo stesso semplice ed intuitivo.
Affinché questo fosse possibile è stato scelto come ambiente di sviluppo LabVIEW 2.2, il quale utilizza un linguaggio grafico (G Language) formato da moduli a carattere funzionale rappresentati da icone. La fase di sviluppo ha coinvolto altri linguaggi oltre a quello grafico, quali il C e l'Assembler per l'interfaccia con la scheda sonora.
Sono stati realizzati altri moduli oltre quelli di base, al fine di rendere la programmazione di uno strumento il più agevole possibile e favorire contemporaneamente la formazione di nuovi moduli da inserire nella libreria.
Ogni strumento, una volta in esecuzione, produce un segnale digitale. Questo può essere ascoltato, visualizzato nel dominio del tempo e delle frequenze e salvato su disco in un formato compatibile con altre applicazioni di carattere musicale (Sound Designer, TurboSynth...).
Codificato con le opportune modalità, lo strumento diventa una funzione di libreria che l'utente costruisce secondo le proprie esigenze.
Sono perciò tre i tipi di oggetti software generati con il sistema sviluppato:
a) lo strumento;
b) il file sonoro;
c) modulo di libreria;

TimbreLab è stato sviluppato come modulo software nell'ambito della Stazione di Lavoro Musicale Intelligente (Progetto Finalizzato CNR), il suo impiego è orientato ad applicazioni in studi dedicati alla sintesi musicale o al trattamento di segnali digitali
Potenzialmente risulta un efficace mezzo di analisi in quanto ogni strumento durante l'esecuzione fornisce contemporaneamente la schematizzazione grafica del segnale generato (il codice), il segnale digitalizzato stesso (l'output), il relativo spettro di potenza e la rappresentazione nel dominio del tempo, entrambi con possibilità di zoom.