2.2k stars · GPL-3.0 · 1.10.3 (2026-08-20), read from /releases/latest; the bare date '20 Aug' is in the past, so it is 2026 · Track this in Scout
Reads MP3, WAV, FLAC, Ogg Vorbis and Opus and writes either a PNG image of the waveform or the peak data behind it, from the command line.
▶Repo detailsthe review · specs · pros & cons · install
What it is
A command-line program written in C++ that reads MP3, WAV, FLAC, Ogg Vorbis and Opus and writes either a PNG image of the waveform or a data file of the peaks. It was built at the BBC to feed their browser component peaks.js.What it is good for. Anyone who publishes audio or video and wants to see the shape of it before editing. The problem it removes is scrubbing back and forth to find where you stopped talking. Edition 13 gave Gennady auto-editor (#3), which cuts silence out automatically; this is the other approach, where you look at the silence and decide by eye. It is also the piece you need if you ever want a waveform drawn on your own website under a recording.
- Very fast, because it does one job in C++ and nothing else.
- It writes both a picture and the raw numbers, so you can use its output in a web page rather than only looking at it.
- It reads the common sound formats directly, with no conversion step first.
- GPL-3.0, so you cannot bundle it inside a closed product.
- Ongoing development has moved to Codeberg, at codeberg.org/chrisn/audiowaveform. Releases still appear on GitHub — 1.10.3 landed on 20 August 2026 — but the GitHub page is a mirror.
- It is a building block, not a program with a window. You get a file, and something else has to display it.
- bbc/peaks.js
Solves the other half: it is the browser component that draws and lets you click on the data this program produces, by the same maintainer, and it has also moved to Codeberg.
Track this in Scout - katspaugh/wavesurfer.js
Draws the waveform in the browser from the audio file itself, so it needs no pre-computed data and does more work on the visitor's machine.
Track this in Scout - naomiaro/waveform-playlist
Goes further than drawing and gives a multi-track editor in the browser with fades, cues and export, which is a whole application rather than a building block.
Track this in Scout
# Debian or Ubuntu sudo apt install audiowaveform # macOS brew tap bbc/audiowaveform brew install audiowaveform # Make a picture of an episode's sound: audiowaveform -i episode.mp3 -o episode.png -w 1800 -h 280 # Or get the numbers, for drawing on a web page later: audiowaveform -i episode.mp3 -o episode.json -b 8 # Straight from a video, using ffmpeg to pull the sound out first: ffmpeg -i episode.mp4 -f wav - | audiowaveform --input-format wav -o episode.png
