The visualizer is DOM and SVG. There is no canvas. The audio store owns the Web Audio graph and reads the analyser once per frame in tick. Pools carry those levels to the elements, and only an element whose value changed is written.
Bars and Radial are pools of divs styled by CSS. One box-reflect on the container draws the reflection. Arcs and Kaleidoscope are pools inside an <svg>. The container is a <g>, each entity is a <path> in the shared viewBox, and its d is written each frame. The kaleidoscope draws one 45° wedge and eight <use> copies complete the ring. Hollow tiles are the evenodd fill rule with an inner subpath. Sparks are a second SVG pool that spawns on onsets and recycles each element after it fades.
The four tracks are synthesized in the browser from chord progressions and drum patterns written for this demo. Nothing is downloaded.
The playlist is a data-list on store state. Transport, EQ, and layout options are reactive state bound with data-model. The EQ sliders write to the filter gains with a short ramp.
At 256 bars the framework's work is under a millisecond a frame, and the browser's style and layout for 512 plain elements is about the same. The Frames counter shows the current rate.