# Algorithms reference¶

Here is the complete list of algorithms which you can access from the Python interface.

The C++ interface allows access to the same algorithms, and also some more which are templated and hence are not available in python.

## Envelope/SFX

### AfterMaxToBeforeMaxEnergyRatio

*standard*,

*streaming*)

Computes the ratio between the pitch energy after the pitch maximum and the pitch energy before the pitch maximum

### DerivativeSFX

*standard*,

*streaming*)

Computes two descriptors that are based on the derivative of a signal envelope

### Envelope

*standard*,

*streaming*)

Computes the envelope of a signal by applying a non-symmetric lowpass filter on a signal

### LogAttackTime

*standard*,

*streaming*)

Computes the log (base 10) of the attack time of a signal envelope

### MaxToTotal

*standard*,

*streaming*)

Computes the ratio between the index of the maximum value of the envelope of a signal and the total length of the envelope

## Filters

### DCRemoval

*standard*,

*streaming*)

Removes the DC offset from a signal using a 1st order IIR highpass filter

### MaxFilter

*standard*,

*streaming*)

Implements a maximum filter for 1d signal using van Herk/Gil-Werman (HGW) algorithm

## Input/output

### AudioLoader

*standard*,

*streaming*)

Loads the single audio stream contained in a given audio or video file

### AudioOnsetsMarker

*standard*,

*streaming*)

Creates a wave file in which a given audio signal is mixed with a series of time onsets

### EasyLoader

*standard*,

*streaming*)

Loads the raw audio data from an audio file, downmixes it to mono and normalizes using replayGain

### EqloudLoader

*standard*,

*streaming*)

Loads the raw audio data from an audio file, downmixes it to mono and normalizes using replayGain and equal-loudness filter

## Standard

### BPF

*standard*,

*streaming*)

Implements a break point function which linearly interpolates between discrete xy-coordinates to construct a continuous function

### BinaryOperator

*standard*,

*streaming*)

Performs basic arithmetical operations element by element given two arrays

### BinaryOperatorStream

*standard*,

*streaming*)

Performs basic arithmetical operations element by element given two arrays

### FFT

*standard*,

*streaming*)

Computes the positive complex short-term Fourier transform (STFT) of an array using the FFT algorithm

### FFTC

*standard*,

*streaming*)

Computes the complex short-term Fourier transform (STFT) of a complex array using the FFT algorithm

### FrameToReal

*standard*,

*streaming*)

Converts a sequence of input audio signal frames into a sequence of audio samples

### IFFT

*standard*,

*streaming*)

Calculates the inverse short-term Fourier transform (STFT) of an array of complex values using the FFT algorithm

### IFFTC

*standard*,

*streaming*)

Calculates the inverse short-term Fourier transform (STFT) of an array of complex values using the FFT algorithm

### Multiplexer

*standard*,

*streaming*)

Returns a single vector from a given number of real values and/or frames

### NSGConstantQ

*standard*,

*streaming*)

Computes a constant Q transform using non stationary Gabor frames and returns a complex time-frequency representation of the input vector

### NSGConstantQStreaming

*streaming*)

Computes a constant Q transform using non stationary Gabor frames and returns a complex time-frequency representation of the input vector

### NSGIConstantQ

*standard*,

*streaming*)

Computes an inverse constant Q transform using non stationary Gabor frames and returns a complex time-frequency representation of the input vector

### OverlapAdd

*standard*,

*streaming*)

Returns the output of an overlap-add process for a sequence of frames of an audio signal

### RealAccumulator

*streaming*)

Takes a stream of Real values and outputs them as a single vector when the end of the stream is reached

### StereoTrimmer

*standard*,

*streaming*)

Extracts a segment of a stereo audio signal given its start and end times

### UnaryOperator

*standard*,

*streaming*)

Performs basic arithmetical operations element by element given an array

### UnaryOperatorStream

*standard*,

*streaming*)

Performs basic arithmetical operations element by element given an array

### VectorRealAccumulator

*streaming*)

Takes a stream of Real values and outputs them as a single vector when the end of the stream is reached

## Spectral

### EnergyBand

*standard*,

*streaming*)

Computes energy in a given frequency band of a spectrum including both start and stop cutoff frequencies

### EnergyBandRatio

*standard*,

*streaming*)

Computes the ratio of the spectral energy in the range [startFrequency, stopFrequency] over the total energy

### FlatnessDB

*standard*,

*streaming*)

Computes the flatness of an array, which is defined as the ratio between the geometric mean and the arithmetic mean converted to dB scale

### LPC

*standard*,

*streaming*)

Computes Linear Predictive Coefficients and associated reflection coefficients of a signal

### Panning

*standard*,

*streaming*)

Characterizes panorama distribution by comparing spectra from the left and right channels

### SpectrumToCent

*standard*,

*streaming*)

Computes energy in triangular frequency bands of a spectrum equally spaced on the cent scale

### TensorflowInputMusiCNN

*standard*,

*streaming*)

Computes mel-bands specific to the input of MusiCNN-based models

