...

Effetto coro (Presentazione) - lesim

by user

on
Category: Documents
17

views

Report

Comments

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
Fly UP