Comments
Description
Transcript
Effetto coro (Presentazione) - lesim
CHORUS EFFECT Sviluppo di Software per l’Acquisizione e l’Elaborazione in Tempo Reale di Segnali su Processori DSP. Elaborazione dei Segnali e delle Informazioni di Misura Università degli Studi del Sannio CHORUS EFFECT PRESENTAZIONE Esattamente come un coro è un insieme di voci, il Chorus Effect applicato ad uno strumento musicale è in grado di riprodurre il segnale non facendo più percepire il singolo strumento, ma dando l’impressione del suono Il Chorus viene utilizzato potenziare una traccia vocale, contemporaneo (o quasi) per di diversi dispositivi. aggiunge spessore al suono rendendolo più ricco, é per tale motivo che l’applicazione del Coro è anche definita “arricchimento”. COME FUNZIONA Il tra i nel suoni può essere ottenuto Il ritardo Chorus desiderato Effect consiste sommare al suono in mediante lineasuono di ritardo a lunghezza variabile; dove ingresso louna stesso ritardato. con lunghezza variabile s’intende che il ritardo non è mai lo stesso ma cambia col passare del tempo. COME FUNZIONA Per implementare il ritardo abbiamo bisogno di una Possiamo utilizzare, per(come produrre forma con forma d’onda periodica ad una esempio und’onda segnale frequenza lentamente un Low Frequency sinusoidale) che abbia variabile, una frequenza lentamente Oscillator (LFO – oscillatore bassa frequenza). variabile, con frequenze pari oainferiori ai 3Hz. PARAMETRI Sweep Depth: controlla di quanto il ritardo totale varia Delay (ritardo): Il ritardo controlla semplicemente la e nel tempo, usualmente viene espresso in millisecondi, dilatazione temporale utilizzata, già ci detto, di fatti la somma di Sweep Depthcome e Delay da il essa oscilla traritardo i 20 e iutilizzato 30 ms. nell’elaborazione del segnale. massimo In alternativa si può pensare allo Sweep Depth come all’ampiezza dell’LFO. PARAMETRI Numero di voci: Tipicamente per implementare un coro multi-voce si utilizza una singola forma d’onda che però assume diverso ritardo, questo significa che in uno stesso istante di tempo ogni voce è in un punto diverso della forma d’onda. CHORUS EFFECT REALIZZAZIONE Avvalendoci del supporto Matlab, abbiamo accuratamente definito la specifica del progetto e grazie ad una serie di Come in precedenza detto bastano due ai vociparametri per ricreare il simulazioni iterative abbiamo attribuito i valori Chorus Effect, nella nostra particolare implementazione che meglio assolvono i nostri scopi. abbiamo utilizzato quattro voci: la principale è senza dubbio quella non ritardata, in effetti fa da “guida” al segnale in uscita, le altre tre vengono ottenute dalla prima con ritardi variabili e guadagni differenti. SIMULAZIONE Lo schema Simulink seguente riassume in modo snello e diretto le scelte fatte: SIMULAZIONE State ascoltando il suono dato in ingresso nel corso della simulazione. Memorizzate bene tutti i dettagli! SIMULAZIONE Ecco il risultato della simulazione Continuate a sentire …d’udito!!! una sola chitarra? Se si, vuol dire che c’è un problema… SIMULAZIONE Il seguente grafico illustra la differenza tra il suono in ingresso e l’uscita a cui è applicato il Chorus Effect uscita ingresso HARDWARE UTILIZZATO Processore DSP Frequenza clock 150 MHZ 16 MB SDRAM 128 KB Flash ROM DMA Esegue fino a 8 istruzioni in parallelo in un ciclo di clock Possibilità di calcoli a 40 bit supporto hardware per istruzioni floating-point IEEE TMS320C6711 DSK single-precision (32 bit) e double-precision (64 bit) moltiplicazione intera 32x32 bit con risultato a 32 o 64 bit IMPLEMENTAZIONE Per gestire l’input e l’output della scheda DSK abbiamo Per prelevare i campioni dalla scheda audio è stato utilizzato la porta McBSP: un’interfaccia seriale che può configurato l'interrupt HWI9, questo interrupt viene trasferire un dato da e per la memoria con l’uso del DMA generato ogniinterrupts qual voltaalla è disponibile in ingresso sulla o attraverso CPU porta McBSP0 un nuovo campione da processare Per la lettura e la scrittura dei campioni sono state usate le funzioni AD535_HWI_read, e AD535_HWI_write, entrambe contenute nella libreria BSL IMPLEMENTAZIONE per realizzare l'effetto sarebbe bastato un buffer di 240 campioni, ma utilizzando 256 campioni la realizzazione risulta estremamente semplice richiede il solo Per la generazione dei più ritardi è statopoiché necessario creare un utilizzo di una AND logica col valore 255 sull'indice di buffer circolare di 256 campioni accesso delayed_sample = (CHORUS_GAIN*input_buf[(input_idx-samples_delay) & 255]); IMPLEMENTAZIONE L’implementazione prevede 3 voci ritardate sovrapposte Il ritardo viene realizzato spostandosi all’indietro nel all'ingresso buffer di un corrente. valore variabile nel tempo, tale valore viene generato da un LFO software basato su una sinusoide discreta con frequenza di 3Hz i cui valori estremi sono il numero massimo e minimo di campioni da ritardare (240-160 campioni, corrispondenti a 30-20 ms ). TEST La fase finale del progetto prevede la verifica dei risultati ottenuti; da subito, nonostante qualche capriccio da parte della scheda DSK e alcune correzioni di rito, i test hanno avuto risultati positivi Il riscontro finale, nel complesso, è apparso soddisfacente Borriello Alessandro FINE CHORUS EFFECT 195000713 LaMonica Michele 195001051 Sviluppo di Software per l’Acquisizione e l’Elaborazione Rubino Marcello in Tempo Reale di Segnali su Processori DSP. 195001092 Porfido Michele 195001039 Elaborazione dei Segnali e delle Informazioni di Misura Università degli Studi del Sannio