Skip to content
← Work

Audio software

EqualStream

Capture any browser tab's audio and shape it live, with a WebGL visualiser attached.

Web Audiothree.jsWebGLVisualisationNexylius
Role
Sole author — audio engine, WebGL visualisers and site
Period
2025 — 2026
Status
Live

The problem

Shaping the sound coming out of a browser tab normally means routing system audio through a virtual audio device into a desktop DAW — platform-specific setup, and far more machinery than the task deserves when all you want is to pull the bass down on a podcast or put a room around a live set.

The approach

EqualStream captures tab audio through the browser's own screen-capture API and runs it through a Web Audio chain in real time. The analyser is tapped after the effects rather than before, so the visualiser reacts to what you are actually hearing — your EQ and effects included — instead of to the untouched source. The result is a studio you open in a tab: no virtual audio device, no DAW, nothing installed, and the audio never leaves the browser it was captured in.

What it does

Eleven-band parametric EQ

Peaking filters at 31 Hz through 20 kHz, adjusted live while the tab keeps playing.

Six effects in a fixed chain

Bass boost, convolution reverb, delay, chorus, waveshaper distortion and a compressor — presented as an ordered signal path, because the order is part of the sound.

Thirteen WebGL visualisers

Displacement shaders, height-field terrains and tunnels, scene assemblies driven one object per frequency band, and spectral views built on the raw FFT.

Per-effect bypass and reset

Every effect can be bypassed without being unwired and reset to its defaults independently, so a session is recoverable rather than something you restart.

Nothing is recorded or transmitted

Capture, processing and rendering are all local. Closing the tab ends the session and leaves nothing behind — verified by checking the shipped bundle stores nothing at all.

Outcome

A complete studio rather than a demo: thirteen visualisers driven by real per-bin spectrum data, a full effects chain, and a landing page that stays light because three.js and Tone.js are not loaded until you actually launch it.