### TensorflowInputTempoCNN

*standard*,

*streaming*)

Computes mel-bands specific to the input of TempoCNN-based models

## Rhythm

### Beatogram

*standard*,

*streaming*)

Filters the loudness matrix given by BeatsLoudness algorithm in order to keep only the most salient beat band representation

### BeatsLoudness

*standard*,

*streaming*)

Computes the spectrum energy of beats in an audio signal given their positions

### BpmHistogram

*standard*,

*streaming*)

Analyzes predominant periodicities in a signal given its novelty curve [1] (see NoveltyCurve algorithm) or another onset detection function (see OnsetDetection and OnsetDetectionGlobal)

### BpmHistogramDescriptors

*standard*,

*streaming*)

Computes beats per minute histogram and its statistics for the highest and second highest peak

### BpmRubato

*standard*,

*streaming*)

Extracts the locations of large tempo changes from a list of beat ticks

### HarmonicBpm

*standard*,

*streaming*)

Extracts bpms that are harmonically related to the tempo given by the 'bpm' parameter

### LoopBpmConfidence

*standard*,

*streaming*)

Takes an audio signal and a BPM estimate for that signal and predicts the reliability of the BPM estimate in a value from 0 to 1

### Meter

*standard*,

*streaming*)

Estimates the time signature of a given beatogram by finding the highest correlation between beats

### NoveltyCurve

*standard*,

*streaming*)

Computes the "novelty curve" (Grosche & Müller, 2009) onset detection function

### NoveltyCurveFixedBpmEstimator

*standard*)

Outputs a histogram of the most probable bpms assuming the signal has constant tempo given the novelty curve

### OnsetRate

*standard*,

*streaming*)

Computes the number of onsets per second and their position in time for an audio signal

### PercivalBpmEstimator

*standard*,

*streaming*)

Estimates the tempo in beats per minute (BPM) from an input signal as described in [1]

### PercivalEnhanceHarmonics

*standard*,

*streaming*)

Implements the 'Enhance Harmonics' step as described in [1]

### PercivalEvaluatePulseTrains

*standard*,

*streaming*)

Implements the 'Evaluate Pulse Trains' step as described in [1]

### RhythmDescriptors

*standard*,

*streaming*)

Computes rhythm features (bpm, beat positions, beat histogram peaks) for an audio signal

### RhythmExtractor2013

*standard*,

*streaming*)

Extracts the beat positions and estimates their confidence as well as tempo in bpm for an audio signal

### RhythmExtractor

*standard*,

*streaming*)

Estimates the tempo in bpm and beat positions given an audio signal

### SingleBeatLoudness

*standard*,

*streaming*)

Computes the spectrum energy of a single beat across the whole frequency range and on each specified frequency band given an audio segment

### SuperFluxExtractor

*standard*,

*streaming*)

Detects onsets given an audio signal using SuperFlux algorithm

### SuperFluxPeaks

*standard*,

*streaming*)

Detects peaks of an onset detection function computed by the SuperFluxNovelty algorithm

### TempoScaleBands

*standard*,

*streaming*)

Computes features for tempo tracking to be used with the TempoTap algorithm

### TempoTap

*standard*,

*streaming*)

Estimates the periods and phases of a periodic signal, represented by a sequence of values of any number of detection functions, such as energy bands, onsets locations, etc

## Math

### CartesianToPolar

*standard*,

*streaming*)

Converts an array of complex numbers from cartesian to polar form

## Statistics

### CentralMoments

*standard*,

*streaming*)

Extracts the 0th, 1st, 2nd, 3rd and 4th central moments of an array

### Decrease

*standard*,

*streaming*)

Computes the decrease of an array defined as the linear regression coefficient

### DistributionShape

*standard*,

*streaming*)

Computes the spread (variance), skewness and kurtosis of an array given its central moments

### Flatness

*standard*,

*streaming*)

Computes the flatness of an array, which is defined as the ratio between the geometric mean and the arithmetic mean

### PoolAggregator

*standard*,

*streaming*)

Performs statistical aggregation on a Pool and places the results of the aggregation into a new Pool

## Tonal

### ChordsDescriptors

*standard*,

*streaming*)

Given a chord progression this algorithm describes it by means of key, scale, histogram, and rate of change

### ChordsDetection

*standard*,

*streaming*)

Estimates chords given an input sequence of harmonic pitch class profiles (HPCPs)

### ChordsDetectionBeats

*standard*)

Estimates chords using pitch profile classes on segments between beats

### Dissonance

*standard*,

*streaming*)

Computes the sensory dissonance of an audio signal given its spectral peaks

### HPCP

*standard*,

*streaming*)

Computes a Harmonic Pitch Class Profile (HPCP) from the spectral peaks of a signal

### HarmonicPeaks

*standard*,

*streaming*)

Finds the harmonic peaks of a signal given its spectral peaks and its fundamental frequency

### HighResolutionFeatures

*standard*,

*streaming*)

Computes high-resolution chroma features from an HPCP vector

