In this thesis we propose algorithms that simulate the behavior of the effect processors used for the audio signal processing and we will discuss the implementation of these algorithms in the most modern digital signal processors (DSP). The work carried out in the thesis consists, starting from an algorithm known for simulating the behavior of an effect processor (in this case, a reverb algorithm) in implementing this algorithm in a DSP. For the purpose it was decided to implement an algorithm for reverberation; although the algorithm does not belong to the state of the art, it is however very pleasing to the musicians due to the timbral characteristics it presents. In our case, an algorithm corresponding to a type of reverb having a particular timbre has been chosen, characterized by a structure based on combinations of allpass and comb filters. The algorithm in question, whose block diagram is discussed in chapter 3, was developed by the Montarbo s.r.l. company and is mainly designed to meet the needs of musicians in search of a particular sound. The algorithm describes a reverberation belonging to the "Ambience" category, that is a reverberation with acoustic characteristics similar to those of a small / medium size room, and each of its fundamental parameters is adjustable starting from a group of comb and allpass filters. Although the acoustic characteristics of a real room have been taken as the basic idea for reverberation, the parameters chosen for the treated algorithm have timbral properties that do not correspond to any real closed environment; this choice is desired because this effect is designed to give the sound a "vintage" effect particularly pleasing to musicians, rather than to simulate a particular environment. Once the reverb design scheme has been defined, the algorithm is developed on XTime Composer, defining the instructions both in high level language (called xC) and in machine language in order to form the interface between the computer, in which the instructions are defined, and the DSP, which takes care of processing the input signal according to the previously defined instructions. The result of the processing of the signal by the DSP, i.e. the reverberated signal to be obtained, will consist of a sequence of replicas of the input signal (which, for simplicity, it is a unitary pulse) that occur at different values frequency related to the parameters of the single building blocks of the scheme. Since XTime Composer processes n sized vectors as input signals (where the number of samples n corresponds to the signal duration), the instructions describe what happens in a single processing cycle, so, once they are finished executing for the first cycle, they will be reprocessed again for the remaining n-1 cycles. The particularity of this thesis is to implement the algorithm on an innovative DSP, realized by the company XMOS. The DSPs producted by XMOS are called XCORE and allow the audio signal to be processed in high definition. Once the algorithm to be implemented has been chosen, it is considered a structure composed of several DSPs that work in parallel. The audio data coming from external sources are sent in streaming to the DSP through an interfacing device called I2S (which is discussed in more detail in chapter 4) and, once inside, are processed in high definition according to the instructions that define the distinct steps of the chosen reverberation algorithm. The algorithm chosen for our purposes is a rather dated algorithm that no longer has the physical machine for setting the parameters, so it was decided to simulate this algorithm in MATLAB, then on XTime Composer, which is the language used for interfacing the XCORE DSP to the computer (more in detail in chapter 3) and finally comparing the two impulsive output responses. In the thesis, therefore, the reverberation algorithm is realized in MATLAB and, by applying a unitary pulse to its input, an output signal is obtained which will be compared with the output signal from the XCORE processor; in chapter 7, where the validation is carried out, the values in output from MATLAB and the XCORE processor are shown in the table and these values are very similar to each other.

