Relatore: Dott. F. Minazzi Studente:Brugnoli Massimiliano
Correlatore: Prof G. Haus Mat. N¡ 370872

 

RIASSUNTO TESI

 

STUDIO E REALIZZAZIONE DI UN CONVERTITORE SEGNALE AUDIO/M.I.D.I. BASATO SU DSP 56000.

 

Il presente lavoro realizza un sistema per l'analisi in tempo reale di una molteplicitˆ di segnali provenienti da uno strumento musicale.
A tale scopo ci si avvale di strumenti informatici quali una scheda D.S.P. Digidesign modello Audiomedia II (con processore Motorola 56001), costruita per il campionamento dei segnali audio, ed un computer Macintosh modello Quadra 950; quest'ultimo comunica i risultati dell'analisi, mediante il protocollo di comunicazione standard M.I.D.I., ad un expander, che  una periferica musicale avente il compito di riprodurre attraverso uno speaker gli eventi sonori corrispondenti ai messaggi M.I.D.I. ricevuti.


Fig.1- Schema generale del sistema di pitch detection.

 

Il collegamento dello strumento musicale alla scheda D.S.P. ha richiesto la realizzazione di una apposita interfaccia hardware che ha il compito di campionare i singoli segnali (operare cio una discretizzazione in ampiezza e nel tempo dei segnali analogici, trasformandoli in una serie di dati numerici) provenienti da un trasduttore (pick-up) esafonico e poi di interfogliarli generando un unico flusso di dati. Quest'ultima operazione  stata dettata dalla necessitˆ di trasportare sei segnali paralleli in una unica linea, poichŽ unico  l'ingresso alla scheda D.S.P. Il flusso di dati interfogliati  costruito secondo le specifiche del formato di interscambio S/P-DIF, naturalmente il D.S.P. conosce l'ordine con cui arrivano i dati che  stato semplicemente stabilito come segue: campione segnale 1, campione segnale 2, campione segnale 3, campione segnale 4, campione segnale 5, campione segnale 6, campione segnale 1...,il pattern si ripete.
La realizzazione del software ha richiesto una consistente parte di codice di basso livello scritta in Assembler 56000 che viene caricata sulla RAM del D.S.P. al momento dell'esecuzione, ed una parte minore di codice ad alto livello scritta in C++ utilizzando l'ambiente di sviluppo Symantec.
Come si pu˜ intuire dalla Figura 1, lo scopo finale  quello di consentire ad un esecutore di pilotare in tempo reale la strumentazione elettronica M.I.D.I. eseguendo la sua performance su di uno strumento musicale convenzionale, in grado cio di produrre solo segnali analogici.
Il cuore del sistema  chiamato pitch detector (letteralmente rilevatore di altezza) ed  responsabile del processo di analisi del segnale, nel nostro caso  un micro-programma assembler, che implementa un algoritmo basato sull'analisi delle caratteristiche secondarie del segnale.
Questo metodo opera nello stesso dominio di origine del segnale (dominio del tempo) evitando in tal modo trasformazioni onerose dal punto di vista computazionale, inoltre esso si basa sulla valutazione di particolari caratteristiche che sono indipendenti dall'inviluppo del segnale stesso conferendo al metodo robustezza ed elasticitˆ e rendendolo facilmente adattabile a vari tipi di segnale.
L'elaborazione viene effettuata su sezioni del segnale di 20 msec l'una (300 campioni a 14700 Hz di frequenza di campionamento), inizialmente viene calcolata una soglia adattiva che evidenzia solo determinati picchi, dai quali vengono ricavate particolari misure che caratterizzano la loro forma (energia, rapporto ampiezza/energia, estensione temporale, e posizione temporale) e che sono chiamate caratteristiche secondarie.
In tal modo viene costruito un vettore in cui ogni elemento  costituito dalla n-pla di caratteristiche secondarie che descrivono il singolo picco, il vettore ha quindi una lunghezza pari al numero di picchi contenuti in quella particolare porzione di segnale.
Il passo successivo consiste nel ricercare i due picchi che hanno il maggiore grado di somiglianza stabilendo cos" il periodo del segnale, il quale  espresso in numero di campioni; questo dato infine viene usato per effettuare una ricerca in una look-up table contenete la corrispondenza tra i periodi e i codici M.I.D.I. di pitch.
Per quanto concerne la localizzazione temporale degli eventi si parte dall'osservazione che l'estensione della nota prodotta dallo strumento  pi
grande di quella della finestra di analisi, pertanto l'algoritmo possiede un automa a stati finiti in grado di concatenare i risultati dei frame precedenti (storia), al fine di posizionarsi in uno stato corretto. I possibili stati sono: nota attiva (Note On), ossia l'artista sta suonando una particolare nota; nota disattivata (Note Off), regione di silenzio, di rumore o gap esistenti tra note successive); evento di nota nuova (New Note Event) caratterizzato dall'interruzione della nota corrente a causa dell'esecuzione di una nuova nota mentre la precedente era ancora attiva. é chiaro che l'automa deve essere in grado di 'seguire' in tempo reale l'intenzione musicale espressa dall'esecutore.
Il punto critico del progetto risiede nella gestione dei tre seguenti processi concorrenti di comunicazione: acquisizione dei campioni nella memoria del D.S.P. tramite un servizio di interrupt; comunicazione dei risultati dalla scheda all'host computer tramite un servizio di interrupt richiesto dal D.S.P.; spedizione immediata dei dati alla porta seriale collegata ad una apparecchiatura M.I.D.I. in ascolto, tale operazione scatena un interrupt al gestore della porta.
Il D.S.P. e la C.P.U. dell'host computer lavorano in modalitˆ reale parallela e poichŽ quest'ultimo  mono processore esso non  in grado di gestire in modo corretto due interrupt contemporanei (uno di ricezione dati dal D.S.P. che pu˜ giungere in qualsiasi istante, ed uno di spedizione dati alla porta M.I.D.I.), pertanto  stato implementato un semaforo che gestisce la regione critica di transito dei dati nella memoria dell'host.
é importante sottolineare che durante la stesura del codice in assembler si  cercato di sfruttare il pi
possibile il parallelismo di esecuzione di cui  capace il processore Motorola 56001 (versione per sviluppo software del chip 56000) grazie alla sua architettura Dual-Harvard caratterizzata da una memoria programma e doppia memoria dati gestite indipendentemente l'una dalle altre con bus dedicati, in tal modo si dispone ancora di un ampio margine di potenza di calcolo per ulteriori sviluppi futuri che possono ad esempio integrare nell'algoritmo una analisi della dinamica o della timbrica del segnale.