Free and open source

Audio waveforms as transparent video

A free, open-source desktop audio waveform generator. Drop in an audio file, pick a layout, and export an animated, audio-reactive waveform as ProRes 4444 with real alpha, ready to place above your footage.

An animated audio waveform drawn over a generated background, exported with a transparent background

Hero clip: generated background and synthetic audio.

What you get

Built for one job: a clean overlay

  • ProRes 4444 with real alphaA MOV with a transparent background, ready for a track above your footage.
  • 10 audio-reactive layoutsScroll, Center-out, Pulse, Flow, Ripple, Neon, Reflection, Peak hold, Orbit and Voice line, in 4 styles: Bars, Line, Area and Dots.
  • 18 color themesSolid or gradient fill, custom colors, and 3 presets: Calm, Balanced and Energetic.
  • Real audio analysisThe audio is analyzed every 5 ms. A 48-band spectrum from 45 Hz to 10 kHz drives Neon, Reflection, Peak hold and Voice line.
  • Live previewSynchronized audio playback, scrubbing, drag and drop, and remembered settings. Export is cancelable and never damages an existing file.
  • Fast on long audioA one-hour WAV was analyzed in about 6 seconds on an Apple Silicon Mac.
  • Runs locally; no uploadNo account, no telemetry, no web requests of its own. Fonts are bundled.
  • App and command lineUse the desktop window or the rubato-waveform command, with custom width, height and frame rate.

Layouts

Ten layouts, one transparent background

Each clip below is a real export from the app, driven by synthetic audio. The checkerboard shows the transparency.

Export sizes: 1080×180, 1920×240, 3840×360 and 1080×1080 at 30 fps. Orbit needs a square frame, and the app switches to it automatically.

The app

Quiet interface, loud preview

Controls for sensitivity, contrast, smoothing, time window, density, height and opacity sit beside a live preview.

The Rubato Waveform Generator window: layout and style controls on the left, a live waveform preview with playback in the main area

How it works

Three steps

  1. Add audio

    Drop in WAV, MP3, M4A, FLAC and more, or the audio track of an MP4, MOV, MKV or WebM video.

  2. Shape the waveform

    Choose a layout, style, color theme and preset, then tune it against the live preview.

  3. Export a MOV

    Render ProRes 4444 with alpha and place the file on a track above your footage.

Platforms and editors

What has been tested, and what has not

Platforms

macOS 14 or newer, Apple Silicon

Tested by the author

Builds are ad-hoc signed and not notarized, so macOS refuses to open a downloaded copy at first. Try to open it, then go to System Settings > Privacy & Security > Open Anyway.

Windows 10/11 x64

Built by CI, not yet tested

Unsigned, so SmartScreen may warn: More info > Run anyway. Needs the WebView2 runtime, which is included in Windows 11.

Linux

From source only, not tested in a window

The command line and tests run in CI. The native window needs the GTK or Qt backend of pywebview; see its installation guide.

Editors

DaVinci Resolve

Verified

It is the author's regular workflow.

Premiere Pro, Final Cut Pro, After Effects and others

Not tested by the author

These editors can generally read ProRes 4444 with alpha, so they are expected to work. Reports are welcome in the issue tracker.

FAQ

Questions

How do I add an audio waveform to a video?

Export the waveform from Rubato Waveform Generator as a MOV, then place that file on a track above your footage in your editor. Because the background is transparent, the video underneath shows through.

From a terminal: rubato-waveform input.wav output.mov

How do I make a waveform with a transparent background?

Every export is ProRes 4444 with an alpha channel in a MOV, so transparency is the default. The alpha is premultiplied. If edges look wrong in your editor, make sure the clip's alpha is interpreted as premultiplied.

Is it free?

Yes. It is open source under the Apache-2.0 license, with no account and no paid tier.

Does it upload my audio?

No. Analysis, preview and export all run on your computer. There is no account, no telemetry, and the app makes no web requests on its own; the app's interface can only talk to its own local server.

Why does it need FFmpeg?

Exports are encoded with the prores_ks encoder from FFmpeg. FFmpeg is installed separately because it is not bundled, for licensing reasons. The app finds it automatically and shows install commands when it is missing.

macOS: brew install ffmpeg
Windows: winget install Gyan.FFmpeg
Debian or Ubuntu: sudo apt install ffmpeg
Fedora: enable RPM Fusion, then sudo dnf install ffmpeg (stock ffmpeg-free may lack prores_ks)