Music waveform visualization/audio visualizer video generation | ZeroTools

Generate dynamic frequency spectrum and waveform animations from audio files. Record visualizations locally and download them as WebM videos.

Loading tool interface...

When to use this tool

Back to the tool ↑

Turn a short audio file into a 640 × 360 WebM with a waveform or spectrum visualization.

Try it first

Load a clip you can use, choose the waveform theme, start recording, then save the video when playback ends. Play it back to check the audio and visualization.

Before you start

Recording takes roughly as long as the clip. Input and WebM support depend on the browser. The tool exports WebM.

Local Processing and Communication Scope

Audio decoding, visualization rendering on Canvas, and WebM video recording are executed locally within your browser without sending audio files to external servers. Static assets, analytics, and external advertising may communicate over the network separately.

ZeroTools: Browser Processing & Privacy

ZeroTools focuses on tools that process input on your device. Check each tool’s scope and limitations before use.

Processing and privacy policy
Chapter 1

Steps to Create Three Visuals from Audio

The Audio Waveform Visualizer Video Generator is a tool that records visuals drawn on a Canvas along with audio into a WebM video while playing a single audio file.

Load your file by clicking the file selection area on the screen or by dragging and dropping an audio file. Once decoding is complete, the file name and duration are displayed, and the 640x360 pixel Canvas shows a prompt waiting for playback.

A complete waveform image of the entire audio file is not already rendered at this point. Choose a visual style from "Spectrum", "Waveform Line", or "Circle", and press the play button to inspect the sound and moving animation.

During playback, you can move to different positions using the progress slider and switch themes.

When recording, click "Start Recording and Video Export". Recording starts from the beginning of the audio regardless of your current preview position.

During recording, theme switching and playback position seeking are disabled, and Canvas visuals and playback audio are captured in real time.

Recording ends automatically when the audio finishes playing to the end, or you can create a partial video up to that point by clicking "Stop Recording and Export".

From the save button displayed after processing, you can download a video named with _visual.webm appended to the original file name.

If you record a three-minute audio track to the end, approximately three minutes of real time are required. You can record the same audio again from the beginning after saving, but starting a new recording discards the previous result on the screen.

Please download needed videos first. Features such as joining multiple audio files, combining separate segments, or exporting audio alone are not provided.

Chapter 2

Loading and Device Memory

Selected files are read using the browser's File.arrayBuffer() and decoded into an AudioBuffer via AudioContext.decodeAudioData().

Displaying labels such as MP3, WAV, or M4A on screen does not guarantee that files can be read in every browser and operating system.

Supported containers and codecs vary by environment, and files sharing the same extension may yield different results if their internal format differs.

An error is displayed for files that cannot be decoded. Depending on browser decoding behavior, the sampling rate of the AudioBuffer may also change from the value of the input file.

There is no processing to extract track titles or cover art from the source file to carry over into the interface or video.

The entire audio is decoded into an AudioBuffer in memory for playback and analysis. Even when a compressed file is small on disk, the uncompressed PCM data consumes memory proportional to playback duration, sampling rate, and channel count.

During recording, encoded video and audio data accumulate in browser memory and are packaged into a Blob upon completion. For long audio tracks, loading and recording times increase, and insufficient available device memory may cause failures or slowdowns.

While this page does not enforce a specific fixed upper size limit on audio files, this does not mean memory capacity is unlimited.

Closing the page or loading another file during processing will terminate an ongoing recording. Playback and recording buttons remain unavailable until decoding finishes; if decoding fails, select a different file.

Re-selecting an audio file also removes previous recording results, so download any generated video beforehand.

Chapter 3

Differences Among Frequency Bars, Waveform Line, and Circle

During playback, the audio signal is routed from an AudioBufferSourceNode to an AnalyserNode, and the analyzed real-time sound is drawn using Canvas 2D.

The fftSize of the AnalyserNode is set to 256, providing an array of 128 elements when retrieving frequency data. "Spectrum" draws colored vertical bars extending upward from the bottom of the screen based on values obtained from getByteFrequencyData().

"Circle" utilizes the same frequency data but arranges bars radially outward around a central circle. Both options render analysis values of the same audio source into different visual layouts and do not provide separate left and right channel comparisons.

Only "Waveform Line" connects recent time-domain sample values obtained from getByteTimeDomainData() with a line. This line repeatedly draws short segments currently playing rather than displaying a complete horizontal waveform spanning from the beginning to the end of the file.

All three themes update their rendering in synchronization with requestAnimationFrame, but there is no feature to pre-analyze overall audio peaks or export frequency measurements as numeric data.

WebGL, 3D particles, logo insertion, background images or videos, custom color palettes, and FFT size adjustments are not supported.

