be.hogent.tarsos.dsp.pitch
Class Yin

java.lang.Object
  extended by be.hogent.tarsos.dsp.pitch.Yin
All Implemented Interfaces:
PitchDetector

public final class Yin
extends java.lang.Object
implements PitchDetector

An implementation of the AUBIO_YIN pitch tracking algorithm. See the YIN paper. Implementation based on aubio

Author:
Joren Six, Paul Brossier

Field Summary
static int DEFAULT_BUFFER_SIZE
          The default size of an audio buffer (in samples).
static int DEFAULT_OVERLAP
          The default overlap of two consecutive audio buffers (in samples).
 
Constructor Summary
Yin(float audioSampleRate, int bufferSize)
          Create a new pitch detector for a stream with the defined sample rate.
Yin(float audioSampleRate, int bufferSize, double yinThreshold)
          Create a new pitch detector for a stream with the defined sample rate.
 
Method Summary
 PitchDetectionResult getPitch(float[] audioBuffer)
          The main flow of the YIN algorithm.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_BUFFER_SIZE

public static final int DEFAULT_BUFFER_SIZE
The default size of an audio buffer (in samples).

See Also:
Constant Field Values

DEFAULT_OVERLAP

public static final int DEFAULT_OVERLAP
The default overlap of two consecutive audio buffers (in samples).

See Also:
Constant Field Values
Constructor Detail

Yin

public Yin(float audioSampleRate,
           int bufferSize)
Create a new pitch detector for a stream with the defined sample rate. Processes the audio in blocks of the defined size.

Parameters:
audioSampleRate - The sample rate of the audio stream. E.g. 44.1 kHz.
bufferSize - The size of a buffer. E.g. 1024.

Yin

public Yin(float audioSampleRate,
           int bufferSize,
           double yinThreshold)
Create a new pitch detector for a stream with the defined sample rate. Processes the audio in blocks of the defined size.

Parameters:
audioSampleRate - The sample rate of the audio stream. E.g. 44.1 kHz.
bufferSize - The size of a buffer. E.g. 1024.
yinThreshold - The parameter that defines which peaks are kept as possible pitch candidates. See the YIN paper for more details.
Method Detail

getPitch

public PitchDetectionResult getPitch(float[] audioBuffer)
The main flow of the YIN algorithm. Returns a pitch value in Hz or -1 if no pitch is detected.

Specified by:
getPitch in interface PitchDetector
Parameters:
audioBuffer - The buffer with audio information. The information in the buffer is not modified so it can be (re)used for e.g. FFT analysis.
Returns:
a pitch value in Hz or -1 if no pitch is detected.