Sei sulla pagina 1di 17

CHORUS EFFECT

Sviluppo di Software per lAcquisizione e lElaborazione


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 limpressione del suono
Il Chorus viene utilizzato
contemporaneo (o quasi) per potenziare
di diversi una traccia vocale,
dispositivi.
aggiunge spessore al suono rendendolo pi ricco, per tale
motivo che lapplicazione del Coro anche definita
arricchimento.
COME FUNZIONA

Il
Il ritardo
Chorus desiderato tra i nel
Effect consiste suoni pu essere
sommare ottenuto
al suono in
mediante una linea di ritardo a
ingresso lo stesso suono ritardato. lunghezza variabile; dove
con lunghezza variabile sintende che il ritardo non mai
lo stesso ma cambia col passare del tempo.
COME FUNZIONA

Per implementare il ritardo abbiamo bisogno di una forma


Possiamo utilizzare,
donda periodica per ad
(come produrre
esempiounaunforma donda con
segnale
sinusoidale)
frequenza che abbia variabile,
lentamente una frequenza
un Lowlentamente
Frequency
variabile, con
Oscillator frequenze
(LFO pari oainferiori
oscillatore ai 3Hz.
bassa frequenza).
PARAMETRI

Sweep Depth: controlla di quanto il ritardo totale varia


Delay
nel (ritardo):
tempo, Il ritardo
usualmente vienecontrolla
espressosemplicemente
in millisecondi,lae di
dilatazione
fatti la somma temporale
di Sweep utilizzata,
Depth e come
Delaygi detto,
ci da essa
il massimo
oscilla tra
ritardo i 20 e inellelaborazione
utilizzato 30 ms. del segnale. In
alternativa si pu pensare allo Sweep Depth come
allampiezza dellLFO.
PARAMETRI

Numero di voci: Tipicamente per implementare un coro


multi-voce si utilizza una singola forma donda che per
assume diverso ritardo, questo significa che in uno stesso
istante di tempo ogni voce in un punto diverso della forma
donda.
CHORUS EFFECT REALIZZAZIONE

Avvalendoci del supporto Matlab, abbiamo accuratamente


definito la specifica del progetto e grazie ad una serie di
Come in precedenza
simulazioni detto bastano
iterative abbiamo due voci
attribuito per ricreare
ai parametri il
i valori
Chorus Effect,
che meglio nella nostra
assolvono particolare
i nostri scopi. implementazione
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
dudito!!!
una sola chitarra?

Se si, vuol dire che c un problema


SIMULAZIONE

Il seguente grafico illustra la differenza tra il suono in


ingresso e luscita 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 linput e loutput della scheda DSK abbiamo


Per prelevare
utilizzato i campioni
la porta McBSP: dalla scheda audio
uninterfaccia stato
seriale che pu
configurato l'interrupt HWI9, questo interrupt viene
trasferire un dato da e per la memoria con luso del DMA
generato ogniinterrupts
o attraverso qual voltaalla
disponibile
CPU in ingresso sulla
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 pi semplice poich richiede il solo
Per la generazione dei ritardi stato necessario creare un
utilizzo di una AND logica col valore 255 sull'indice di accesso
buffer circolare di 256 campioni

delayed_sample = (CHORUS_GAIN*input_buf[(input_idx-samples_delay) & 255]);


IMPLEMENTAZIONE

Limplementazione prevede 3 voci ritardate sovrapposte


Il ritardo viene realizzato spostandosi allindietro nel
all'ingresso corrente.
buffer di un 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

CHORUS EFFECT
FINE
195000713

LaMonica Michele

195001051

Sviluppo di Software per lAcquisizione e lElaborazione


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