Waveform
simultaneously transcode and generate visuals for an audio file
Install / Use
/learn @andrewrk/WaveformREADME
waveform

Input: any format audio or video file
Output: any or all of these:
- transcoded audio file
- waveform.js-compatible JSON representation of the audio file
- PNG rendering of the waveform
Usage
waveform [options] in [--transcode out] [--waveformjs out] [--png out]
(where `in` is a file path and `out` is a file path or `-` for STDOUT)
Options:
--scan duration scan (default off)
Transcoding Options:
--bitrate 320 audio bitrate in kbps
--format name e.g. mp3, ogg, mp4
--codec name e.g. mp3, vorbis, flac, aac
--mime mimetype e.g. audio/vorbis
--tag-artist artistname artist tag
--tag-title title title tag
--tag-year 2000 year tag
--tag-comment comment comment tag
WaveformJs Options:
--wjs-width 800 width in samples
--wjs-precision 4 how many digits of precision
--wjs-plain exclude metadata in output JSON (default off)
PNG Options:
--png-width 256 width of the image
--png-height 64 height of the image
--png-color-bg 00000000 bg color, rrggbbaa
--png-color-center 000000ff gradient center color, rrggbbaa
--png-color-outer 000000ff gradient outer color, rrggbbaa
Installation
-
Install libgroove dev package. Only the main library is needed.
-
Install libpng and zlib dev packages.
-
make
Related Projects
Related Skills
node-connect
347.6kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
108.4kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
347.6kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
347.6kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
