Ho fatto un po 'di ricerche su questo sito ma, sorprendentemente, non ho trovato molte informazioni rilevanti e la mia conoscenza di DSP è molto limitata.
Il mio obiettivo è abbastanza semplice: voglio programmare un riverbero algoritmico in C ++ che suona davvero bene. O più esattamente, l'opzione migliore sarebbe quella di consentire all'utente finale di scegliere il compromesso tra qualità e utilizzo della cpu.
Da quello che ho scoperto finora è che, per creare un riverbero, è necessario alimentare il segnale dry in un algoritmo di riflessioni iniziali, quindi in un algoritmo di riflessioni tardive. È corretto ?
Ora, ho trovato un ampio articolo sulla parte delle riflessioni tardive, utilizzando Feedback Delay Network ( RIDUZIONE DEI REQUISITI DI REVERBERAZIONE ARTIFICIALE UTILIZZANDO LE RETI DI RITARDO DI FEEDBACK A TEMPO VARIANTE ). Da quello che ho letto, FDN è un modo di alta qualità, non troppo espansivo (cpu saggio) di simulare le riflessioni tardive. Inoltre, immagino che tu possa controllare il trade-off di addebiti qualità / cpu modificando il numero di linee di ritardo.
Tuttavia non ho assolutamente idea di come programmare l'algo delle prime riflessioni (ricordi? Sono davvero ignorante nel dominio DSP).
Mi sembrerebbe logico usare una sorta di multi delay, che ha il vantaggio di essere facile da programmare e computazionalmente economico. Ma sembra troppo semplice per essere vero.
Inoltre, il mio istinto mi dice che uno o più filtri devono essere inclusi da qualche parte nel percorso del segnale.
Qualcuno potrebbe chiarire un po 'questo argomento per me?
Due note:
- Non sto affatto cercando un riverbero di convoluzione. Non mi interessa davvero il realismo del riverbero, ma invece voglio un buon suono, ottimizzabile, non un riverbero affamato di CPU.
- Inoltre, la parte di codifica non è ciò che mi preoccupa, altrimenti chiederei su StackOverflow. È davvero la parte DSP, e proprio quella parte, che sto cercando :)