Peaks.js is a JavaScript UI component for displaying and interacting with audio waveforms in the browser.
The tool solves the problem of visualizing audio content in web applications by rendering waveforms on HTML canvas elements at multiple zoom levels. It computes waveform data either client-side using the Web Audio API or accepts pre-computed server-side data, then allows users to interact with the visualization through zooming, scrolling, and creating point or segment markers to annotate content such as identifying music versus speech or marking different tracks.
Peaks.js suits projects that need interactive audio visualization with annotation capabilities. It supports mono, stereo, and multi-channel waveforms, and offers customizable views with mouse, touch, scroll wheel, and keyboard interaction. The tool can be integrated either as a UMD bundle via script tag or as an npm module for use with bundlers like Webpack, Rollup, or Parcel. It depends on Konva and waveform-data as peer dependencies.
Development of the project has transitioned to a separate location, with the original repository receiving no active maintenance.