In questa tesi si propongono degli algoritmi che simulano il comportamento dei processori di effetto utilizzati per il trattamento dei segnali audio e si discuterà dell’implementazione di questi algoritmi nei più moderni processori di segnali digitali (DSP, Digital Signal Processor). Il lavoro svolto nella tesi consiste, a partire da un algoritmo noto per la simulazione del comportamento di un processore di effetto (in questo caso, un riverbero) nell’implementare tale algoritmo in un DSP (Digital Signal Processor). Per lo scopo si è scelto di implementare un algoritmo per la riverberazione che, pur non appartenendo allo stato dell’arte, è comunque molto gradito ai musicisti per le caratteristiche timbriche che presenta. Nel nostro caso, è stato scelto un algoritmo corrispondente a una tipologia di riverbero avente una timbrica particolare, caratterizzato da una struttura basata su combinazioni di filtri allpass e comb. L’algoritmo in questione, il cui schema a blocchi è discusso nel capitolo 3, è stato sviluppato dalla ditta Montarbo s.r.l. ed è principalmente pensato per venire incontro alle esigenze dei musicisti alla ricerca di un suono particolare. L’algoritmo descrive un riverbero appartenente alla categoria “Ambience”, cioè un riverbero con caratteristiche acustiche assimilabili a quelle di una stanza di piccole/medie dimensioni, e ciascuno dei suoi parametri fondamentali è regolabile a partire da un gruppo di filtri comb e allpass. Sebbene siano state prese, come idea di base per il riverbero, le caratteristiche acustiche di una stanza reale, i parametri scelti per l’algoritmo trattato presentano proprietà timbriche che non corrispondono a nessun ambiente chiuso reale; questa scelta è voluta in quanto questo effetto è pensato per dare al suono un effetto “vintage” particolarmente gradito ai musicisti, piuttosto che per simulare un ambiente particolare. Una volta definito lo schema di progettazione del riverbero, si sviluppa l’algoritmo su XTime Composer, definendo le istruzioni sia in linguaggio di alto livello (chiamato xC) sia in linguaggio macchina in modo da formare l’interfaccia tra l’elaboratore, in cui sono definite le istruzioni, e il DSP, che si occupa di processare il segnale in ingresso secondo le istruzioni preventivamente definite. Il risultato del processamento del segnale da parte del DSP, ovvero il segnale riverberato che si vuole ottenere, consisterà in una successione di repliche del segnale di ingresso (che, per semplicità, si tratta di un impulso unitario) che occorrono in corrispondenza di diversi valori di frequenza correlati ai parametri dei singoli building blocks dello schema. Dal momento che XTime Composer elabora vettori a n dimensioni come segnali in ingresso (dove il numero di campioni n corrisponde alla durata temporale del segnale), le istruzioni descrivono quello che succede in un singolo ciclo di processamento, per cui, una volta terminata la loro esecuzione per il primo ciclo, esse verranno rielaborate nuovamente per i restanti n-1 cicli. 4 La particolarità di questa tesi consiste implementare l’algoritmo su un DSP innovativo, realizzato dalla ditta XMOS. I DSP di produzione della XMOS prendono il nome di XCORE e consentono di elaborare in alta definizione il segnale audio in ingresso. Una volta scelto l’algoritmo da implementare, si considera una struttura composta da diversi DSP che lavorano in maniera parallela. I dati audio provenienti da sorgenti esterne vengono inviati in streaming al DSP tramite un dispositivo di interfacciamento chiamato I2S (di cui si parla più in dettaglio nel capitolo 4) e, una volta dentro, vengono elaborati in alta definizione secondo le istruzioni che definiscono i distinti passi dell’algoritmo di riverberazione scelto. L’algoritmo scelto per i nostri scopi è un algoritmo piuttosto datato di cui non si dispone più della macchina fisica per l’impostazione dei parametri, per cui si è deciso di simulare tale algoritmo in MATLAB, poi su XTime Composer, che è il linguaggio utilizzato per l’interfacciamento dei DSP XCORE al computer (se ne parla più dettagliatamente nel capitolo 3) e, infine, confrondando le due risposte impulsive in uscita. Nella tesi viene, pertanto, realizzato l’algoritmo del riverbero in MATLAB e, applicando al suo ingresso un impulso unitario, si ricava un segnale di uscita che verrà confrontato con il segnale in uscita dal processore XCORE; nel capitolo 7, in cui viene effettuata la validazione, si riportano in tabella i valori in uscita da MATLAB e dal processore XCORE e questi valori si presentano tra loro molto simili.

Studio sull'implementazione degli algoritmi per il musical instruments ed il sound reinforcement basato su un processore multicore

ARETINO, MICHELE
2016/2017

Abstract

