Algoritmo di Karplus-Strong

Versione del 24 nov 2007 alle 17:07 di Tappoz (discussione | contributi) (creazione pagina+cat+interwiki)
(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)

L'algoritmo di Karplus-Strong è un metodo usato nel campo dell'audio che manipola una forma d'onda attraverso una linea di delay con dei filtri per simulare suoni di corde plettrate (chitarra) o soggette a percussione (pianoforte). È una tecnica di sintesi sottrattiva basata sulla retroazione (feedback loop) simile a quella di un comb filter.

Come funziona

  • viene generata una breve forma d'onda (di lunghezza di L campioni) di eccitazione. Nell'algoritmo originale era un rumore bianco, ma può essere qualsiasi segnale a banda estesa.
  • questa eccitazione è portata in output e simultaneamente in retroazione in una catena di ritardi (delay line) lunga L campioni.
  • l'uscita della catena di ritardi è portata ad un filtro. Il guadagno del filtro deve essere minore di 1 a tutte le frequenze. Di solito si tratta di un filtro passa basso del primo ordine.
  • l'output filtrato è simultaneamente mixato in output e all'indietro in retroazione nella catena dei ritardi.

Accordatura della corda

Il delay richiesto D per una frequenza fondamentale data F1 è calcolato in base alla formula D = Fs/F1 dove Fs è la frequenza di campionamento. La lunghezza della delay line è un numero multiplo del periodo di campionamento. Per ottenere un ritardo (delay) frazionario si usano dei filtri di interpolazione. Possono essere usati sia filtri di tipo FIR sia di tipo IIR. Con i filtri FIR si ha il vantaggio che i transitori si concludono in un nemero finito di passi.

Mantenendo il periodo (= lunghezza della linea di ritardi) constante si ottiengono vibrazioni simili a quelle di una corda o una campana. Aumentando il periodo velocemente subito dopo il transitorio si producono suoni di tipo percussivo (tamburi).

Evoluzioni dall'originale formulazione

Julius O. Smith III ed altri hanno osservato che l'algoritmo di Karplus-Strong era analogo dal punto di vista fisico all'approccio a guida d'onda di un segnale. La retroazione rappresentava la perdita totale di un'onda (prodotta ad esempio da una corda) in un periodo. Grazie a questa intuizione è possibile modellare a onde acustiche perché l'algoritmo di Karplus-Strong è strutturalmente identico ai più semplici modelli a guida d'onda.

Note

  • Kevin Karplus, Alex Strong, Digital Synthesis of Plucked String and Drum Timbres, in Computer Music Journal, vol. 7, n. 2, MIT Press, 1983, pp. 43-55.
  • David A. Jaffe, Julius O. Smith, Extensions of the Karplus-Strong Plucked String Algorithm, in Computer Music Journal, vol. 7, n. 2, MIT Press, 1983, pp. 56-69.
  • Moore, F. Richard. Elements of Computer Music. Upper Saddle River: Prentice-Hall, 1990. ISBN 0-13-252552-6.