Detects the pitch of an audio snippet


Detects the pitch of a signal using the autocorrelation method.

var detectPitch = require('detect-pitch')
var n = 1024
var ω = 2.0 * Math.PI / n
//Initialize signal 
var signal = new Float32Array(n)
for(var i=0; i<n; ++i) {
  signal[i] = Math.sin(100 * i * ω)
console.log(Math.round(n / detectPitch(signal)))
//Prints out: 
//    100 
npm install detect-pitch

Detects the pitch of signal by computing the period by autocorrelation.

  • signal is a snippet of an audio signal. Represented as either a typed array or an ndarray.
  • threshold is an optional parameter between 0 and 1 which determines the cutoff for reporting a successful detection. Higher values indicate stricture cutoff. Default is 0

Returns The number of samples in the period of the signal. If no pitch was detected, returns 0. To recover the pitch frequency, you need to divide the sample rate by this number (note that this will be NaN for signals with no pitch):

var pitchInHz = sampleRateInHz / periodInSamples

(c) 2013-2015 Mikola Lysenko. MIT License