This site's audio engine
Most of the site's music is live-coded with Strudel — synthesized in your browser, every visit, with the Web Audio API. The Playlist plays those beats alongside real audio files, all through the same engine.
Some of the music i´ve composed for videogames over the years.
Signal chain
Every voice feeds one master chain: a gain stage, a sweepable lowpass, three parallel sends (a tempo-synced feedback delay, a convolution reverb whose impulse response is also synthesized, and an LFO-driven flanger), then an HRTF panner and the analyser that feeds the visualizer.
The FX rack
The AUDIO.FX pads (available while the beat plays) are momentary performance effects on the live signal — hold to engage, release to let go:
- filter
- slams the master lowpass down to 420 Hz
- echo
- raises the delay send and pushes feedback toward self-oscillation
- reverb
- opens the convolver send — a 2.2-second synthesized impulse
- flanger
- an LFO wobbling a 5 ms delay line with feedback
- riser
- looped noise through a bandpass sweeping 300 Hz → 9 kHz
- brake
- slews the tempo down to a crawl and darkens the filter
The visualizer
An analyser node (128-bin FFT) streams live frequency data to the equalizer behind the hero, which renders it in five switchable modes. Reduced-motion users get a still ring instead.
No samples, no licenses, works offline — the whole engine is a few hundred lines of TypeScript.