---
title: "RACK-02: qué hay debajo del generador de techno"
slug: rack-02-generador-algoritmico-de-loops
kind: essay
summary: "Auditoría técnica de RACK-02: cómo una semilla y reglas de probabilidad generan loops de techno reproducibles con un motor de síntesis modular en el navegador."
publishedAt: 2026-08-26
---
Llevo un rato dándole a REROLL en [RACK-02](https://ssx360.github.io/rack-02/rack.html)
y cada semilla nueva suena a techno de verdad —no a ruido aleatorio con
bombo debajo—. Eso, en una pestaña del navegador, sin instalar nada, es lo
que me ha hecho sentarme a escribir esto. No es una reseña de producto. Es
una pequeña auditoría: qué hay debajo de una herramienta así, 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 construido con la
[Web Audio API](/concepto/web-audio-api), sin backend: todo el procesamiento
de señal ocurre en el propio navegador. Tiene ficha propia en
[/concepto/rack-02](/concepto/rack-02).

Su decisión de diseño más visible es que imita, a propósito, un rack
modular Eurorack físico. Los paneles se miden en **HP** (*Horizontal
Pitch*), la unidad real con la que se mide el ancho de un módulo Eurorack en
el mundo físico. No es solo estética: cada bloque de la interfaz —Kick,
Bassline, Hats, el PATCHBAY de modulación— ocupa su hueco en el rack como
ocuparía espacio un módulo real atornillado a una caja. Quien haya cableado
un sistema modular reconoce el vocabulario al instante; quien no, lo
aprende viendo cómo se conectan las piezas en pantalla.

## Control: arrancar, revolver, mutar

Los controles principales son pocos y directos:

- **RUN** arranca la reproducción.
- **REROLL** genera una semilla nueva: 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 morph 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— es, en esencia, un flujo de composición asistida
por reglas: no compones nota a nota, compones el espacio de posibilidades
del que sale el resultado.

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

RACK-02 no es solo un secuenciador con una caja de ritmos detrás. Trae una
cadena de síntesis con roles bien definidos, todos observables en la propia
interfaz:

| Módulo | Función |
|---|---|
| Kick | Bombo, cabeza de la cadena rítmica |
| Rumble | Bordón grave alimentado desde el kick, filtrado y comprimido en *duck* contra él |
| Bassline | Línea de bajo con root, escala, modo de movimiento y forma de oscilador seleccionables (por ejemplo D#, Phrygian, Walking, Pulse-PWM) |
| Hats | Hi-hats |
| Clap | Palmada |
| Perc | Percusión auxiliar |
| Tom | Tom |
| Stab | Golpe armónico corto |
| Drone | Par de osciladores desafinados en continuo, con filtro lento |
| Air | Banda de ruido resonante para *room tone* y risers |
| Vox | Entrada 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 |
| Grain | Granulador |

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. Un secuenciador de pasos clásico es
una rejilla on/off: el paso suena o no suena, siempre igual, vuelta tras
vuelta. RACK-02 no funciona así. Cada paso tiene dos parámetros propios:

- **PROB**: probabilidad de disparo. Un paso con PROB al 60% suena
  aproximadamente seis de cada diez vueltas, no todas.
- **ROTATE**: desplazamiento del patrón completo, que reordena qué paso cae
  dónde sin tocar los valores de PROB de cada uno.

El resultado es un sistema generativo con dos capas: la semilla fija el
espacio de posibilidades —qué escala, qué densidad, qué relación entre
módulos— y la probabilidad decide, dentro de ese espacio, qué suena en cada
vuelta concreta. Por eso REROLL no suena a ruido: cambia la semilla, no las
reglas. Y por eso dos loops de la misma semilla no sue­nan exactamente
igual nota por nota, pero sí suenan reconociblemente del mismo linaje.

Esta misma idea —reglas + semilla en vez de aleatoriedad pura o secuencia
fija— es trasladable fuera del navegador. Un generador equivalente en
Python con `random.seed()` fijo y una tabla de probabilidad por paso
produciría el mismo tipo de comportamiento: reproducible si se fija la
semilla, variado si no. La pieza conceptual es la misma que sostiene
cualquier sistema de composición algorítmica basado en reglas: no se genera
música al azar, se genera dentro de restricciones que ya llevan intención
musical incorporada.

## PATCHBAY y CROSS-MOD: modulación de verdad

Lo siguiente que separa a RACK-02 de un simple paso a paso es el
**PATCHBAY**: una matriz de modulación por CV con cuatro LFOs —formas
rampa, cuadrada, sample & hold y sierra— que se enrutan a parámetros
concretos de otros módulos. En mis pruebas he visto rutas como `hat.tone`,
`vox.ringhz`, `fx.plate` o `perc.tone`, cada una con su propia cantidad y su
propio periodo medido en bares (4, 8 o 16). Es exactamente el vocabulario
de un sistema modular físico —salida de CV de un módulo, entrada de CV de
otro— implementado en software, sin cables de por medio.

**CROSS-MOD** va un paso más allá: modulación cruzada a **frecuencia de
audio**, no a la velocidad lenta de un LFO. La ruta que he observado es
«Bass pitch (FM)», con controles de Depth, Ratio, Fine y forma de onda
(Shape). Esto es FM real —modulación de frecuencia clásica, la misma
familia técnica que hizo históricamente el DX7—, aplicada aquí sobre el
propio bajo del rack.

## GRAIN: granular con feedback sobre la propia salida

El módulo GRAIN resamplea la salida del propio rack en bucle de feedback.
La propia interfaz lo describe así: «grains are cut from the rack's own
output a moment ago, then thrown back pitched and scattered». Es síntesis
granular aplicada no sobre una muestra externa cargada por el usuario, sino
sobre lo que el rack está sonando en ese mismo instante, trocizado,
repitchado y disperso de vuelta a la mezcla.

## Render determinista y reproducible

Cada bounce de RACK-02 lleva una semilla visible —he visto valores como
`84149`— y es determinista: la misma semilla produce siempre el mismo
resultado. La propia herramienta lo declara sin rodeos: «every bounce here
is seeded and reproducible; verification is what we do for critical
systems». 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: «Arm, then move any knob while the rack runs. The move is
written to a 4-bar lane, loops from then on, and is baked into every
bounce». Es captura de gesto en tiempo real sobre una lane de cuatro
compases, no automatización dibujada punto a punto en una rejilla. La
diferencia importa: un gesto capturado en vivo tiene la irregularidad
humana que una curva dibujada a mano 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**, vía BOUNCE, en formato loop, stems o song/kit completo.
- **MIDI**, con EXPORT MIDI, lo que permite llevar los patrones generados a
  cualquier DAW o instrumento compatible con el
  [protocolo estándar](/blog/que-es-midi) de intercambio de eventos
  musicales.
- **Patches en JSON**, con PATCH state: el estado completo del rack
  serializado, reproducible y versionable como cualquier otro archivo de
  texto.

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](/blog/opendaw-daw-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

- SSX360. *RACK-02*. [https://ssx360.github.io/rack-02/rack.html](https://ssx360.github.io/rack-02/rack.html)
- MDN Web Docs. [*Web Audio API*](https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API). Mozilla Foundation.
- MIDI Association. [*MIDI 1.0 Specification*](https://midi.org/midi-1-0). MIDI Manufacturers Association.
