wavesurfer.js
Renders interactive audio waveforms with playback, regions, spectrogram and timeline plugins.
| Language | JavaScript |
|---|---|
| Category | Audio analysis |
| License | BSD-3-Clause |
| Platforms | Web |
| Install | npm install wavesurfer.js |
| First released | 2012 |
| Maintained | Yes |
| Links | Website · Source |
Strengths
- Customizable waveform rendering with playback and seeking
- Rich official plugins: Regions, Timeline, Spectrogram, Record, Minimap
- TypeScript-native, popular and actively maintained
Limitations
- v7 is a breaking rewrite; older v6 code doesn't apply
- Focused on visualization/playback, not deep DSP analysis
Best for
Building audio players and editors that need visual waveforms and region editing.
Minimal example
import WaveSurfer from "wavesurfer.js";
const ws = WaveSurfer.create({ container: "#waveform", url: "audio.mp3" });
ws.on("ready", () => ws.play());