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.