From: Paul Brossier Date: Tue, 30 Oct 2007 02:01:30 +0000 (+0100) Subject: pitchdetection.{c,h}: remove tabs X-Git-Tag: bzr2git~508 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=6d4ec49ab17f5f38829acc92b195083ac4199e80;p=aubio.git pitchdetection.{c,h}: remove tabs --- diff --git a/src/pitchdetection.c b/src/pitchdetection.c index 2a831043..806c8299 100644 --- a/src/pitchdetection.c +++ b/src/pitchdetection.c @@ -14,7 +14,7 @@ You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -*/ + */ #include "aubio_priv.h" #include "sample.h" @@ -28,16 +28,18 @@ #include "pitchyinfft.h" #include "pitchdetection.h" -typedef smpl_t (*aubio_pitchdetection_func_t)(aubio_pitchdetection_t *p, - fvec_t * ibuf); -typedef smpl_t (*aubio_pitchdetection_conv_t)(smpl_t value,uint_t srate,uint_t bufsize); +typedef smpl_t (*aubio_pitchdetection_func_t) + (aubio_pitchdetection_t *p, fvec_t * ibuf); +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); +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); /** generic pitch detection structure */ struct _aubio_pitchdetection_t { @@ -63,183 +65,181 @@ struct _aubio_pitchdetection_t { * should probably be rewritten with #defines */ smpl_t freqconvbin(smpl_t f,uint_t srate,uint_t bufsize); smpl_t freqconvbin(smpl_t f,uint_t srate,uint_t bufsize){ - return aubio_freqtobin(f,srate,bufsize); + return aubio_freqtobin(f,srate,bufsize); } smpl_t freqconvmidi(smpl_t f,uint_t srate,uint_t bufsize); smpl_t freqconvmidi(smpl_t f,uint_t srate UNUSED,uint_t bufsize UNUSED){ - return aubio_freqtomidi(f); + return aubio_freqtomidi(f); } smpl_t freqconvpass(smpl_t f,uint_t srate,uint_t bufsize); smpl_t freqconvpass(smpl_t f,uint_t srate UNUSED,uint_t bufsize UNUSED){ - return f; + return f; } 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) { - aubio_pitchdetection_t *p = AUBIO_NEW(aubio_pitchdetection_t); - p->srate = samplerate; - p->type = type; - p->mode = mode; - p->bufsize = bufsize; - switch(p->type) { - case aubio_pitch_yin: - p->buf = new_fvec(bufsize,channels); - p->yin = new_fvec(bufsize/2,channels); - p->callback = aubio_pitchdetection_yin; - p->yinthres = 0.15; - break; - case aubio_pitch_mcomb: - p->pv = new_aubio_pvoc(bufsize, hopsize, channels); - p->fftgrain = new_cvec(bufsize, channels); - p->mcomb = new_aubio_pitchmcomb(bufsize,hopsize,channels,samplerate); - p->filter = new_aubio_cdsgn_filter(samplerate); - p->callback = aubio_pitchdetection_mcomb; - break; - case aubio_pitch_fcomb: - p->buf = new_fvec(bufsize,channels); - p->fcomb = new_aubio_pitchfcomb(bufsize,hopsize,samplerate); - p->callback = aubio_pitchdetection_fcomb; - break; - case aubio_pitch_schmitt: - p->buf = new_fvec(bufsize,channels); - p->schmitt = new_aubio_pitchschmitt(bufsize,samplerate); - p->callback = aubio_pitchdetection_schmitt; - break; - case aubio_pitch_yinfft: - p->buf = new_fvec(bufsize,channels); - p->yinfft = new_aubio_pitchyinfft(bufsize); - p->callback = aubio_pitchdetection_yinfft; - p->yinthres = 0.85; - break; - default: - break; - } - switch(p->mode) { - case aubio_pitchm_freq: - p->freqconv = freqconvpass; - break; - case aubio_pitchm_midi: - p->freqconv = freqconvmidi; - break; - case aubio_pitchm_cent: - /* bug: not implemented */ - p->freqconv = freqconvmidi; - break; - case aubio_pitchm_bin: - p->freqconv = freqconvbin; - break; - default: - break; - } - return p; + aubio_pitchdetection_t *p = AUBIO_NEW(aubio_pitchdetection_t); + p->srate = samplerate; + p->type = type; + p->mode = mode; + p->bufsize = bufsize; + switch(p->type) { + case aubio_pitch_yin: + p->buf = new_fvec(bufsize,channels); + p->yin = new_fvec(bufsize/2,channels); + p->callback = aubio_pitchdetection_yin; + p->yinthres = 0.15; + break; + case aubio_pitch_mcomb: + p->pv = new_aubio_pvoc(bufsize, hopsize, channels); + p->fftgrain = new_cvec(bufsize, channels); + p->mcomb = new_aubio_pitchmcomb(bufsize,hopsize,channels,samplerate); + p->filter = new_aubio_cdsgn_filter(samplerate); + p->callback = aubio_pitchdetection_mcomb; + break; + case aubio_pitch_fcomb: + p->buf = new_fvec(bufsize,channels); + p->fcomb = new_aubio_pitchfcomb(bufsize,hopsize,samplerate); + p->callback = aubio_pitchdetection_fcomb; + break; + case aubio_pitch_schmitt: + p->buf = new_fvec(bufsize,channels); + p->schmitt = new_aubio_pitchschmitt(bufsize,samplerate); + p->callback = aubio_pitchdetection_schmitt; + break; + case aubio_pitch_yinfft: + p->buf = new_fvec(bufsize,channels); + p->yinfft = new_aubio_pitchyinfft(bufsize); + p->callback = aubio_pitchdetection_yinfft; + p->yinthres = 0.85; + break; + default: + break; + } + switch(p->mode) { + case aubio_pitchm_freq: + p->freqconv = freqconvpass; + break; + case aubio_pitchm_midi: + p->freqconv = freqconvmidi; + break; + case aubio_pitchm_cent: + /* bug: not implemented */ + p->freqconv = freqconvmidi; + break; + case aubio_pitchm_bin: + p->freqconv = freqconvbin; + break; + default: + break; + } + return p; } void del_aubio_pitchdetection(aubio_pitchdetection_t * p) { - switch(p->type) { - case aubio_pitch_yin: - del_fvec(p->yin); - del_fvec(p->buf); - break; - case aubio_pitch_mcomb: - del_aubio_pvoc(p->pv); - del_cvec(p->fftgrain); - del_aubio_pitchmcomb(p->mcomb); - break; - case aubio_pitch_schmitt: - del_fvec(p->buf); - del_aubio_pitchschmitt(p->schmitt); - break; - case aubio_pitch_fcomb: - del_fvec(p->buf); - del_aubio_pitchfcomb(p->fcomb); - break; - case aubio_pitch_yinfft: - del_fvec(p->buf); - del_aubio_pitchyinfft(p->yinfft); - break; - default: - break; - } - AUBIO_FREE(p); + switch(p->type) { + case aubio_pitch_yin: + del_fvec(p->yin); + del_fvec(p->buf); + break; + case aubio_pitch_mcomb: + del_aubio_pvoc(p->pv); + del_cvec(p->fftgrain); + del_aubio_pitchmcomb(p->mcomb); + break; + case aubio_pitch_schmitt: + del_fvec(p->buf); + del_aubio_pitchschmitt(p->schmitt); + break; + case aubio_pitch_fcomb: + del_fvec(p->buf); + del_aubio_pitchfcomb(p->fcomb); + break; + case aubio_pitch_yinfft: + del_fvec(p->buf); + del_aubio_pitchyinfft(p->yinfft); + break; + default: + break; + } + AUBIO_FREE(p); } void aubio_pitchdetection_slideblock(aubio_pitchdetection_t *p, fvec_t *ibuf){ - uint_t i,j = 0, overlap_size = 0; - overlap_size = p->buf->length-ibuf->length; - for (i=0;ibuf->channels;i++){ - for (j=0;jbuf->data[i][j] = - p->buf->data[i][j+ibuf->length]; - } - } - for (i=0;ichannels;i++){ - for (j=0;jlength;j++){ - p->buf->data[i][j+overlap_size] = - ibuf->data[i][j]; - } - } + uint_t i,j = 0, overlap_size = 0; + overlap_size = p->buf->length-ibuf->length; + for (i=0;ibuf->channels;i++){ + for (j=0;jbuf->data[i][j] = p->buf->data[i][j+ibuf->length]; + } + } + for (i=0;ichannels;i++){ + for (j=0;jlength;j++){ + p->buf->data[i][j+overlap_size] = ibuf->data[i][j]; + } + } } void aubio_pitchdetection_set_yinthresh(aubio_pitchdetection_t *p, smpl_t thres) { - p->yinthres = thres; + p->yinthres = thres; } smpl_t aubio_pitchdetection(aubio_pitchdetection_t *p, fvec_t * ibuf) { - return p->freqconv(p->callback(p,ibuf),p->srate,p->bufsize); + return p->freqconv(p->callback(p,ibuf),p->srate,p->bufsize); } smpl_t aubio_pitchdetection_mcomb(aubio_pitchdetection_t *p, fvec_t *ibuf) { - smpl_t pitch = 0.; - aubio_filter_do(p->filter,ibuf); - aubio_pvoc_do(p->pv,ibuf,p->fftgrain); - pitch = aubio_pitchmcomb_detect(p->mcomb,p->fftgrain); - /** \bug should move the >0 check within aubio_bintofreq */ - if (pitch>0.) { - pitch = aubio_bintofreq(pitch,p->srate,p->bufsize); - } else { - pitch = 0.; - } - return pitch; + smpl_t pitch = 0.; + aubio_filter_do(p->filter,ibuf); + aubio_pvoc_do(p->pv,ibuf,p->fftgrain); + pitch = aubio_pitchmcomb_detect(p->mcomb,p->fftgrain); + /** \bug should move the >0 check within aubio_bintofreq */ + if (pitch>0.) { + pitch = aubio_bintofreq(pitch,p->srate,p->bufsize); + } else { + pitch = 0.; + } + return pitch; } smpl_t aubio_pitchdetection_yin(aubio_pitchdetection_t *p, fvec_t *ibuf) { - smpl_t pitch = 0.; - aubio_pitchdetection_slideblock(p,ibuf); - pitch = aubio_pitchyin_getpitchfast(p->buf,p->yin, p->yinthres); - if (pitch>0) { - pitch = p->srate/(pitch+0.); - } else { - pitch = 0.; - } - return pitch; + smpl_t pitch = 0.; + aubio_pitchdetection_slideblock(p,ibuf); + pitch = aubio_pitchyin_getpitchfast(p->buf,p->yin, p->yinthres); + if (pitch>0) { + pitch = p->srate/(pitch+0.); + } else { + pitch = 0.; + } + return pitch; } smpl_t aubio_pitchdetection_yinfft(aubio_pitchdetection_t *p, fvec_t *ibuf){ - smpl_t pitch = 0.; - aubio_pitchdetection_slideblock(p,ibuf); - pitch = aubio_pitchyinfft_detect(p->yinfft,p->buf,p->yinthres); - if (pitch>0) { - pitch = p->srate/(pitch+0.); - } else { - pitch = 0.; - } - return pitch; + smpl_t pitch = 0.; + aubio_pitchdetection_slideblock(p,ibuf); + pitch = aubio_pitchyinfft_detect(p->yinfft,p->buf,p->yinthres); + if (pitch>0) { + pitch = p->srate/(pitch+0.); + } else { + pitch = 0.; + } + return pitch; } smpl_t aubio_pitchdetection_fcomb(aubio_pitchdetection_t *p, fvec_t *ibuf){ - aubio_pitchdetection_slideblock(p,ibuf); - return aubio_pitchfcomb_detect(p->fcomb,p->buf); + aubio_pitchdetection_slideblock(p,ibuf); + return aubio_pitchfcomb_detect(p->fcomb,p->buf); } smpl_t aubio_pitchdetection_schmitt(aubio_pitchdetection_t *p, fvec_t *ibuf){ - aubio_pitchdetection_slideblock(p,ibuf); - return aubio_pitchschmitt_detect(p->schmitt,p->buf); + aubio_pitchdetection_slideblock(p,ibuf); + return aubio_pitchschmitt_detect(p->schmitt,p->buf); } diff --git a/src/pitchdetection.h b/src/pitchdetection.h index 92e760fe..164b1f53 100644 --- a/src/pitchdetection.h +++ b/src/pitchdetection.h @@ -14,7 +14,7 @@ You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -*/ + */ #ifndef PITCHAUTOTCORR_H #define PITCHAUTOTCORR_H @@ -25,7 +25,7 @@ extern "C" { /** \file - Generic method for pitch detection + 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. @@ -34,65 +34,65 @@ extern "C" { /** pitch detection algorithm */ typedef enum { - 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_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, /**< Frequency (Hz) */ - aubio_pitchm_midi, /**< MIDI note (0.,127) */ - aubio_pitchm_cent, /**< Cent */ - aubio_pitchm_bin /**< Frequency bin (0,bufsize) */ + 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 - + \param ibuf input signal of length hopsize + */ smpl_t aubio_pitchdetection(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 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 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); +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); #ifdef __cplusplus } #endif -#endif /*PITCHDETECTION_H*/ +#endif /*PITCHDETECTION_H*/