Make waveform videos for short-form audio
Drop an MP3, WAV, or OGG, pick a background and a waveform style, and render an animated video ready for TikTok, Reels, or YouTube Shorts — all in your browser, nothing uploaded.
Waveform video ready
Your video has been rendered locally and is ready to download.
How to use Waveform Maker
Five simple steps — your audio is processed entirely in your browser. Nothing is uploaded.
Drop your audio
Drag-and-drop an MP3, WAV, OGG, M4A, AAC, or FLAC file onto the dropzone, or click to browse. The file is decoded locally with the Web Audio API.
Customize the look
Pick an aspect ratio (9:16 / 1:1 / 16:9), a waveform style (bars / line / mirror / radial), colors, position, size, background image, and optional text overlay.
Preview the animation
Press play in the audio bar — the live preview canvas renders the waveform scrolling in sync with playback so you can see exactly what you'll get.
Render the video
Click Render video. The app records the canvas + audio in real time using MediaRecorder. A 60-second clip takes ~60 seconds to render. Watch the progress bar for elapsed/remaining time.
Download & post
When rendering finishes, click Download video to save a WebM file. Upload directly to TikTok, Reels, or Shorts — they all accept WebM. Need MP4? Convert with HandBrake or ffmpeg.
Truly private
Your audio is decoded in your browser. It is never uploaded to a server, never stored, never logged. Verify it in your DevTools Network tab.
Four waveform styles
Choose bars, smooth filled line, symmetric mirror, or radial circular waveform. Each works with solid or gradient color, and any position.
Three aspect ratios
9:16 for TikTok and Reels, 1:1 for Instagram feed, 16:9 for YouTube Shorts. Switch instantly — the canvas resizes and the preview updates.
Custom background
Upload any JPG or PNG as the background — it's cover-fit to the frame. Add a dark overlay slider for text readability. No image? Use a solid color.
Native browser APIs
Built on Web Audio API for decoding, Canvas API for rendering, and MediaRecorder API for capture. Zero external libraries — works Browser-based after first load.
Live preview & real-time render
Watch the waveform animate in sync with playback before you commit to a render. Rendering records in real time, so 1 minute of audio = 1 minute of render.
Frequently asked questions
No. Waveform Maker runs entirely in your browser. Your audio file is read into memory, decoded with the Web Audio API, and the rendered video is offered as a download — it never touches any server. Verify by opening DevTools → Network tab while you load a file: no audio data leaves your device.
Waveform Maker uses the MediaRecorder API to capture the canvas + audio in real time. This is the only native browser API that produces a video file from a canvas without external libraries. A 60-second clip takes ~60 seconds to record. There is no faster native approach in a single self-contained HTML file.
The MediaRecorder API in Chrome, Firefox, and Edge reliably supports WebM (VP9 + Opus). MP4 recording is not yet consistently supported across browsers. TikTok, Instagram Reels, and YouTube Shorts all accept WebM uploads natively. If you specifically need an MP4, convert the WebM with HandBrake, ffmpeg, or any online converter.
Any format your browser can decode through AudioContext.decodeAudioData — typically MP3, WAV, OGG/Vorbis, M4A/AAC, and FLAC. Format support varies slightly by browser: Chrome and Firefox support all of the above; Safari has some gaps with OGG. If a file fails to load, try converting it to MP3 or WAV first.
There is no artificial limit. The practical constraint is your device's memory: decoding a 10-minute audio file into PCM samples can use a few hundred MB of RAM. Very large files (over ~50 MB or 30 minutes) may slow down or fail on low-memory devices. For best results, keep clips under 5 minutes — which is plenty for short-form content.
Partial. Safari 14+ supports Web Audio API and Canvas, and recent versions support MediaRecorder with MP4 (H.264 + AAC) output. However, Safari's MediaRecorder implementation has historically been experimental and may produce files without audio, or fail outright. For reliable results, use Chrome, Firefox, or Edge on desktop.
By default the audio is included in the output video. Use the Mute during render checkbox to silence your speakers while still recording audio into the file. There is currently no option to omit the audio track entirely — use a video editor to remove it if needed.
The preview runs at the browser's animation frame rate (usually 60 fps) using pre-computed audio peaks. If your device is busy, frames may drop. The final rendered video is captured at a steady 30 fps via canvas.captureStream(30), so it will look smoother than the live preview.