Tever
ES

Ensayo · Informática Musical

RACK-02: qué hay debajo del generador de techno

¿Cómo puede un programa 'inventar' un ritmo de techno distinto cada vez y que siga sonando bien? RACK-02 lo hace en el navegador, sin instalar nada. Aquí cuento cómo, sin magia ni IA: reglas, probabilidad y una semilla.

Interfaz de RACK-02 sobre fondo oscuro con overlays técnicos en rojo —forma de onda, espectro de frecuencias y pseudocódigo de generación por probabilidad—, mostrando los módulos Clock, Scenes, Perform, Kick, Rumble, Bassline, Hats y Clap del rack modular

¿Cómo puede un programa “inventar” un ritmo de techno distinto cada vez y que siga sonando bien, en vez de convertirse en ruido? Llevo un rato dándole al botón REROLL de RACK-02 y cada semilla nueva suena a techno de verdad. Eso, en una pestaña del navegador, sin instalar nada, es lo que me ha hecho sentarme a escribir esto.

La respuesta corta, para no hacerte esperar: no hay IA generativa ni magia detrás. Hay reglas de composición, probabilidad y un número —la semilla— que decide, dentro de esas reglas, qué suena. Este texto es una pequeña auditoría de cómo funciona eso por dentro, con qué piezas se podría construir algo parecido, y por qué encaja con lo que ya vengo explorando en este cuaderno sobre motores de audio que viven enteros en el navegador.

Es obra de un desarrollador que se identifica como SSX360. No sé quién es más allá de ese alias, y no voy a especular —lo trato como lo que es: un nick, no una biografía.

Qué es RACK-02

RACK-02 es un generador algorítmico de loops de techno. “Algorítmico” significa que no toca ni reproduce audio grabado: cada sonido lo calcula en el momento, según unas reglas, usando la Web Audio API —el conjunto de herramientas de audio que ya trae el navegador de serie, sin necesidad de instalar ningún programa ni tener un servidor detrás—. Todo el procesamiento de sonido ocurre en tu propio ordenador, dentro de la pestaña. Tiene ficha propia en /concepto/rack-02.

Su decisión de diseño más llamativa es que imita, a propósito, un sintetizador modular físico —esas cajas llenas de módulos con cables de colores que ves en estudios y conciertos de música electrónica—. En ese mundo físico, cada pieza se llama “módulo”, cada módulo hace una sola cosa (generar un bombo, filtrar una señal, modular otro módulo…), y se conectan entre sí con cables para construir el sonido final. El estándar más popular de estos sistemas se llama Eurorack, y sus módulos se miden en una unidad llamada HP (Horizontal Pitch). RACK-02 recrea esa lógica en pantalla: cada bloque de la interfaz —el bombo, el bajo, los hi-hats, la matriz de modulación— ocupa su hueco como ocuparía espacio un módulo real atornillado a una caja. No es solo estética: es la misma forma de pensar el sonido por piezas conectadas.

Control: arrancar, revolver, mutar

Los controles principales son pocos y directos:

  • RUN arranca la reproducción.
  • REROLL genera una semilla nueva —un número de partida distinto—: el loop cambia por completo.
  • MUTATE varía sobre la semilla actual, sin cambiar de raíz.
  • SCENES ofrece cuatro slots —A, B, C, D— encadenables con CHAIN, cada uno con su propia longitud y su propio modo de transición entre escenas.
  • PERFORM añade pads pensados para tocar en vivo: Fill, Drop, Stutter, Freeze.

Esa combinación —REROLL para explorar, MUTATE para refinar, SCENES para estructurar una progresión— no es componer nota a nota, como harías con un piano o un editor de partituras. Es componer el conjunto de reglas del que va a salir la música: tú defines el terreno de juego, y el programa decide, dentro de él, qué suena en cada momento.

Los módulos: una cadena de síntesis techno completa

RACK-02 no es solo un secuenciador con una caja de ritmos detrás —el equivalente digital a una batería electrónica con patrones grabados—. Trae una cadena completa de generadores de sonido, cada uno con un papel concreto en la mezcla final, todos observables en la propia interfaz:

