El algoritmo de síntesis de cuerdas de Karplus-Strong es un método de síntesis de sonido que consiste en pasar una señal corta a través de una línea de retardo con un filtro. Dependiendo de los parámetros, el sonido resultante puede ser similar al sonido de una cuerda, extraído por una púa o golpeando , o a los sonidos de algunos instrumentos de percusión .
Esta técnica se puede considerar como una síntesis granular sustractiva de línea de retroalimentación , similar a un filtro de peine para el análisis de transformada z . También se puede considerar como el caso más simple de síntesis de ondas , ya que la línea de retardo actúa como almacenamiento durante un período de la señal.
Alexander Strong inventó el algoritmo y Kevin Karplus fue el primero en analizar su funcionamiento. Juntos desarrollaron implementaciones de software y hardware del algoritmo, incluida una implementación en VLSI . Llamaron al algoritmo "Digitar" ( un juego de palabras de la guitarra digital inglesa - guitarra digital).
La frecuencia fundamental (más precisamente, el armónico distinto de cero más bajo) de la señal recibida es la frecuencia más baja a la que la respuesta de barrido de la fase de retardo y el filtro en la etapa es igual a . El retardo de fase requerido D para un tono dado F 0 se calcula mediante la fórmula D = F s / F 0 , donde F s es la frecuencia de muestreo .
La longitud de cualquier línea de retardo digital es un múltiplo entero del período de muestreo. Para obtener un retardo fraccionario se utilizan filtros de interpolación con parámetros correspondientes al retardo de fase a la frecuencia fundamental seleccionada. Se pueden usar filtros IIR o FIR ; sin embargo, el filtro FIR tiene la ventaja de que se suprime el ruido transitorio si el retardo fraccional cambia con el tiempo. La forma fraccionaria más sencilla de calcular el retardo fraccionario es interpolar linealmente dos muestras (por ejemplo , s (4,2) = 0,8 s (4) + 0,2 s (5)). Si el retardo de fase cambia con la frecuencia, los armónicos se pueden aumentar o atenuar desde la frecuencia fundamental. El algoritmo original usaba el promedio de dos muestras consecutivas, lo que permitía implementar el filtro usando solo la suma y el desplazamiento de bits, lo que hacía que la implementación fuera muy eficiente.
El trabajo original de 1983 señala que el análisis de transformada Z puede obtener frecuencias y tiempos de caída de armónicos con mayor precisión.
El resultado del algoritmo Karplus-Strong se puede escuchar en el archivo de audio adjunto. El algoritmo utiliza una ganancia de 0,98 con suavizado de frecuencia sucesivo por un filtro de paso bajo de primer orden. Suena la nota para la segunda octava , 220 Hz .
Karplus-Fuerte #1 | |
F1 = 220 Hz | |
Ayuda de reproducción |
Un período constante (es decir, la longitud de la línea de retardo) produce un sonido similar al de una cuerda o una campana. Un fuerte aumento en el período inmediatamente posterior al inicio de la señal produce sonidos similares a los de un tambor.
Alex Strong y Kevin Karplus se dieron cuenta de que el algoritmo es físicamente análogo a registrar la desviación de una cuerda en un punto fijo a lo largo del tiempo, y el filtro caracteriza la pérdida de energía de la cuerda en un período. Julius O. Smith [1] y otros investigadores generalizaron la idea del algoritmo al método de la guía de onda digital , que también se puede aplicar a la síntesis de instrumentos de viento y de membrana. El primer conjunto de extensiones y generalizaciones se presentó en un artículo de 1982 en la Conferencia Internacional de Música por Computadora en Venecia, y se publicó con adiciones en 1983 en Computer Music Magazine, en el artículo "Extensiones del algoritmo de cuerda pulsada fuerte de Karplus", de David Jaffe. y Julius O. Smith [1] .
Alex Strong ha creado una modificación más avanzada utilizando tablas de ondas para sintetizar instrumentos punteados, publicada como patente.
Métodos de síntesis de sonido | |
---|---|
Síntesis muestreada |
|
Modelado de sonido físico |
|