El motor de audio de este sitio
La mayor parte de la música del sitio se programa en vivo con Strudel — sintetizada en tu navegador, en cada visita, con la Web Audio API. La Playlist reproduce esos beats junto a archivos de audio reales, todo con el mismo motor.
Dale play y el sitio corre un patrón de Strudel — unas líneas de código en vivo — a través de un grafo de Web Audio completo: voces de batería, una línea de bajo, efectos en vivo y una mezcla que reacciona al beat. El mismo grafo también reproduce archivos de audio comunes — pistas que Berni sube y los reels de sus proyectos — en bucle, así reaccionan y se visualizan igual que el código. Esta página es el desglose; andá a la Playlist para elegir una pista y leer el código exacto que suena.
Cadena de señal
Todas las voces alimentan una cadena maestra: una etapa de ganancia, un pasabajos barrible, tres envíos en paralelo (un delay con feedback sincronizado al tempo, una reverb por convolución cuya respuesta de impulso también es sintetizada y un flanger con LFO), y después un panner HRTF y el analizador que alimenta el visualizador.
El rack de FX
Los pads de AUDIO.FX (disponibles mientras suena el beat) son efectos momentáneos de performance sobre la señal en vivo — mantené presionado para activar, soltá para liberar:
- filter
- clava el pasabajos maestro en 420 Hz
- echo
- sube el envío de delay y empuja el feedback hacia la auto-oscilación
- reverb
- abre el envío del convolucionador — un impulso sintetizado de 2,2 segundos
- flanger
- un LFO ondulando una línea de delay de 5 ms con feedback
- riser
- ruido en loop por un pasabanda que barre de 300 Hz a 9 kHz
- brake
- frena el tempo hasta arrastrarse y oscurece el filtro
El visualizador
Un nodo analizador (FFT de 128 bins) transmite datos de frecuencia en vivo al ecualizador detrás del hero, que los renderiza en cinco modos intercambiables. Con movimiento reducido se muestra un anillo estático.
Sin samples, sin licencias, funciona offline — todo el motor son unos cientos de líneas de TypeScript.