MóduloFunción
KickBombo, cabeza de la cadena rítmica
RumbleBordón grave alimentado desde el kick, filtrado y comprimido en duck contra él
BasslineLínea de bajo con root, escala, modo de movimiento y forma de oscilador seleccionables (por ejemplo D#, Phrygian, Walking, Pulse-PWM)
HatsHi-hats
ClapPalmada
PercPercusión auxiliar
TomTom
StabGolpe armónico corto
DronePar de osciladores desafinados en continuo, con filtro lento
AirBanda de ruido resonante para room tone y risers
VoxEntrada de voz en directo —cantar, hablar o enviar una línea de audio— procesada por la misma cadena de plate reverb, delay y duck que el resto de módulos, no como canal aparte
GrainGranulador

Ese último dato sobre Vox me parece revelador del enfoque del proyecto: no trata la voz como un añadido especial con su propia cadena de efectos, la integra en el mismo bus de procesamiento que ya usan Kick, Clap o Stab. Es una decisión de arquitectura, no un detalle cosmético.

Secuenciación probabilística, no patrones fijos

Aquí está el núcleo técnico del post, y también la respuesta a la pregunta del principio. Una caja de ritmos clásica funciona con una rejilla de casillas: cada casilla está encendida o apagada, y suena exactamente igual vuelta tras vuelta. RACK-02 no funciona así. Cada paso de cada instrumento tiene dos números propios que tú puedes ajustar:

  • PROB (probabilidad): la posibilidad de que ese paso suene en cada vuelta. Un paso con PROB al 60% suena aproximadamente seis de cada diez veces, no todas —como tirar un dado cargado en vez de decidir sí o no de antemano.
  • ROTATE: desplaza el patrón completo, cambiando qué paso cae dónde sin tocar los valores de PROB de cada uno.

Aquí está la clave de todo: la semilla no genera el sonido directamente, genera las condiciones del sorteo. Fija qué escala se usa, cuántos instrumentos suenan, cómo se relacionan entre sí —el “terreno de juego”—. Dentro de ese terreno, la probabilidad decide, tirada tras tirada, qué suena en cada vuelta concreta. Por eso REROLL no convierte la música en ruido: cambia la semilla —el terreno—, no las reglas del juego. Y por eso dos loops de la misma semilla no suenan exactamente igual nota por nota, pero sí suenan reconociblemente de la misma familia: la moneda al aire cambia, la mano que la lanza no.

Esta misma idea —reglas + semilla en vez de aleatoriedad pura o secuencia fija— es trasladable fuera del navegador, y no es exclusiva de la música: es la misma lógica detrás de la generación procedural de mundos en videojuegos, por ejemplo. Un programa equivalente en Python con random.seed() fijo y una tabla de probabilidad por paso produciría el mismo comportamiento: reproducible si se fija la semilla, variado si no. No se genera música al azar puro —eso sonaría a ruido, no a techno—; se genera dentro de unas restricciones que ya llevan intención musical incorporada de fábrica.

PATCHBAY y CROSS-MOD: modulación de verdad

Lo siguiente que separa a RACK-02 de un simple paso a paso es el PATCHBAY: en un sintetizador modular físico, “modular” un parámetro significa usar una señal para controlar otra automáticamente —por ejemplo, que el volumen de un sonido suba y baje solo, siguiendo un patrón, en vez de tener que moverlo a mano—. El PATCHBAY de RACK-02 hace eso mismo con cuatro generadores de esas señales de control (con formas de onda distintas —rampa, cuadrada, aleatoria escalonada y sierra—, cada una con su propio carácter de movimiento) enrutados a parámetros concretos de otros módulos. En mis pruebas he visto rutas como “tono de los hi-hats”, “anillo de la voz” o “reverb”, cada una con su propia intensidad y su propio periodo medido en compases (4, 8 o 16). Es el mismo vocabulario de un sistema modular físico —cables de control que salen de un módulo y entran en otro— implementado en software, sin cables de por medio.

CROSS-MOD va un paso más allá: en vez de modular a la velocidad lenta de esos generadores de control (algo que se nota como un movimiento), aquí la modulación ocurre a la misma velocidad que el propio sonido audible —lo que en la práctica cambia el timbre del sonido, no solo su volumen o su filtro—. La ruta que he observado es sobre el tono del bajo, con controles de profundidad, proporción y forma de onda. Es FM (modulación de frecuencia) de verdad: la misma técnica de síntesis, ya clásica, que hizo famosa la Yamaha DX7 en los años 80, aplicada aquí sobre el propio bajo del rack.

GRAIN: granular con feedback sobre la propia salida

El módulo GRAIN aplica síntesis granular: en vez de tocar un sonido entero, lo trocea en fragmentos diminutos —“granos” de pocos milisegundos— y los recompone, cambiándoles el tono o el orden, para crear una textura nueva a partir del original. Lo interesante de RACK-02 es de dónde saca esos granos: no de una muestra externa que tú cargas, sino de lo que el propio rack está sonando en ese mismo instante. La propia interfaz lo describe así: “los granos se cortan de la salida del propio rack hace un instante, y se devuelven repitchados y dispersos”. Es la máquina escuchándose a sí misma y reciclando su propio sonido en bucle.

Render determinista y reproducible

Cada vez que exportas el resultado a un fichero de audio (“hacer bounce”, en la jerga del gremio, es volcar lo que suena en tiempo real a un archivo), RACK-02 muestra la semilla usada —he visto valores como 84149— y el proceso es determinista: la misma semilla produce siempre el mismo resultado exacto, nota por nota. La propia herramienta lo declara sin rodeos: “cada exportación aquí lleva su semilla y es reproducible; la verificación es lo que hacemos con los sistemas críticos”. Es una frase que, viniendo de mi trabajo diario con sistemas que necesito poder verificar y reproducir, valoro más de lo que valoraría un efecto sonoro nuevo. La generación algorítmica sin semilla reproducible es difícil de depurar, difícil de compartir y difícil de citar. Con semilla, un loop concreto es un dato, no una anécdota.

AUTOMATION: capturar el gesto, no solo programarlo

RACK-02 permite armar una automatización y mover cualquier mando mientras el rack suena: “arma el modo, y luego mueve cualquier control mientras el rack está sonando; el movimiento se graba en una pista de cuatro compases, se repite desde ahí en adelante, y queda incorporado en cada exportación”. Es captura de gesto en tiempo real, no automatización dibujada punto a punto con el ratón sobre una rejilla. La diferencia importa: un gesto capturado en vivo —la mano moviendo un mando— tiene la irregularidad humana que una curva dibujada a mano con precisión rara vez reproduce igual de bien.

Exportación: audio, MIDI y estado

RACK-02 no se queda encerrado en la pestaña del navegador. Exporta:

  • Audio: el resultado ya mezclado, en formato loop, por pistas separadas o como canción/kit completo.
  • MIDI: no el audio en sí, sino las notas y eventos que lo generaron, en el protocolo estándar que entiende prácticamente cualquier programa o instrumento de música por ordenador (un DAW, Digital Audio Workstation, es justo eso: el programa donde se graba, edita y mezcla música). Así puedes llevarte los patrones generados a otra herramienta y seguir trabajando con ellos.
  • El estado completo del rack en un archivo: todos los ajustes guardados en un formato de texto reproducible y versionable, como cualquier otro archivo de datos.

El MIXER, con mute y solo por canal —Kick, Rumble, Clap, Hats, Perc, Tom, Bass, Stab y el resto—, cierra el flujo de trabajo con el control de mezcla que se espera de cualquier motor de audio serio, no solo de un juguete generativo.

La misma línea que openDAW, un paso más allá

Ya escribí sobre openDAW: un DAW de código abierto que vive en el navegador, un DAW completo construido sobre la Web Audio API, sin backend, sin registro. RACK-02 pertenece al mismo territorio de investigación que aquel post: qué es posible construir con audio en tiempo real usando solo lo que el navegador ya ofrece de serie, sin servidor detrás.

La diferencia es de enfoque, no de territorio. openDAW replica la arquitectura de un DAW generalista: pistas, plugins, mezcla. RACK-02 va más estrecho y más profundo en una dirección concreta —síntesis modular tipo Eurorack, generación algorítmica con semilla, modulación cruzada a frecuencia de audio, granular con feedback sobre la propia salida—, todo ello con el mismo motor de base: la Web Audio API corriendo íntegramente en el cliente. Dos casos distintos de la misma pregunta: cuánto de un estudio de producción profesional cabe hoy en una pestaña del navegador, sin instalar nada.

Bibliografía

Preguntas frecuentes

  • ¿Cómo genera RACK-02 un loop de techno distinto en cada REROLL?

    Cada paso del secuenciador de RACK-02 tiene un valor de PROB —la probabilidad de que ese paso suene en cada vuelta— y de ROTATE —el desplazamiento del patrón completo—. REROLL genera una semilla nueva que fija un espacio de posibilidades distinto para esos valores; MUTATE varía dentro de la semilla actual sin cambiar de raíz. El resultado no es aleatoriedad pura ni un patrón fijo repetido: es un sistema generativo reproducible por semilla, igual que describo en RACK-02: qué hay debajo del generador de techno.

  • ¿Necesito instalar algo para usar RACK-02?

    No. RACK-02 se abre directamente en ssx360.github.io/rack-02/rack.html y todo el procesamiento de audio —síntesis, secuenciación, modulación— ocurre en el propio navegador con la Web Audio API, sin servidor detrás. El resultado se exporta con BOUNCE a audio (loop, stems o song/kit), con EXPORT MIDI a MIDI, o como patch en JSON con el estado completo del rack. Lo describo con más detalle en RACK-02: qué hay debajo del generador de techno.

  • ¿En qué se diferencia RACK-02 de openDAW?

    Ambos corren íntegramente en el navegador con la Web Audio API y sin backend, pero apuntan a objetivos distintos. openDAW replica la arquitectura de un DAW generalista: pistas, plugins, mezcla. RACK-02 va más estrecho y más profundo en una dirección concreta: síntesis modular inspirada en un rack Eurorack físico, secuenciación probabilística con semilla reproducible, modulación cruzada a frecuencia de audio y granular con feedback. Son dos casos del mismo territorio de investigación: cuánto de un estudio de producción cabe hoy en una pestaña del navegador. Lo desarrollo en RACK-02: qué hay debajo del generador de techno.