Una libreria di microprogrammi di sintesi per DSP Motorola 56001
Tesi di Laurea di : Enea Casali Relatore : Dott. Goffredo
Haus
Matricola : 306287 Correlatore : Prof. Mario Italiani
Anno Accademico : 1989/90
Introduzione
L'idea della tesi si colloca all'interno del tema music del PFI2
(secondo progetto finalizzato informatica) in svolgimento presso
il L.I.M. dell'Università degli Studi di Milano ed avente
come scopo la realizzazione di una workstation in cui si integrino
in maniera coordinata, comunicando attraverso standard internazionalmente
accettati alcuni lavori di ricerca di cui il laboratorio si è
occupato creando così uno spazio di lavoro omogeneo e
coerente avente il pregio di non essere isolato nei suoi intenti
di sperimentazione bensì aperto alle evoluzioni della computer
music.
Una sfera di interesse è quella della "Sintesi del
suono" che attualmente può avvalersi dell'ausilio
di DSP cioé di schede coprocessori dedicate al trattamento
dei segnali, la cui installazione sta diventando possibile e sempre
più diffusa sulla maggior parte dei PC poichè sono
un utile supporto ai sistemi multimediali.
Dette schede, in generale dotate di DAC, possono essere programmate
in linguaggio assembly e conferiscono ad un normale PC le potenzialità
di una unità di sintesi programmabile.
Dovendo trovare la giusta collocazione all'interno dell'architettura
della workstation musicale ad algoritmi di sintesi per DSP, si
è individuato lo strumento sw sequencer come il giusto
ambiente e gestore di ogni tipo di algoritmo nonché anello
di congiunzione, grazie all'utilizzo dello standard MIDI, con
tutto quanto già esistente e comunicante con detto protocollo.
E' da queste premesse che ha preso il via un progetto per la
realizzazione di un sequencer avente, non solo la possibilità
di comunicare tramite interfacce MIDI con i comuni terminali hw
dedicati a particolari tipi di sintesi, bensì dotato della
novità di un driver sw realizzante la comunicazione con
schede DSP dinamicamente caricabili con algoritmi realizzabili
seguendo propri intenti di ricerca e sperimentazione.
La presente tesi si è occupata della parte di basso livello
di detto progetto.
Schema della tesi
Il lavoro svolto può venire così schematizzato:
- 1) Definizione, unitamente allo sviluppatore del sequencer,
della architettura sw relativa al modo di comunicazione tra sequencer
e microprogrammi.
- 2) Realizzazione di 3 microprogrammi in assembly 56000 per
DSPs Motorola 56001 montati negli slot di un MAC II o SE e comandabili
via interrupt. Detti microprogrammi sono:
* Sintesi con funzioni di 2 variabili (TVF)
* Sintesi waveshaping (WSH)
* Sintesi mediante wavelet transform (WLT)
- 3) Realizzazione di un ambiente di sperimentazione indipendente
dal sequencer e dedicato allo studio e ricerca dei suoni ottenibili
con le 3 tecniche di sintesi.
1) Architettura sw sequencer-microprogrammi
La comunicazione microprogrammi-sequencer si basa sull'associazione
dei due concetti di PROGRAM CHANGE (già presente nello
standard MIDI) e di PATCH inteso come particolare setting dei
parametri di una sintesi.
Il lavoro ha avuto come risultato:
- un insieme di routine messe a disposizione dal sequencer
alla scheda
- un insieme di routine messe a disposizione dalla scheda al
sequencer, realizzanti l'interfaccia alle sintesi mediante l'esecuzione
di azioni di interesse generale per definizione, allocazione,
salvataggio, interpretazione dei PATCH.
In questa fase si è astratto dal particolare tipo di sintesi
per delineare il modo in cui una generale sintesi potesse venire
inserita nel sequencer in vista della crescita del numero di sintesi
supportate (ipotesi già in esame da un ricercatore del
L.I.M. che ha sviluppato per la scheda la sintesi mediante automi
cellulari lineari).
2) I microprogrammi di sintesi
* TVF(Two variable synthesis): si realizza campionando in tempo
reale, lungo un'orbita (x(t),y(t)) definita agendo su 10 parametri,
una funzione f(x(t),y(t)) soddisfacente a particolari proprietà
analitiche.
* WSH(wave shaping): prevede in input un segnale sinusoidale
y(t)=I*sin(wt) e una tabella di polinomi distorcenti Pi(y(t))
ciascuno avente un effetto "sagomante" sulla sinusoide.
Detta tecnica è stata vista come caso particolare della
TVF in cui x(t)=i realizza la scelta del polinomio Pi mentre y(t)
il modo in cui esso viene scandito.
* WLT(Wavelet): è essenzialmente una tecnica di analisi
da utilizzarsi in maniera analoga a quella ben più nota
della trasformata di Fourier. Consiste nella ripetuta convoluzione
di un segnale di partenza (un suono nel nostro caso) con un'onda
analizzante di tipo sinusoidale complessa e smorzata che viene
dilatata o compressa da un fattore di scala 'a' per effettuare
un'analisi a varie frequenze (per ottave nel caso di suoni).
Il risultato di ogni convoluzione detto VOCE (reale e complessa
oppure modulo e fase) ha un significato per l'analisi del segnale
poiché permette di realizzare diagrammi simili ai sonogrammi,
in un dominio tempo-scala (t,a) anziché tempo-frequenza
(t,f).
L' interesse a livello musicale nasce dall'esistenza di formule
esatte di resintesi che permettono curiose manipolazioni del
suono di partenza quali sintesi incrociata, effetti di brightness,
trasposizione in frequenza senza modifica della durata.
Considerata la mole di dati in gioco e tenendo presente che la
scheda nella configurazione usata è sprovvista di possibilità
di DMA, si è dovuto, per quest'ultimo tipo di sintesi,
rinunciare ad una versione real time e alla sua integrazione con
il sequencer, mentre la si è inserita nell'ambiente di
sperimentazione in cui compare un'interfaccia utente che guida
all'analisi e alla resintesi (a tal fine si è implementato
un microprogramma che realizza una versione 'Not in place' del
'filtro trasverso' della trasformata wavelet)
3) Ambiente di sperimentazione
Si è voluto creare, slegato dal sequencer, un ambiente
in cui fosse agevole lo studio dei suoni ottenibili con le 3 tecniche
di sintesi, al fine di capirne più a fondo il comportamento
e le potenzialità (trattandosi di tecniche nuove e non
usate nella tecnologia degli strumenti di sintesi) e tenendo distinto
l'atto di ricerca del suono dall'atto del suo utilizzo.
I due ambienti si comunicano tramite i file ottenuti e hanno
interfacce del tutto identiche nelle parti in comune relative
al cambio dei parametri di sintesi in tempo reale. Il programma
di sperimentazione ha però funzioni distinte:
* generazione di onde-base (sinusoidi, quadre, ecc.)
* generazione di polinomi distorcenti per il WSH basata su di
una teoria matematica facente uso del calcolo matriciale che permette,
dato come richiesta il contenuto armonico dell'uscita, di risalire
ai coefficienti del polinomio distorcente.
* generazione di funzioni in 2 variabili
* analisi e resintesi del suono tramite trasformata wavelet
CONCLUSIONI
In questa tesi si è avuta una conferma sull'opportunità
dell'uso del DSP:
* come acceleratore del calcolo nel caso di criticità
dell'algorimo (come si è visto per la trasformata wavelet)
* come strumento di sintesi programmabile e versatile capace
di rendere interessante la generazione di suono su di un normale
PC.