ref: f44b11162c98da00bdc88cd54c584a8257f92433
parent: ab0b69badbf2cf070a8c32070389fb878bac7571
author: Paul Brossier <[email protected]>
date: Wed May 17 15:44:51 EDT 2006
update pitchdetection docs, make wrapper methods private update pitchdetection docs, make wrapper methods private
--- a/src/pitchdetection.c
+++ b/src/pitchdetection.c
@@ -33,6 +33,12 @@
typedef smpl_t (*aubio_pitchdetection_conv_t)(smpl_t value,uint_t srate,uint_t bufsize);
void aubio_pitchdetection_slideblock(aubio_pitchdetection_t *p, fvec_t *ibuf);
+smpl_t aubio_pitchdetection_mcomb(aubio_pitchdetection_t *p, fvec_t * ibuf);
+smpl_t aubio_pitchdetection_yin(aubio_pitchdetection_t *p, fvec_t *ibuf);
+smpl_t aubio_pitchdetection_schmitt(aubio_pitchdetection_t *p, fvec_t *ibuf);
+smpl_t aubio_pitchdetection_fcomb(aubio_pitchdetection_t *p, fvec_t *ibuf);
+smpl_t aubio_pitchdetection_yinfft(aubio_pitchdetection_t *p, fvec_t *ibuf);
+
struct _aubio_pitchdetection_t {
aubio_pitchdetection_type type;
aubio_pitchdetection_mode mode;
@@ -124,7 +130,7 @@
p->freqconv = freqconvmidi;
break;
case aubio_pitchm_cent:
- /** bug: not implemented */
+ /* bug: not implemented */
p->freqconv = freqconvmidi;
break;
case aubio_pitchm_bin:
--- a/src/pitchdetection.h
+++ b/src/pitchdetection.h
@@ -23,39 +23,73 @@
extern "C" {
#endif
+/** \file
+
+ Generic method for pitch detection
+
+ This file creates the objects required for the computation of the selected
+ pitch detection algorithm and output the results, in midi note or Hz.
+
+*/
+
+/** pitch detection algorithm */
typedef enum {
- aubio_pitch_yin,
- aubio_pitch_mcomb,
- aubio_pitch_schmitt,
- aubio_pitch_fcomb,
- aubio_pitch_yinfft
+ aubio_pitch_yin, /**< YIN algorithm */
+ aubio_pitch_mcomb, /**< Multi-comb filter */
+ aubio_pitch_schmitt, /**< Schmitt trigger */
+ aubio_pitch_fcomb, /**< Fast comb filter */
+ aubio_pitch_yinfft /**< Spectral YIN */
} aubio_pitchdetection_type;
+/** pitch detection output mode */
typedef enum {
- aubio_pitchm_freq,
- aubio_pitchm_midi,
- aubio_pitchm_cent,
- aubio_pitchm_bin
+ aubio_pitchm_freq, /**< Frequency (Hz) */
+ aubio_pitchm_midi, /**< MIDI note (0.,127) */
+ aubio_pitchm_cent, /**< Cent */
+ aubio_pitchm_bin /**< Frequency bin (0,bufsize) */
} aubio_pitchdetection_mode;
+/** pitch detection object */
typedef struct _aubio_pitchdetection_t aubio_pitchdetection_t;
-
+
+/** execute pitch detection on an input signal frame
+
+ \param p pitch detection object as returned by new_aubio_pitchdetection
+ \param ibuf input signal of length hopsize
+
+*/
smpl_t aubio_pitchdetection(aubio_pitchdetection_t * p, fvec_t * ibuf);
-smpl_t aubio_pitchdetection_mcomb(aubio_pitchdetection_t *p, fvec_t * ibuf);
-smpl_t aubio_pitchdetection_yin(aubio_pitchdetection_t *p, fvec_t *ibuf);
-smpl_t aubio_pitchdetection_schmitt(aubio_pitchdetection_t *p, fvec_t *ibuf);
-smpl_t aubio_pitchdetection_fcomb(aubio_pitchdetection_t *p, fvec_t *ibuf);
-smpl_t aubio_pitchdetection_yinfft(aubio_pitchdetection_t *p, fvec_t *ibuf);
+/** change yin or yinfft tolerance threshold
+
+ default is 0.15 for yin and 0.85 for yinfft
+
+*/
void aubio_pitchdetection_set_yinthresh(aubio_pitchdetection_t *p, smpl_t thres);
+
+/** deletion of the pitch detection object
+
+ \param p pitch detection object as returned by new_aubio_pitchdetection
+
+*/
void del_aubio_pitchdetection(aubio_pitchdetection_t * p);
+/** creation of the pitch detection object
+
+ \param bufsize size of the input buffer to analyse
+ \param hopsize step size between two consecutive analysis instant
+ \param channels number of channels to analyse
+ \param samplerate sampling rate of the signal
+ \param type set pitch detection algorithm
+ \param mode set pitch units for output
+
+*/
aubio_pitchdetection_t * new_aubio_pitchdetection(uint_t bufsize,
- uint_t hopsize,
- uint_t channels,
- uint_t samplerate,
- aubio_pitchdetection_type type,
- aubio_pitchdetection_mode mode);
+ uint_t hopsize,
+ uint_t channels,
+ uint_t samplerate,
+ aubio_pitchdetection_type type,
+ aubio_pitchdetection_mode mode);
#ifdef __cplusplus
}
--- a/swig/aubio.i
+++ b/swig/aubio.i
@@ -203,8 +203,6 @@
} aubio_pitchdetection_mode;
smpl_t aubio_pitchdetection(aubio_pitchdetection_t * p, fvec_t * ibuf);
-smpl_t aubio_pitchdetection_mcomb(aubio_pitchdetection_t *p, fvec_t * ibuf);
-smpl_t aubio_pitchdetection_yin(aubio_pitchdetection_t *p, fvec_t *ibuf);
void aubio_pitchdetection_set_yinthresh(aubio_pitchdetection_t *p, smpl_t thres);