node package manager
Easy collaboration. Discover, share, and reuse code in your team. Create a free org »



Small library to extract peaks from an array of audio samples or a webaudio AudioBuffer.

Build Status

Coverage Status


npm install webaudio-peaks

Basic Usage

var extractPeaks = require('webaudio-peaks');
var audioCtx = new (window.AudioContext || window.webkitAudioContext)();
//decode an ArrayBuffer into an AudioBuffer 
audioCtx.decodeAudioData(audioData, function(decodedData) {
  //calculate peaks from an AudioBuffer 
  var peaks = extractPeaks(decodedData, 10000, true);

extractPeaks(source, samplesPerPixel, isMono, cueIn, cueOut, bits)

function to extract peaks from a TypedArray, or AudioBuffer


  • source TypedArray|AudioBuffer - A source of audio samples.
  • samplesPerPixel number - Number of samples used to calculate a single peak.
  • isMono boolean - Combine all channels into one array of peaks or not.
  • cueIn number - Sample to begin at. The offset is inclusive.
  • cueOut number - Sample to end at. The offset is exclusive.
  • bits (8|16|32) - Resolution of calculated peaks.

Returns: object

    length: `number` //Number of calculated peaks, 
    //Computed peak data, length ==  #channels or 1 if isMono == true 
    //Each entry of type `Int{bits}Array` 
    data: `Array`
    bits: `(8|16|32)` //Resolution of calculated peaks. 


MIT License