export type InputBuffer = Float32Array | number[];
/**
* default : use the default method
*
* Currently, the default method is set to yinfft .
*
* schmitt : Schmitt trigger
*
* This pitch extraction method implements a Schmitt trigger to estimate the
* period of a signal.
*
* This file was derived from the tuneit project, written by Mario Lang to
* detect the fundamental frequency of a sound.
*
* See http://delysid.org/tuneit.html
*
* fcomb : a fast harmonic comb filter
*
* This pitch extraction method implements a fast harmonic comb filter to
* determine the fundamental frequency of a harmonic sound.
*
* This file was derived from the tuneit project, written by Mario Lang to
* detect the fundamental frequency of a sound.
*
* See http://delysid.org/tuneit.html
*
* mcomb : multiple-comb filter
*
* This fundamental frequency estimation algorithm implements spectral
* flattening, multi-comb filtering and peak histogramming.
*
* This method was designed by Juan P. Bello and described in:
*
* Juan-Pablo Bello. ``Towards the Automated Analysis of Simple Polyphonic
* Music''. PhD thesis, Centre for Digital Music, Queen Mary University of
* London, London, UK, 2003.
*
* yin : YIN algorithm
*
* This algorithm was developed by A. de Cheveigne and H. Kawahara and
* published in:
*
* De Cheveigné, A., Kawahara, H. (2002) "YIN, a fundamental frequency
* estimator for speech and music", J. Acoust. Soc. Am. 111, 1917-1930.
*
* see http://recherche.ircam.fr/equipes/pcm/pub/people/cheveign.html
*
* yinfast : Yinfast algorithm
*
* This algorithm is equivalent to the YIN algorithm, but computed in the
* spectral domain for efficiency. See also `python/demos/demo_yin_compare.py`.
*
* yinfft : Yinfft algorithm
*
* This algorithm was derived from the YIN algorithm. In this implementation, a
* Fourier transform is used to compute a tapered square difference function,
* which allows spectral weighting. Because the difference function is tapered,
* the selection of the period is simplified.
*
* Paul Brossier, [Automatic annotation of musical audio for interactive
* systems](http://aubio.org/phd/), Chapter 3, Pitch Analysis, PhD thesis,
* Centre for Digital music, Queen Mary University of London, London, UK, 2006.
*/
export declare type PitchMethod =
| "default"
| "yin"
| "mcomb"
| "schmitt"
| "fcomb"
| "yinfft"
| "yinfast"
| "specacf";
export declare class Pitch {
/**
* execute pitch detection on an input signal frame
*/
do(buffer: InputBuffer): number;
}
export declare class Tempo {
/**
* execute tempo detection
*/
do(buffer: InputBuffer): number;
/**
* get current tempo
*/
getBpm(): number;
/**
* get current tempo confidence
*/
getConfidence(): number;
}
export declare class Onset {
/**
* execute onset detection
*/
do(buffer: InputBuffer): number;
/**
* get the time of the latest onset detected, in samples
*/
getLast(): number;
/**
* get the time of the latest onset detected, in seconds
*/
getLastS(): number;
/**
* get the time of the latest onset detected, in milliseconds
*/
getLastMs(): number;
/**
* set onset detection adaptive whitening
*/
setAwhitening(enable: boolean):number;
/**
* get onset detection adaptive whitening
*/
getAwhitening():number;
/**
* set or disable log compression
*/
setCompression(enable: boolean):number;
/**
* get onset detection log compression
*/
getCompression(): number;
/**
* set onset detection silence threshold
*/
setSilence(silence: number):number;
/**
* get onset detection silence threshold
*/
getSilence(): number;
/**
* get onset detection function
*/
getDescriptor(): number;
/**
* get thresholded onset detection function
*/
getThresholdedDescriptor(): number;
/**
* set onset detection peak picking threshold
*/
setThreshold(threshold: number):number;
/**
* get onset peak picking threshold
*/
getThreshold(): number;
/**
* set minimum inter onset interval in samples
*/
getMinioi(): number;
/**
* set minimum inter onset interval in seconds
*/
getMinioiS(): number;
/**
* set minimum inter onset interval in milliseconds
*/
getMinioiMs(): number;
/**
* set delay in samples
*/
setDelay(delay: number): number;
/**
* set delay in seconds
*/
setDelayS(delay: number): number;
/**
* set delay in milliseconds
*/
setDelayMs(delay: number): number;
/**
* get delay in samples
*/
getDelay(): number;
/**
* get delay in seconds
*/
getDelayS(): number;
/**
* get delay in milliseconds
*/
getDelayMs(): number;
/**
* set default parameters
*/
setDefaultParameters(): number;
/**
* reset onset detection
*/
reset(): void;
}
export declare type Aubio = {
Pitch: {
/**
* Pitch detection
*
* @param method - pitch detection algorithm
* @param bufferSize - size of the input buffer to analyse
* @param hopSize - step size between two consecutive analysis instant
* @param sampleRate - sampling rate of the signal
*/
new (
method: PitchMethod,
bufferSize: number,
hopSize: number,
sampleRate: number
): Pitch;
};
Tempo: {
/**
* Tempo detection
*
* @param method - pitch detection algorithm
* @param bufferSize - length of FFT
* @param hopSize - number of frames between two consecutive runs
* @param sampleRate - sampling rate of the signal to analyze
*/
new (bufferSize: number, hopSize: number, sampleRate: number): Tempo;
};
Onset: {
/**
* Onset detection
*
* @param method - pitch detection algorithm
* @param bufferSize - length of FFT
* @param hopSize - number of frames between two consecutive runs
* @param sampleRate - sampling rate of the signal to analyze
*/
new (bufferSize: number, hopSize: number, sampleRate: number): Onset;
};
};
/**
* aubio is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* aubio is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with aubio. If not, see .
*/
declare function aubio(): Promise;
export default aubio;