In this thesis we propose algorithms that simulate the behavior of the effect processors used for the audio signal processing and we will discuss the implementation of these algorithms in the most modern digital signal processors (DSP). The work carried out in the thesis consists, starting from an algorithm known for simulating the behavior of an effect processor (in this case, a reverb algorithm) in implementing this algorithm in a DSP. For the purpose it was decided to implement an algorithm for reverberation; although the algorithm does not belong to the state of the art, it is however very pleasing to the musicians due to the timbral characteristics it presents. In our case, an algorithm corresponding to a type of reverb having a particular timbre has been chosen, characterized by a structure based on combinations of allpass and comb filters. The algorithm in question, whose block diagram is discussed in chapter 3, was developed by the Montarbo s.r.l. company and is mainly designed to meet the needs of musicians in search of a particular sound. The algorithm describes a reverberation belonging to the "Ambience" category, that is a reverberation with acoustic characteristics similar to those of a small / medium size room, and each of its fundamental parameters is adjustable starting from a group of comb and allpass filters. Although the acoustic characteristics of a real room have been taken as the basic idea for reverberation, the parameters chosen for the treated algorithm have timbral properties that do not correspond to any real closed environment; this choice is desired because this effect is designed to give the sound a "vintage" effect particularly pleasing to musicians, rather than to simulate a particular environment. Once the reverb design scheme has been defined, the algorithm is developed on XTime Composer, defining the instructions both in high level language (called xC) and in machine language in order to form the interface between the computer, in which the instructions are defined, and the DSP, which takes care of processing the input signal according to the previously defined instructions. The result of the processing of the signal by the DSP, i.e. the reverberated signal to be obtained, will consist of a sequence of replicas of the input signal (which, for simplicity, it is a unitary pulse) that occur at different values frequency related to the parameters of the single building blocks of the scheme. Since XTime Composer processes n sized vectors as input signals (where the number of samples n corresponds to the signal duration), the instructions describe what happens in a single processing cycle, so, once they are finished executing for the first cycle, they will be reprocessed again for the remaining n-1 cycles. The particularity of this thesis is to implement the algorithm on an innovative DSP, realized by the company XMOS. The DSPs producted by XMOS are called XCORE and allow the audio signal to be processed in high definition. Once the algorithm to be implemented has been chosen, it is considered a structure composed of several DSPs that work in parallel. The audio data coming from external sources are sent in streaming to the DSP through an interfacing device called I2S (which is discussed in more detail in chapter 4) and, once inside, are processed in high definition according to the instructions that define the distinct steps of the chosen reverberation algorithm. The algorithm chosen for our purposes is a rather dated algorithm that no longer has the physical machine for setting the parameters, so it was decided to simulate this algorithm in MATLAB, then on XTime Composer, which is the language used for interfacing the XCORE DSP to the computer (more in detail in chapter 3) and finally comparing the two impulsive output responses. In the thesis, therefore, the reverberation algorithm is realized in MATLAB and, by applying a unitary pulse to its input, an output signal is obtained which will be compared with the output signal from the XCORE processor; in chapter 7, where the validation is carried out, the values in output from MATLAB and the XCORE processor are shown in the table and these values are very similar to each other.
GAZZILLI, FRANCO
ING - Scuola di Ingegneria Industriale e dell'Informazione
18-apr-2018
2016/2017
In questa tesi si propongono degli algoritmi che simulano il comportamento dei processori di effetto utilizzati per il trattamento dei segnali audio e si discuterà dell’implementazione di questi algoritmi nei più moderni processori di segnali digitali (DSP, Digital Signal Processor). Il lavoro svolto nella tesi consiste, a partire da un algoritmo noto per la simulazione del comportamento di un processore di effetto (in questo caso, un riverbero) nell’implementare tale algoritmo in un DSP (Digital Signal Processor). Per lo scopo si è scelto di implementare un algoritmo per la riverberazione che, pur non appartenendo allo stato dell’arte, è comunque molto gradito ai musicisti per le caratteristiche timbriche che presenta. Nel nostro caso, è stato scelto un algoritmo corrispondente a una tipologia di riverbero avente una timbrica particolare, caratterizzato da una struttura basata su combinazioni di filtri allpass e comb. L’algoritmo in questione, il cui schema a blocchi è discusso nel capitolo 3, è stato sviluppato dalla ditta Montarbo s.r.l. ed è principalmente pensato per venire incontro alle esigenze dei musicisti alla ricerca di un suono particolare. L’algoritmo descrive un riverbero appartenente alla categoria “Ambience”, cioè un riverbero con caratteristiche acustiche assimilabili a quelle di una stanza di piccole/medie dimensioni, e ciascuno dei suoi parametri fondamentali è regolabile a partire da un gruppo di filtri comb e allpass. Sebbene siano state prese, come idea di base per il riverbero, le caratteristiche acustiche di una stanza reale, i parametri scelti per l’algoritmo trattato presentano proprietà timbriche che non corrispondono a nessun ambiente chiuso reale; questa scelta è voluta in quanto questo effetto è pensato per dare al suono un effetto “vintage” particolarmente gradito ai musicisti, piuttosto che per simulare un ambiente particolare. Una volta definito lo schema di progettazione del riverbero, si sviluppa l’algoritmo su XTime Composer, definendo le istruzioni sia in linguaggio di alto livello (chiamato xC) sia in linguaggio macchina in modo da formare l’interfaccia tra l’elaboratore, in cui sono definite le istruzioni, e il DSP, che si occupa di processare il segnale in ingresso secondo le istruzioni preventivamente definite. Il risultato del processamento del segnale da parte del DSP, ovvero il segnale riverberato che si vuole ottenere, consisterà in una successione di repliche del segnale di ingresso (che, per semplicità, si tratta di un impulso unitario) che occorrono in corrispondenza di diversi valori di frequenza correlati ai parametri dei singoli building blocks dello schema. Dal momento che XTime Composer elabora vettori a n dimensioni come segnali in ingresso (dove il numero di campioni n corrisponde alla durata temporale del segnale), le istruzioni descrivono quello che succede in un singolo ciclo di processamento, per cui, una volta terminata la loro esecuzione per il primo ciclo, esse verranno rielaborate nuovamente per i restanti n-1 cicli. 4 La particolarità di questa tesi consiste implementare l’algoritmo su un DSP innovativo, realizzato dalla ditta XMOS. I DSP di produzione della XMOS prendono il nome di XCORE e consentono di elaborare in alta definizione il segnale audio in ingresso. Una volta scelto l’algoritmo da implementare, si considera una struttura composta da diversi DSP che lavorano in maniera parallela. I dati audio provenienti da sorgenti esterne vengono inviati in streaming al DSP tramite un dispositivo di interfacciamento chiamato I2S (di cui si parla più in dettaglio nel capitolo 4) e, una volta dentro, vengono elaborati in alta definizione secondo le istruzioni che definiscono i distinti passi dell’algoritmo di riverberazione scelto. L’algoritmo scelto per i nostri scopi è un algoritmo piuttosto datato di cui non si dispone più della macchina fisica per l’impostazione dei parametri, per cui si è deciso di simulare tale algoritmo in MATLAB, poi su XTime Composer, che è il linguaggio utilizzato per l’interfacciamento dei DSP XCORE al computer (se ne parla più dettagliatamente nel capitolo 3) e, infine, confrondando le due risposte impulsive in uscita. Nella tesi viene, pertanto, realizzato l’algoritmo del riverbero in MATLAB e, applicando al suo ingresso un impulso unitario, si ricava un segnale di uscita che verrà confrontato con il segnale in uscita dal processore XCORE; nel capitolo 7, in cui viene effettuata la validazione, si riportano in tabella i valori in uscita da MATLAB e dal processore XCORE e questi valori si presentano tra loro molto simili.
Tesi di laurea Magistrale
File allegati
File Dimensione Formato  
2018_04_Aretino.pdf

accessibile in internet per tutti

Descrizione: Testo della tesi
Dimensione 2.84 MB
Formato Adobe PDF
2.84 MB Adobe PDF Visualizza/Apri

I documenti in POLITesi sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/10589/139079