Home Reference Source Repository
import MusicTempo from 'music-tempo/src/MusicTempo.js'
public class | source

MusicTempo

Class combines the work of all the steps of tempo extraction

Constructor Summary

Public Constructor
public

constructor(audioData: Float32Array, params: Object)

Constructor

Member Summary

Public Members
public

Agents array

public

Inter-beat interval

public

Beat times array

public

The agent with the highest score

public

Onsets times array

public

Spectral flux peaks indexes

public

Spectral flux

public

The tempo value in beats per minute

public

Tempo hypotheses array

Public Constructors

public constructor(audioData: Float32Array, params: Object) source

Constructor

Params:

NameTypeAttributeDescription
audioData Float32Array

non-interleaved IEEE 32-bit linear PCM with a nominal range of -1 -> +1 (Web Audio API - Audio Buffer)

params Object
  • optional
  • default: {}

parameters

params.bufferSize Number
  • optional
  • default: 2048

FFT windows size

params.hopSize Number
  • optional
  • default: 441

spacing of audio frames in samples

params.decayRate Number
  • optional
  • default: 0.84

how quickly previous peaks are forgotten

params.peakFindingWindow Number
  • optional
  • default: 6

minimum distance between peaks

params.meanWndMultiplier Number
  • optional
  • default: 3

multiplier for peak finding window

params.peakThreshold Number
  • optional
  • default: 0.35

minimum value of peaks

params.widthTreshold Number
  • optional
  • default: 0.025

the maximum difference in IOIs which are in the same cluster

params.maxIOI Number
  • optional
  • default: 2.5

the maximum IOI for inclusion in a cluster

params.minIOI Number
  • optional
  • default: 0.07

the minimum IOI for inclusion in a cluster

params.maxTempos Number
  • optional
  • default: 10

initial amount of tempo hypotheses

params.minBeatInterval Number
  • optional
  • default: 0.3

the minimum inter-beat interval (IBI) (0.30 seconds == 200 BPM)

params.maxBeatInterval Number
  • optional
  • default: 1

the maximum inter-beat interval (IBI) (1.00 seconds == 60 BPM)

params.initPeriod Number
  • optional
  • default: 5

duration of the initial section

params.thresholdBI Number
  • optional
  • default: 0.02

for the purpose of removing duplicate agents, the default JND of IBI

params.thresholdBT Number
  • optional
  • default: 0.04

for the purpose of removing duplicate agents, the default JND of phase

params.expiryTime Number
  • optional
  • default: 10

the time after which an Agent that has not accepted any beat will be destroyed

params.toleranceWndInner Number
  • optional
  • default: 0.04

the maximum time that a beat can deviate from the predicted beat time without a fork occurring

params.toleranceWndPre Number
  • optional
  • default: 0.15

the maximum amount by which a beat can be earlier than the predicted beat time, expressed as a fraction of the beat period

params.toleranceWndPost Number
  • optional
  • default: 0.3

the maximum amount by which a beat can be later than the predicted beat time, expressed as a fraction of the beat period

params.correctionFactor Number
  • optional
  • default: 50

correction factor for updating beat period

params.maxChange Number
  • optional
  • default: 0.2

the maximum allowed deviation from the initial tempo, expressed as a fraction of the initial beat period

params.penaltyFactor Number
  • optional
  • default: 0.5

factor for correcting score, if onset do not coincide precisely with predicted beat time

Public Members

public agents: Array source

Agents array

public beatInterval: Number source

Inter-beat interval

public beats: Array source

Beat times array

public bestAgent: Agent source

The agent with the highest score

public events: Array source

Onsets times array

public peaks: Array source

Spectral flux peaks indexes

public spectralFlux: Array source

Spectral flux

public tempo: Number source

The tempo value in beats per minute

public tempoList: Array source

Tempo hypotheses array