music dj mixes visualizer javascript

Illusions — An Audio-Reactive Visualizer for Twenty-Three Dark Mixes

A player for the ILLUSIONS series, selections on the dark side: twenty-three dark dancefloor mixes by Cutups, 2011 to 2025, each with its own hand-made visualizer that reacts to the music and the cursor.

The Illusions player on Bloodbath: a huge yellow synthwave sun sets behind a city skyline over a glowing red grid, with the mix title, current track and playback controls over it
Bloodbath (2025): a synthrave sun over a red grid.

Illusions is a player for my ILLUSIONS series, “selections on the dark side”: twenty-three dark dancefloor mixes I made as Cutups between 2011 and 2025.

Each mix has its own hand-made visualizer, drawn in code and based on that mix’s cover art. Frosted trees in river mist, woodcut twin moons, a single candle over still water, Haeckel fungi in white ink, red lightning, a monolith over a burning village, shadow people on a ridge.

Scenes that listen

The page splits the audio into bass, kick, snare and hi-hat, and tracks drops and how intense each section is. Each scene maps those to its own effects: wind in the branches, a trunk that shudders on the kick, frost shaken loose by the snare, fog that thickens through a breakdown.

The Illusions player on The Breaking Wheel: a pale spoked wheel on a pole against a dark background, with red rays radiating out from it
The Breaking Wheel (2015). Grab it and spin it.

Every visual also responds to the cursor, so you can hover, click and drag to play with it. A hint at the top says what your hands do in each scene. You can spin the Breaking Wheel, or steer across Bloodbath’s grid and fire pulses down it. Each mix has a full tracklist you can click to jump to a track, and double-clicking goes full screen. If your system asks for reduced motion, the flashes, strobes and shake are toned down.

The audio streams from Off Grid, the self-hosted mix player I’ve been building, so the whole series is also at geoffreymaddock.com/audio.

Controls

KeyDoes
SpacePlay / pause
← →Skip 30 seconds
Shift + ← →Previous / next mix
[ ] or Shift + ↑ ↓Previous / next track
TTracklist
FFull screen

Open the Illusions visualizer →