source: src/pitch/pitchyinfft.h @ 5d16185

feature/autosinkfeature/cnnfeature/cnn_orgfeature/constantqfeature/crepefeature/crepe_orgfeature/pitchshiftfeature/pydocstringsfeature/timestretchfix/ffmpeg5pitchshiftsamplertimestretchyinfft+
Last change on this file since 5d16185 was 5284e0d, checked in by Paul Brossier <piem@piem.org>, 12 years ago

src/pitch: start adding confidence

  • Property mode set to 100644
File size: 2.9 KB
Line 
1/*
2  Copyright (C) 2003-2009 Paul Brossier <piem@aubio.org>
3
4  This file is part of aubio.
5
6  aubio is free software: you can redistribute it and/or modify
7  it under the terms of the GNU General Public License as published by
8  the Free Software Foundation, either version 3 of the License, or
9  (at your option) any later version.
10
11  aubio is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  GNU General Public License for more details.
15
16  You should have received a copy of the GNU General Public License
17  along with aubio.  If not, see <http://www.gnu.org/licenses/>.
18
19*/
20
21/** \file
22 
23  Pitch detection using a spectral implementation of the YIN algorithm
24 
25  This algorithm was derived from the YIN algorithm (see pitchyin.c). In this
26  implementation, a Fourier transform is used to compute a tapered square
27  difference function, which allows spectral weighting. Because the difference
28  function is tapered, the selection of the period is simplified.
29 
30  Paul Brossier, ``Automatic annotation of musical audio for interactive
31  systems'', Chapter 3, Pitch Analysis, PhD thesis, Centre for Digital music,
32  Queen Mary University of London, London, UK, 2006.
33
34  \example pitch/test-pitchyinfft.c
35
36*/
37
38#ifndef PITCHYINFFT_H
39#define PITCHYINFFT_H
40
41#ifdef __cplusplus
42extern "C" {
43#endif
44
45/** pitch detection object */
46typedef struct _aubio_pitchyinfft_t aubio_pitchyinfft_t;
47
48/** execute pitch detection on an input buffer
49 
50  \param o pitch detection object as returned by new_aubio_pitchyinfft
51  \param samples_in input signal vector (length as specified at creation time)
52  \param cands_out pitch period candidates, in samples
53 
54*/
55void aubio_pitchyinfft_do (aubio_pitchyinfft_t * o, fvec_t * samples_in, fvec_t * cands_out);
56/** creation of the pitch detection object
57 
58  \param buf_size size of the input buffer to analyse
59 
60*/
61aubio_pitchyinfft_t *new_aubio_pitchyinfft (uint_t buf_size);
62/** deletion of the pitch detection object
63 
64  \param o pitch detection object as returned by new_aubio_pitchyinfft()
65 
66*/
67void del_aubio_pitchyinfft (aubio_pitchyinfft_t * o);
68
69/** get tolerance parameter for YIN algorithm
70 
71  \param o YIN pitch detection object
72
73  \return tolerance parameter for minima selection [default 0.15]
74
75*/
76smpl_t aubio_pitchyinfft_get_tolerance (aubio_pitchyinfft_t * o);
77
78/** set tolerance parameter for YIN algorithm
79 
80  \param o YIN pitch detection object
81  \param tol tolerance parameter for minima selection [default 0.15]
82
83*/
84uint_t aubio_pitchyinfft_set_tolerance (aubio_pitchyinfft_t * o, smpl_t tol);
85
86/** get current confidence of YIN algorithm
87
88  \param o YIN pitch detection object
89  \return confidence parameter
90
91*/
92smpl_t aubio_pitchyinfft_get_confidence (aubio_pitchyinfft_t * o);
93
94#ifdef __cplusplus
95}
96#endif
97
98#endif /*PITCHYINFFT_H*/ 
Note: See TracBrowser for help on using the repository browser.