Algoritmo Karplus-Strong

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).

Cómo funciona

  1. Se genera una señal corta (L muestras largas). El algoritmo original usaba una señal de ruido blanco corta , sin embargo, se puede usar cualquier señal de banda ancha como un chirrido , un diente de sierra o un período de onda cuadrada .
  2. La señal se alimenta simultáneamente a la salida y entrada de la línea de retardo con una longitud de L cuentas.
  3. La salida de la línea de retardo pasa a través de un filtro de audio . Para mantener una retroalimentación positiva estable , la ganancia del filtro debe ser estrictamente menor que 1 para todas las frecuencias. Como filtro, se puede utilizar un filtro de paso bajo de un solo polo ( como en la imagen). En el algoritmo original, el filtro consistía en un promediador de dos muestras adyacentes, ya que dicho filtro le permite prescindir de un multiplicador y usar solo operaciones de suma y cambio de bits . Las características del filtro son decisivas para la estructura armónica de la señal amortiguada.
  4. La salida del filtro se mezcla simultáneamente con la salida y se envía a la entrada de la línea de retardo.

Afinación de cuerdas

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.

Mejoras en el algoritmo

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.

Notas

  1. Jaffe y Smith, 1983 .

Literatura

Enlaces