### NNLSChroma

*standard*,

*streaming*)

Extracts treble and bass chromagrams from a sequence of log-frequency spectrum frames

### OddToEvenHarmonicEnergyRatio

*standard*,

*streaming*)

Computes the ratio between a signal's odd and even harmonic energy given the signal's harmonic peaks

## Music Similarity

### ChromaCrossSimilarity

*standard*,

*streaming*)

Computes a binary cross similarity matrix from two chromagam feature vectors of a query and reference song

### CoverSongSimilarity

*standard*,

*streaming*)

Computes a cover song similiarity measure from a binary cross similarity matrix input between two chroma vectors of a query and reference song using various alignment constraints of smith-waterman local-alignment algorithm

### CrossSimilarityMatrix

*standard*)

Computes a euclidean cross-similarity matrix of two sequences of frame features

## Fingerprinting

## Audio Problems

### ClickDetector

*standard*,

*streaming*)

Detects the locations of impulsive noises (clicks and pops) on the input audio frame

### DiscontinuityDetector

*standard*,

*streaming*)

Uses LPC and some heuristics to detect discontinuities in an audio signal

### FalseStereoDetector

*standard*,

*streaming*)

Detects if a stereo track has duplicated channels (false stereo)

### NoiseBurstDetector

*standard*,

*streaming*)

Detects noise bursts in the waveform by thresholding the peaks of the second derivative

### SaturationDetector

*standard*,

*streaming*)

This algorithm outputs the staring/ending locations of the saturated regions in seconds

## Duration/silence

## Loudness/dynamics

### DynamicComplexity

*standard*,

*streaming*)

Computes the dynamic complexity defined as the average absolute deviation from the global loudness level estimate on the dB scale

### Intensity

*standard*)

Classifies the input audio signal as either relaxed (-1), moderate (0), or aggressive (1)

### LevelExtractor

*standard*,

*streaming*)

Extracts the loudness of an audio signal in frames using Loudness algorithm

### LoudnessEBUR128Filter

*streaming*)

An auxilary signal preprocessing algorithm used within the LoudnessEBUR128 algorithm

## Extractors

### Extractor

*standard*)

Extracts all low-level, mid-level and high-level features from an audio signal and stores them in a pool

### LowLevelSpectralEqloudExtractor

*standard*,

*streaming*)

Extracts a set of level spectral features for which it is recommended to apply a preliminary equal-loudness filter over an input audio signal (according to the internal evaluations conducted at Music Technology Group)

## Synthesis

### HarmonicMask

*standard*,

*streaming*)

Applies a spectral mask to remove a pitched source component from the signal

### SineSubtraction

*standard*,

*streaming*)

Subtracts the sinusoids computed with the sine model analysis from an input audio signal

### SprModelSynth

*standard*,

*streaming*)

Computes the sinusoidal plus residual model synthesis from SPS model analysis

## Pitch

### MultiPitchKlapuri

*standard*)

Estimates multiple pitch values corresponding to the melodic lines present in a polyphonic music signal (for example, string quartet, piano)

### MultiPitchMelodia

*standard*,

*streaming*)

Estimates multiple fundamental frequency contours from an audio signal

### PitchContourSegmentation

*standard*)

Converts a pitch sequence estimated from an audio signal into a set of discrete note events

### PitchContoursMelody

*standard*,

*streaming*)

Converts a set of pitch contours into a sequence of predominant f0 values in Hz by taking the value of the most predominant contour in each frame

### PitchContoursMonoMelody

*standard*,

*streaming*)

Converts a set of pitch contours into a sequence of f0 values in Hz by taking the value of the most salient contour in each frame

### PitchContoursMultiMelody

*standard*,

*streaming*)

Post-processes a set of pitch contours into a sequence of mutliple f0 values in Hz

### PitchFilter

*standard*,

*streaming*)

Corrects the fundamental frequency estimations for a sequence of frames given pitch values together with their confidence values

### PitchMelodia

*standard*,

*streaming*)

Estimates the fundamental frequency corresponding to the melody of a monophonic music signal based on the MELODIA algorithm

### PitchSalienceFunction

*standard*,

*streaming*)

Computes the pitch salience function of a signal frame given its spectral peaks

### PitchSalienceFunctionPeaks

*standard*,

*streaming*)

Computes the peaks of a given pitch salience function

### PitchYin

*standard*,

*streaming*)

Estimates the fundamental frequency given the frame of a monophonic music signal

### PitchYinFFT

*standard*,

*streaming*)

Estimates the fundamental frequency given the spectrum of a monophonic music signal

### PitchYinProbabilistic

*standard*,

*streaming*)

Computes the pitch track of a mono audio signal using probabilistic Yin algorithm

### PitchYinProbabilities

*standard*,

*streaming*)

Estimates the fundamental frequencies, their probabilities given the frame of a monophonic music signal

### PitchYinProbabilitiesHMM

*standard*,

*streaming*)

Estimates the smoothed fundamental frequency given the pitch candidates and probabilities using hidden Markov models