Exemple #1
0
void
aubio_pitch_do_yinfft (aubio_pitch_t * p, const fvec_t * ibuf, fvec_t * obuf)
{
  smpl_t pitch = 0.;
  aubio_pitch_slideblock (p, ibuf);
  aubio_pitchyinfft_do (p->p_object, p->buf, obuf);
  pitch = obuf->data[0];
  if (pitch > 0) {
    pitch = p->samplerate / (pitch + 0.);
  } else {
    pitch = 0.;
  }
  obuf->data[0] = pitch;
}
Exemple #2
0
int main(){
        /* allocate some memory */
        uint_t win_s      = 1024;                       /* window size */
        fvec_t * in       = new_fvec (win_s); /* input buffer */
        fvec_t * out      = new_fvec (1); /* output pitch periods */
        aubio_pitchyinfft_t * o  = new_aubio_pitchyinfft(win_s);
        aubio_pitchyinfft_set_tolerance (o, 0.2);
        uint_t i = 0;

        while (i < 10) {
          aubio_pitchyinfft_do (o,in,out);
          i++;
        };

        del_aubio_pitchyinfft(o);
        del_fvec(in);
        del_fvec(out);
        aubio_cleanup();

        return 0;
}