RhythmExtractor

standard mode | Rhythm category

Inputs

  • signal (vector_real) - the audio input signal

Outputs

  • bpm (real) - the tempo estimation [bpm]

  • ticks (vector_real) - the estimated tick locations [s]

  • estimates (vector_real) - the bpm estimation per frame [bpm]

  • bpmIntervals (vector_real) - list of beats interval [s]

Parameters

  • frameHop (integer ∈ (0, ∞), default = 1024) :

    the number of feature frames separating two evaluations

  • frameSize (integer ∈ (0, ∞), default = 1024) :

    the number audio samples used to compute a feature

  • hopSize (integer ∈ (0, ∞), default = 256) :

    the number of audio samples per features

  • lastBeatInterval (real ∈ [0, ∞), default = 0.1) :

    the minimum interval between last beat and end of file [s]

  • maxTempo (integer ∈ [60, 250], default = 208) :

    the fastest tempo to detect [bpm]

  • minTempo (integer ∈ [40, 180], default = 40) :

    the slowest tempo to detect [bpm]

  • numberFrames (integer ∈ (0, ∞), default = 1024) :

    the number of feature frames to buffer on

  • sampleRate (real ∈ (0, ∞), default = 44100) :

    the sampling rate of the audio signal [Hz]

  • tempoHints (vector_real, default = []) :

    the optional list of initial beat locations, to favor the detection of pre-determined tempo period and beats alignment [s]

  • tolerance (real ∈ [0, ∞), default = 0.24) :

    the minimum interval between two consecutive beats [s]

  • useBands (bool ∈ {true, false}, default = true) :

    whether or not to use band energy as periodicity function

  • useOnset (bool ∈ {true, false}, default = true) :

    whether or not to use onsets as periodicity function

Description

This algorithm estimates the tempo in bpm and beat positions given an audio signal. The algorithm combines several periodicity functions and estimates beats using TempoTap and TempoTapTicks. It combines: - onset detection functions based on high-frequency content (see OnsetDetection) - complex-domain spectral difference function (see OnsetDetection) - periodicity function based on energy bands (see FrequencyBands, TempoScaleBands)

Note that this algorithm is outdated in terms of beat tracking accuracy, and it is highly recommended to use RhythmExtractor2013 instead.

Quality: outdated (use RhythmExtractor2013 instead).

An exception is thrown if neither “useOnset” nor “useBands” are enabled (i.e. set to true).

Source code

See also

Extractor (standard) FrequencyBands (standard) FrequencyBands (streaming) OnsetDetection (standard) OnsetDetection (streaming) RhythmExtractor (streaming) RhythmExtractor2013 (standard) RhythmExtractor2013 (streaming) Scale (standard) Scale (streaming) TempoScaleBands (standard) TempoScaleBands (streaming) TempoTap (standard) TempoTap (streaming) TempoTapTicks (standard) TempoTapTicks (streaming)