Aprende el Algoritmo Karplus-Strong
Desde cero, paso a paso. No necesitas saber nada de programación ni de música.
Contenido
1. ¿Qué vamos a hacer?
Imagina que pulsas una cuerda de guitarra. Escuchas un sonido que empieza fuerte y poco a poco se apaga. ¿Cómo podríamos recrear ese sonido con una computadora?
En 1983, Kevin Karplus y Alex Strong descubrieron un truco genial: si tomas un pequeño trozo de ruido aleatorio y lo pasas una y otra vez por un filtro que lo suaviza, el resultado suena como una cuerda pulsada.
Este algoritmo todavía se usa hoy en sintetizadores, audio de videojuegos y software de producción musical. Es uno de los ejemplos más simples de síntesis por modelado físico — usar matemáticas para simular cómo se comporta un objeto físico real (una cuerda).
En las siguientes secciones, construiremos el algoritmo pieza por pieza. Al final, entenderás cada parte y podrás crear tus propios sonidos de instrumentos.
El proceso tiene 3 pasos:
Paso 1: Ruido
Generar un pequeño trozo de números aleatorios (como estática de TV)
Paso 2: Repetir
Repetir ese trozo en un bucle circular
Paso 3: Suavizar
Cada vez que pasa por el bucle, promediar cada muestra con la siguiente
2. El ruido: la materia prima
Todo empieza con ruido — números aleatorios. Piensa en la estática de una TV vieja, o el sonido "shhh" entre estaciones de radio. Eso es ruido blanco: valores al azar que suben y bajan sin patrón.
¿Por qué se llama ruido "blanco"? Así como la luz blanca contiene todos los colores mezclados, el ruido blanco contiene todas las frecuencias de sonido mezcladas. Es el "todo a la vez" del sonido.
En una computadora, representamos el sonido como una lista de números. Cada número le dice al parlante qué tanto empujar el aire en ese instante. Números positivos empujan el parlante hacia afuera, números negativos lo jalan hacia adentro. Números aleatorios = empujones aleatorios = ruido.
A nuestro algoritmo le damos un trozo pequeño de este ruido. ¿Qué tan pequeño? Eso depende de la nota que queremos tocar (lo veremos en la siguiente sección).
El gráfico de arriba muestra el ruido: cada punto es un número aleatorio entre -1 y 1. No tiene forma, no tiene patrón. Pero es exactamente lo que necesitamos como punto de partida.
Quizás te preguntes: ¿cómo puede el ruido aleatorio convertirse en una nota musical? El secreto está en CUÁNTO ruido usamos. Un trozo corto de ruido se convertirá en una nota aguda, y un trozo más largo se convertirá en una nota grave. Veamos por qué.
3. Frecuencia y sonido digital
3a. ¿Qué es una onda?
Cuando tocas una cuerda, el aire vibra. Esas vibraciones son ondas. Mientras más rápido vibra, más agudo es el sonido.
Piensa en dejar caer una piedra en el agua. Las ondas se expanden — crestas y valles alternándose. El sonido funciona igual, pero en vez de agua, son moléculas de aire empujándose de un lado a otro. Cuando esas ondas de aire llegan a tu oído, tu cerebro las interpreta como sonido.
Una cuerda gruesa de guitarra vibra lentamente — escuchas un sonido grave y profundo. Una cuerda delgada vibra rápido — escuchas un sonido agudo y brillante. Esta velocidad de vibración es lo que los músicos llaman "tono" o "altura".
La frecuencia mide qué tan rápido vibra algo. Se mide en Hertz (Hz) = vibraciones por segundo. Mira esta onda pura:
Una nota LA (440 Hz) vibra 440 veces por segundo. Una nota grave (110 Hz) vibra solo 110 veces. ¡Mueve el slider y mira cómo cambia la onda!
3b. De analógico a digital
Una onda de sonido real es continua, fluye sin pausas. Pero una computadora no puede guardar algo continuo — necesita números.
La solución: tomar instantáneas (muestras) de la onda miles de veces por segundo. Es como tomar fotos de algo que se mueve rápido.
¿Por qué exactamente 44,100? El oído humano puede escuchar frecuencias hasta unos 20,000 Hz. Una regla matemática llamada el teorema de Nyquist dice que necesitamos al menos el DOBLE de muestras por segundo para capturar el sonido con precisión. 2 × 20,000 = 40,000, más un poco de margen = 44,100. Esta es la misma tasa de muestreo que usan los CDs y la mayoría del audio digital.
Usamos 44,100 muestras por segundo. ¡Suficientes para capturar el sonido perfectamente! Los puntos naranjas muestran cada muestra:
3c. El truco de Karplus-Strong
Ahora que entiendes Hz y muestras, viene el truco mágico de Karplus-Strong:
La longitud del trozo de ruido determina la frecuencia. Si queremos una nota de 440 Hz:
$$N = \frac{f_s}{f_0} = \frac{44100}{440} = 100 \text{ muestras}$$Pero, ¿POR QUÉ la longitud del buffer determina la nota? Aquí está la clave: cuando repetimos esas 100 muestras a 44,100 muestras por segundo, el ciclo se completa 44,100 ÷ 100 = 441 veces por segundo. ¡Esa tasa de repetición ES la frecuencia! Un ciclo más corto se repite más rápido (nota aguda), un ciclo más largo se repite más lento (nota grave). Es como un pequeño disco reproduciéndose en bucle — cuanto más corto el disco, más rápido completa el ciclo, más agudo el tono.
¡Solo 100 números aleatorios para crear una nota musical! Mueve el slider para escuchar cómo cambian las notas:
4. El corazón del algoritmo
Ahora viene la magia. Veremos cómo combinar el ruido con un bucle circular y un filtro simple para crear sonidos musicales.
4a. El buffer circular
Tomamos nuestro trozo de ruido y lo ponemos en un bucle circular (como una cinta sin fin). El "cabezal de lectura" recorre las muestras una y otra vez.
Imagina una caja de música con un cilindro que tiene protuberancias. Mientras el cilindro gira, cada protuberancia pulsa un diente del peine, produciendo un sonido. Cuando el cilindro completa una rotación, vuelve a empezar con las mismas protuberancias. Nuestro buffer circular funciona igual — las "protuberancias" son nuestras muestras de ruido, y la "rotación" es el ciclo.
Mira cómo el cabezal (punto rojo) recorre el buffer circular:
Sin filtro, el loop suena como ruido repetido. Pero cuando aplicamos el promediado en cada pasada, algo mágico sucede...
4b. El filtro pasada a pasada
Cada vez que el cabezal recorre el bucle completo, aplicamos un filtro muy simple:
Esto significa: cada muestra se reemplaza por el promedio entre ella y la siguiente. Es como difuminar una imagen — cada pasada suaviza más.
Pero, ¿por qué el simple promediado convierte ruido en música? Piénsalo así: el ruido tiene saltos bruscos — picos agudos subiendo y bajando rápidamente. Cuando promedias cada muestra con su vecina, esos picos se suavizan. Los componentes rápidos y agudos del ruido desaparecen primero, mientras que el patrón lento y grave (determinado por la longitud del buffer) sobrevive. Después de varias pasadas, solo queda el patrón suave en forma de onda — ¡y esa es tu nota musical!
Es como agitar un tazón de arena con piedras y canicas. Los granos pequeños de arena (frecuencias altas) se asientan rápido, las piedras (frecuencias medias) se asientan después, pero las canicas (la frecuencia fundamental de tu nota) siguen rebotando más tiempo.
Mira cómo el ruido se transforma en una onda suave. ¡Escucha en diferentes pasadas para oír cómo emerge el tono!
Después de unas pocas pasadas, ¡el ruido aleatorio se convierte en una nota musical! Pero, ¿cuánto tiempo dura ese sonido?
4c. El decaimiento
El factor de decaimiento controla qué tan rápido se apaga el sonido. Recuerda la fórmula del filtro:
Donde $d$ es el factor de decaimiento. Un valor cercano a 2.0 (el mínimo, promedio puro) produce decaimiento lento. Un valor más alto (2.3, 2.5) pierde más energía en cada pasada y se apaga rápido.
Piénsalo en términos de energía. Cuando dividimos exactamente por 2.0, conservamos TODA la energía (la suma de dos muestras, dividida por dos, preserva el promedio). Pero cuando dividimos por 2.1 o 2.2, perdemos un poco de energía cada vez — como un balde con fugas. Cuanto mayor el divisor, mayor la "fuga", y más rápido el sonido se desvanece al silencio.
¡Esto imita la física real! Una cuerda de guitarra pierde energía por la fricción y la resistencia del aire. Una cuerda de guitarra clásica de nylon (baja fricción) suena por mucho tiempo. Una cuerda corta de banjo (alta fricción) se apaga rápido. El factor de decaimiento nos permite simular estos diferentes materiales.
Compara cómo cambia la forma de onda con diferentes valores de decaimiento:
Decay = 2.00 (Lento)
Decay = 2.10 (Medio)
Decay = 2.20 (Rápido)
5. El espectro: ver dentro del sonido
Hasta ahora hemos visto las ondas en el tiempo (waveforms). Pero hay otra forma de ver el sonido: en el dominio de la frecuencia. Esto nos muestra QUÉ frecuencias componen un sonido.
¿Qué es un "espectro"? Imagina que tienes un prisma que separa la luz blanca en un arcoíris — cada color tiene una frecuencia diferente. Un espectro de frecuencias hace lo mismo con el sonido: te muestra qué "colores" (frecuencias) componen un sonido, y qué tan fuerte es cada uno.
Cuando ves múltiples picos en el espectro, esos se llaman "armónicos". El pico más bajo es la "fundamental" — la nota que realmente escuchas. Los picos más altos son múltiplos de la fundamental (2×, 3×, 4×...) y le dan al sonido su carácter o "timbre". Una flauta tiene pocos armónicos (pura), mientras que una guitarra tiene muchos (rica).
El ruido inicial tiene TODAS las frecuencias por igual (espectro plano). Después del filtrado, solo quedan ciertas frecuencias: la fundamental (la nota que escuchamos) y sus armónicos (múltiplos de la fundamental).
Pasada 0 (ruido): Espectro plano — todas las frecuencias tienen la misma energía.
Pasadas 5-10: Empiezan a emerger picos en la fundamental y armónicos.
Pasadas 20+: Espectro definido — solo quedan las frecuencias de la nota musical.
El filtro Karplus-Strong actúa como un "peine" que solo deja pasar ciertas frecuencias. ¡Por eso el ruido se convierte en una nota!
6. Afinando el sonido: hacia una guitarra real
El algoritmo básico de Karplus-Strong ya suena sorprendentemente bien. Pero podemos hacerlo aún más realista agregando parámetros que simulan propiedades físicas de una cuerda real.
Cada instrumento suena diferente incluso tocando la misma nota — ese "color" único del sonido se llama timbre (se pronuncia "TAM-bre"). Una guitarra y un piano tocando la misma nota LA suenan completamente diferentes por su timbre. Los siguientes parámetros nos permiten moldear el timbre de nuestra cuerda sintetizada.
Posición del punteo
Donde "pellizcan" la cuerda. Cerca del centro (0.5) suena cálido. Cerca del puente (0.1) suena nasal y brillante.
Rigidez de la cuerda
Las cuerdas reales no son perfectamente flexibles. La rigidez desafina ligeramente los armónicos agudos, dando un timbre más orgánico.
Resonancia de la caja
La caja de resonancia de la guitarra amplifica ciertas frecuencias (formantes). Esto da riqueza y profundidad al sonido.
La caja de la guitarra actúa como una cámara de resonancia — amplifica ciertas frecuencias más que otras. Estas frecuencias amplificadas se llaman "formantes". Son lo que le da a una guitarra acústica su sonido cálido y amaderado, en contraste con el tono más delgado de una guitarra eléctrica.
Brillo
Controla cuántas frecuencias agudas se mantienen. Valores bajos suenan apagados (cuerda vieja), valores altos suenan brillantes (cuerda nueva).
Experimenta con diferentes combinaciones. Cada instrumento de cuerda tiene su propia "firma" en estos parámetros.
7. Síntesis completa: todo junto
Ahora combinemos todo. Todos los parámetros que vimos están disponibles. ¡Crea el sonido de tu instrumento ideal!
Ejemplos de instrumentos realistas
Escucha cómo diferentes parámetros crean diferentes instrumentos.
Guitarra Clásica
Cálida y resonante
Guitarra Acústica
Brillante y atácante
Arpa
Cristalina, decae rápido
Bajo Eléctrico
Profundo y punchante
Banjo
Corto y percusivo
Sitar
Exótico y resonante
Felicidades — acabas de sintetizar el sonido de una cuerda pulsada usando solo matemáticas. Este es el mismo principio que usan los sintetizadores profesionales. ¡Ahora ve a la sección Componer para crear tu propia música!
¿Listo para hacer música? Ve a la página Componer para crear melodías usando todo lo que aprendiste. Puedes colocar notas en una cuadrícula de piano roll y escucharlas tocadas con el algoritmo Karplus-Strong. Prueba diferentes valores de decaimiento y configuraciones de BPM para crear tu sonido perfecto.
¿Quieres profundizar más? El algoritmo Karplus-Strong es solo el comienzo de la síntesis por modelado físico. Los mismos principios — líneas de retardo, filtros y retroalimentación — se usan para simular tambores, instrumentos de viento, e incluso cuerdas vocales.