Audio Waveform Video Generator
Drop an audio track, pick a visualizer style, customise the colours. Hit record — the page exports a WebM video synced to your audio. Perfect for YouTube uploads of audio-only content.
How it works
The audio is played through an AudioContext with an AnalyserNode teed off. Each animation frame, getByteFrequencyData gives the current FFT magnitudes (256 bins). The canvas redraws based on those.
Rendering uses canvas.captureStream(30) for the video track and AudioContext.createMediaStreamDestination() for the audio, combined into one MediaStream and fed to MediaRecorder. The recording runs from "Render" press to the audio's 'ended' event — the resulting WebM is exactly your track's length with the visualizer baked in.
Best with Chrome / Edge / Firefox. Safari has historically been spotty with canvas.captureStream + MediaRecorder; you may need to use the preview instead and screen-capture it.