Preview playback to confirm the visual appearance you need before starting a recording.

Chapter 4

Recording Canvas Video and Audio Tracks

The Canvas rendering the visual is 640 pixels wide and 360 pixels high, with a 16:9 aspect ratio. When recording starts, a video track is generated using Canvas.captureStream(30).

The argument 30 represents a capture request for 30 frames per second and does not guarantee that the recorded file will maintain a constant 30 fps.

Depending on device processing power, browser performance, and rendering throttle when switching to another tab, dropped frames or stuttering motion may occur.

The visible content of the Canvas is recorded, but there are no options to overlay static background images or configure custom resolutions and aspect ratios.

Audio for recording is acquired by connecting the audio signal from the AnalyserNode to a MediaStreamAudioDestinationNode. The Canvas video track and this audio track are merged into a single MediaStream and passed to a MediaRecorder.

The same playback route is also connected to the destination speakers, allowing you to monitor the sound during recording. Recording proceeds concurrently with audio playback, and audio and video chunks are packaged into a single Blob after stopping.

This implementation does not retroactively analyze or adjust audio-video timestamps, and it does not guarantee sample-accurate synchronization or a constant frame rate.

If device load is high, test with shorter audio tracks before proceeding with long recordings.

Chapter 5

WebM Output and Browser Compatibility

Before recording starts, compatibility with video/webm;codecs=vp8,opus or video/webm is verified via MediaRecorder. Browsers unable to process either format display an error and will not save an alternate format under the guise of WebM.

Recording errors or empty outputs are not treated as successes and will not present a save button. Format support is distinct from execution feasibility; even if WebM is supported, recording may fail due to device resource constraints.

A manual stop finalizes the video up to that elapsed point, whereas natural completion records to the end of the audio. The output file is WebM and cannot be exported directly to MP4, GIF, WAV, or MP3.

Confirm required formats in advance according to the requirements of your social media platform or video editing software.

Recording results are held in browser memory as a Blob and downloaded to your device via the save button. Loading a new file removes previous recording outputs from the screen.

In addition to encoding overhead, accumulating data during long recordings increases memory usage, which may degrade browser responsiveness.

The volume of drawing operations varies by selected theme, and requesting 30 fps does not produce identical visual quality across all devices.

While you can stop manually to shorten a video, this tool is not a dedicated editor designed to trim arbitrary audio sections cleanly without silence.

To remove unwanted portions of the audio itself first, prepare a separate file with an audio trimmer and load that file.

Chapter 6

Use Cases, Rights, and Communication Scope

This tool is suitable for generating simple animated visual assets from original music or audio with verified usage permissions. Compare themes based on your objective and legibility, such as using the time-domain line for spoken voice or vertical bars and circular layouts to showcase frequency variations.

This page does not verify copyright or licensing for uploaded audio. If you plan to publish or redistribute the video, verify the audio licensing terms and the format requirements of your hosting platform independently.

Displayed visualizations are artistic renderings and are not designed for acoustic measurement documentation or certified audio analysis.

Testing recording, saving, and playback with short clips first helps you detect format compatibility and device performance limitations early.

Audio decoding, playback, Canvas rendering, recording, and WebM Blob creation are performed within your browser on this page. However, this does not imply "zero communication" across the entire website when factoring in initial page loading, analytics, or advertisements, nor does it provide unconditional confidentiality guarantees.

Evaluate your environment including the device, browser extensions, and network connection. Download destinations for generated videos follow browser download settings.

Clearing file state on the page does not automatically delete audio files or exported videos already saved to your device. Playability and visual quality of output video files depend on the playback environment as well as the recording browser.

Frequently Asked Questions (FAQ)

A.
One audio file is loaded at a time. Actual support for MP3, WAV, M4A, and other formats depends on the decoding capabilities of your browser and operating system. For long files, take note of post-decoding memory usage and required recording duration.
A.
Spectrum displays frequency band levels with vertical bars, and Circle displays the same frequency data using radially arranged bars. Waveform Line draws short time-domain values currently playing as a continuous line. It does not display a pre-rendered waveform of the entire file.
A.
Output is limited to 640x360 pixel WebM video on supported browsers. Canvas.captureStream(30) requests 30 fps, but actual frame rates and synchronization accuracy depend on device and browser load. Direct export to MP4 or GIF is not available.
A.
Recording proceeds in real time from the beginning of the audio and stops automatically when the audio ends. Clicking the stop button early generates a video up to that point. Theme selection and playback position cannot be altered during recording.
A.
Audio decoding, playback, visual rendering, and recording take place locally in the browser. Zero communication or absolute confidentiality across page loading, analytics, or advertisements is not guaranteed.