Changeset a2f3555


Ignore:
Timestamp:
Nov 21, 2007, 12:53:28 PM (13 years ago)
Author:
Paul Brossier <piem@piem.org>
Branches:
feature/autosink, feature/constantq, feature/pitchshift, feature/pydocstrings, feature/timestretch, master, pitchshift, sampler, timestretch, yinfft+
Children:
9668a37
Parents:
c7f32b1
Message:

pitchyin.c: redo indentation

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/pitchyin.c

    rc7f32b1 ra2f3555  
    3333/* outputs the difference function */
    3434void aubio_pitchyin_diff(fvec_t * input, fvec_t * yin){
    35         uint_t c,j,tau;
    36         smpl_t tmp;
    37         for (c=0;c<input->channels;c++)
    38         {
    39                 for (tau=0;tau<yin->length;tau++)
    40                 {
    41                         yin->data[c][tau] = 0.;
    42                 }
    43                 for (tau=1;tau<yin->length;tau++)
    44                 {
    45                         for (j=0;j<yin->length;j++)
    46                         {
    47                                 tmp = input->data[c][j] - input->data[c][j+tau];
    48                                 yin->data[c][tau] += SQR(tmp);
    49                         }
    50                 }
    51         }
     35  uint_t c,j,tau;
     36  smpl_t tmp;
     37  for (c=0;c<input->channels;c++)
     38  {
     39    for (tau=0;tau<yin->length;tau++)
     40    {
     41      yin->data[c][tau] = 0.;
     42    }
     43    for (tau=1;tau<yin->length;tau++)
     44    {
     45      for (j=0;j<yin->length;j++)
     46      {
     47        tmp = input->data[c][j] - input->data[c][j+tau];
     48        yin->data[c][tau] += SQR(tmp);
     49      }
     50    }
     51  }
    5252}
    5353
    5454/* cumulative mean normalized difference function */
    5555void aubio_pitchyin_getcum(fvec_t * yin) {
    56         uint_t c,tau;
    57         smpl_t tmp;
    58         for (c=0;c<yin->channels;c++)
    59         {
    60                 tmp = 0.;
    61                 yin->data[c][0] = 1.;
    62                 //AUBIO_DBG("%f\t",yin->data[c][0]);
    63                 for (tau=1;tau<yin->length;tau++)
    64                 {
    65                         tmp += yin->data[c][tau];
    66                         yin->data[c][tau] *= tau/tmp;
    67                         //AUBIO_DBG("%f\t",yin->data[c][tau]);
    68                 }
    69                 //AUBIO_DBG("\n");
    70         }
     56  uint_t c,tau;
     57  smpl_t tmp;
     58  for (c=0;c<yin->channels;c++)
     59  {
     60    tmp = 0.;
     61    yin->data[c][0] = 1.;
     62    //AUBIO_DBG("%f\t",yin->data[c][0]);
     63    for (tau=1;tau<yin->length;tau++)
     64    {
     65      tmp += yin->data[c][tau];
     66      yin->data[c][tau] *= tau/tmp;
     67      //AUBIO_DBG("%f\t",yin->data[c][tau]);
     68    }
     69    //AUBIO_DBG("\n");
     70  }
    7171}
    7272
    7373uint_t aubio_pitchyin_getpitch(fvec_t * yin) {
    74         uint_t c=0,tau=1;
    75         do
    76         {
    77                 if(yin->data[c][tau] < 0.1) {
    78                         while (yin->data[c][tau+1] < yin->data[c][tau]) {
    79                                 tau++;
    80                         }
    81                         return tau;
    82                 }
    83                 tau++;
    84         } while (tau<yin->length);
    85         //AUBIO_DBG("No pitch found");
    86         return 0;
     74  uint_t c=0,tau=1;
     75  do
     76  {
     77    if(yin->data[c][tau] < 0.1) {
     78      while (yin->data[c][tau+1] < yin->data[c][tau]) {
     79        tau++;
     80      }
     81      return tau;
     82    }
     83    tau++;
     84  } while (tau<yin->length);
     85  //AUBIO_DBG("No pitch found");
     86  return 0;
    8787}
    8888
     
    9090/* all the above in one */
    9191smpl_t aubio_pitchyin_getpitchfast(fvec_t * input, fvec_t * yin, smpl_t tol){
    92         uint_t c=0,j,tau = 0;
    93         sint_t period;
    94         smpl_t tmp = 0., tmp2 = 0.;
    95         yin->data[c][0] = 1.;
    96         for (tau=1;tau<yin->length;tau++)
    97         {
    98                 yin->data[c][tau] = 0.;
    99                 for (j=0;j<yin->length;j++)
    100                 {
    101                         tmp = input->data[c][j] - input->data[c][j+tau];
    102                         yin->data[c][tau] += SQR(tmp);
    103                 }
    104                 tmp2 += yin->data[c][tau];
    105                 yin->data[c][tau] *= tau/tmp2;
    106                 period = tau-3;
    107                 if(tau > 4 && (yin->data[c][period] < tol) &&
    108                                 (yin->data[c][period] < yin->data[c][period+1])) {
    109                         return vec_quadint_min(yin,period,1);
    110                 }
    111         }
    112         return vec_quadint_min(yin,vec_min_elem(yin),1);
    113         //return 0;
     92  uint_t c=0,j,tau = 0;
     93  sint_t period;
     94  smpl_t tmp = 0., tmp2 = 0.;
     95  yin->data[c][0] = 1.;
     96  for (tau=1;tau<yin->length;tau++)
     97  {
     98    yin->data[c][tau] = 0.;
     99    for (j=0;j<yin->length;j++)
     100    {
     101      tmp = input->data[c][j] - input->data[c][j+tau];
     102      yin->data[c][tau] += SQR(tmp);
     103    }
     104    tmp2 += yin->data[c][tau];
     105    yin->data[c][tau] *= tau/tmp2;
     106    period = tau-3;
     107    if(tau > 4 && (yin->data[c][period] < tol) &&
     108        (yin->data[c][period] < yin->data[c][period+1])) {
     109      return vec_quadint_min(yin,period,1);
     110    }
     111  }
     112  return vec_quadint_min(yin,vec_min_elem(yin),1);
     113  //return 0;
    114114}
    115115
Note: See TracChangeset for help on using the changeset viewer.