librosa.core.pitch_tuning

librosa.core.pitch_tuning(frequencies, resolution=0.01, bins_per_octave=12)[source]

Given a collection of pitches, estimate its tuning offset (in fractions of a bin) relative to A440=440.0Hz.

Parameters:
frequencies : array-like, float

A collection of frequencies detected in the signal. See piptrack

resolution : float in (0, 1)

Resolution of the tuning as a fraction of a bin. 0.01 corresponds to cents.

bins_per_octave : int > 0 [scalar]

How many frequency bins per octave

Returns:
tuning: float in `[-0.5, 0.5)`

estimated tuning deviation (fractions of a bin)

See also

estimate_tuning
Estimating tuning from time-series or spectrogram input

Examples

>>> # Generate notes at +25 cents
>>> freqs = librosa.cqt_frequencies(24, 55, tuning=0.25)
>>> librosa.pitch_tuning(freqs)
0.25
>>> # Track frequencies from a real spectrogram
>>> y, sr = librosa.load(librosa.util.example_audio_file())
>>> pitches, magnitudes, stft = librosa.ifptrack(y, sr)
>>> # Select out pitches with high energy
>>> pitches = pitches[magnitudes > np.median(magnitudes)]
>>> librosa.pitch_tuning(pitches)
0.089999999999999969