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.