Changes in / [ef1c3b7:7212394]


Ignore:
Files:
1 added
9 deleted
13 edited

Legend:

Unmodified
Added
Removed
  • examples/Makefile.am

    ref1c3b7 r7212394  
    1111        aubioonset \
    1212        aubiotrack \
    13         aubionotes \
    14         aubiomfcc
     13        aubionotes
    1514
    1615noinst_PROGRAMS = \
     
    2423aubiotrack_SOURCES = aubiotrack.c utils.c
    2524aubioquiet_SOURCES = aubioquiet.c utils.c
    26 aubiomfcc_SOURCES = aubiomfcc.c utils.c
    2725
    2826aubioonset_LDADD = @JACK_LIBS@
     
    3028aubiotrack_LDADD = @JACK_LIBS@
    3129aubioquiet_LDADD = @JACK_LIBS@
    32 aubiomfcc_LDADD = @JACK_LIBS@
  • examples/tests/test-beattracking.c

    ref1c3b7 r7212394  
    1313        uint_t i = 0;
    1414
    15         smpl_t curtempo;
    16 
    1715        while (i < 10) {
    1816          aubio_beattracking_do(tempo,in,out);
    19           curtempo = aubio_beattracking_get_bpm(tempo);
    20           if (curtempo != 0.) {
    21             fprintf(stdout,"%f\n",curtempo);
    22             return 1;
    23           }
    2417          i++;
    2518        };
  • examples/tests/test-tempo.c

    ref1c3b7 r7212394  
    1010        uint_t i = 0;
    1111
    12         smpl_t curtempo;
    13 
    1412        while (i < 1000) {
    1513          aubio_tempo(o,in,out);
    16           curtempo = aubio_tempo_get_bpm(o);
    17           if (curtempo != 0.) {
    18             fprintf(stdout,"%f\n",curtempo);
    19           }
    2014          i++;
    2115        };
  • examples/utils.c

    ref1c3b7 r7212394  
    6060int isonset = 0;
    6161aubio_pickpeak_t * parms;
     62
    6263
    6364/* pitch objects */
     
    300301  fftgrain  = new_cvec(buffer_size, channels);
    301302
    302  
    303303  if (usepitch) {
    304304    pitchdet = new_aubio_pitchdetection(buffer_size*4,
     
    313313  /* phase vocoder */
    314314  pv = new_aubio_pvoc(buffer_size, overlap_size, channels);
    315  
    316315  /* onsets */
    317316  parms = new_aubio_peakpicker(threshold);
     
    347346  del_fvec(onset);
    348347  del_fvec(woodblock);
    349  
    350348  aubio_cleanup();
    351349}
  • examples/utils.h

    ref1c3b7 r7212394  
    9898extern aubio_pickpeak_t * parms;
    9999
     100
    100101/* pitch objects */
    101102extern smpl_t pitch;
  • python/aubio/aubioclass.py

    ref1c3b7 r7212394  
    127127        self.pitchp = new_aubio_pitchdetection(bufsize,hopsize,channels,
    128128                samplerate,mode,omode)
    129         aubio_pitchdetection_set_yinthresh(self.pitchp,yinthresh)
     129        aubio_pitchdetection_set_yinthresh(self.pitchp,yinthresh)
    130130        #self.filt     = filter(srate,"adsgn")
    131131    def __del__(self):
  • src/Makefile.am

    ref1c3b7 r7212394  
    2222        onset.h \
    2323        tempo.h \
    24         filter.h \
    25         filterbank.h \
    26         mfcc.h
    27 
     24        filter.h
    2825nodist_pkginclude_HEADERS = config.h
    2926
     
    7269        tempo.h \
    7370        filter.c \
    74         filter.h \
    75         filterbank.c \
    76         filterbank.h \
    77         mfcc.h \
    78         mfcc.c
     71        filter.h
    7972
    8073AM_CFLAGS = @AUBIO_CFLAGS@ @FFTWLIB_CFLAGS@ @SAMPLERATE_CFLAGS@
  • src/aubio.h

    ref1c3b7 r7212394  
    8080#include "onset.h"
    8181#include "tempo.h"
    82 #include "filterbank.h"
    83 #include "mfcc.h"
    8482
    8583#ifdef __cplusplus
  • src/beattracking.c

    ref1c3b7 r7212394  
    453453
    454454}
    455 
    456 smpl_t aubio_beattracking_get_bpm(aubio_beattracking_t * bt) {
    457         if (bt->timesig != 0 && bt->counter == 0 && bt->flagstep == 0) {
    458           return 5168. / (smpl_t)bt->gp;
    459         } else {
    460           return 0.;
    461         }
    462 }
  • src/beattracking.h

    ref1c3b7 r7212394  
    6060*/
    6161void aubio_beattracking_do(aubio_beattracking_t * bt, fvec_t * dfframes, fvec_t * out);
    62 /** get current tempo in bpm
    63 
    64   \param bt beat tracking object
    65 
    66   Returns the currently observed tempo, in beats per minutes, or 0 if no
    67   consistent value is found.
    68 
    69 */
    70 smpl_t aubio_beattracking_get_bpm(aubio_beattracking_t * bt);
    7162/** delete beat tracking object
    7263
  • src/mathutils.c

    ref1c3b7 r7212394  
    3030    case aubio_win_rectangle:
    3131      for (i=0;i<size;i++)
    32         w[i] = 0.5;
     32        w[i] = 0.5; 
    3333      break;
    3434    case aubio_win_hamming:
     
    4848        w[i] = 0.42
    4949          - 0.50 * COS(    TWO_PI*i/(size-1.0))
    50           + 0.08 * COS(2.0*TWO_PI*i/(size-1.0));
     50          +     0.08 * COS(2.0*TWO_PI*i/(size-1.0));
    5151      break;
    5252    case aubio_win_blackman_harris:
    5353      for (i=0;i<size;i++)
    54         w[i] = 0.35875
     54        w[i] = 0.35875 
    5555          - 0.48829 * COS(    TWO_PI*i/(size-1.0))
    5656          + 0.14128 * COS(2.0*TWO_PI*i/(size-1.0))
     
    7474}
    7575
     76
    7677smpl_t aubio_unwrap2pi(smpl_t phase) {
    7778  /* mod(phase+pi,-2pi)+pi */
     
    7980}
    8081
    81 smpl_t vec_mean(fvec_t *s) {
     82
     83smpl_t vec_mean(fvec_t *s)
     84{
    8285  uint_t i,j;
    8386  smpl_t tmp = 0.0f;
     
    8891}
    8992
    90 smpl_t vec_sum(fvec_t *s) {
     93
     94smpl_t vec_sum(fvec_t *s)
     95{
    9196  uint_t i,j;
    9297  smpl_t tmp = 0.0f;
     
    97102}
    98103
    99 smpl_t vec_max(fvec_t *s) {
     104
     105smpl_t vec_max(fvec_t *s)
     106{
    100107  uint_t i,j;
    101108  smpl_t tmp = 0.0f;
     
    106113}
    107114
    108 smpl_t vec_min(fvec_t *s) {
     115smpl_t vec_min(fvec_t *s)
     116{
    109117  uint_t i,j;
    110118  smpl_t tmp = s->data[0][0];
     
    115123}
    116124
    117 uint_t vec_min_elem(fvec_t *s) {
     125
     126uint_t vec_min_elem(fvec_t *s)
     127{
    118128  uint_t i,j=0, pos=0.;
    119129  smpl_t tmp = s->data[0][0];
     
    126136}
    127137
    128 uint_t vec_max_elem(fvec_t *s) {
     138uint_t vec_max_elem(fvec_t *s)
     139{
    129140  uint_t i,j=0, pos=0.;
    130141  smpl_t tmp = 0.0f;
     
    137148}
    138149
    139 void vec_shift(fvec_t *s) {
     150void vec_shift(fvec_t *s)
     151{
    140152  uint_t i,j;
    141153  //smpl_t tmp = 0.0f;
     
    149161}
    150162
    151 smpl_t vec_local_energy(fvec_t * f) {
     163smpl_t vec_local_energy(fvec_t * f)
     164{
    152165  smpl_t locE = 0.;
    153166  uint_t i,j;
     
    158171}
    159172
    160 smpl_t vec_local_hfc(fvec_t * f) {
     173smpl_t vec_local_hfc(fvec_t * f)
     174{
    161175  smpl_t locE = 0.;
    162176  uint_t i,j;
     
    167181}
    168182
    169 smpl_t vec_alpha_norm(fvec_t * DF, smpl_t alpha) {
     183smpl_t vec_alpha_norm(fvec_t * DF, smpl_t alpha)
     184{
    170185  smpl_t tmp = 0.;
    171186  uint_t i,j;
     
    176191}
    177192
    178 void vec_dc_removal(fvec_t * mag) {
     193
     194void vec_dc_removal(fvec_t * mag)
     195{
    179196    smpl_t mini = 0.;
    180197    uint_t length = mag->length, i=0, j;
     
    185202}
    186203
    187 void vec_alpha_normalise(fvec_t * mag, uint_t alpha) {
     204
     205void vec_alpha_normalise(fvec_t * mag, uint_t alpha)
     206{
    188207  smpl_t alphan = 1.;
    189208  uint_t length = mag->length, i=0, j;
     
    194213}
    195214
     215
    196216void vec_add(fvec_t * mag, smpl_t threshold) {
    197217  uint_t length = mag->length, i=0, j;
     
    201221}
    202222
    203 void vec_adapt_thres(fvec_t * vec, fvec_t * tmp,
    204     uint_t post, uint_t pre) {
     223
     224void vec_adapt_thres(fvec_t * vec, fvec_t * tmp,
     225    uint_t post, uint_t pre)
     226{
    205227  uint_t length = vec->length, i=0, j;
    206228  for (j=0;j<length;j++) {
     
    210232
    211233smpl_t vec_moving_thres(fvec_t * vec, fvec_t * tmpvec,
    212     uint_t post, uint_t pre, uint_t pos) {
     234    uint_t post, uint_t pre, uint_t pos)
     235{
    213236  smpl_t * medar = (smpl_t *)tmpvec->data[0];
    214237  uint_t k;
     
    217240  /* post part of the buffer does not exist */
    218241  if (pos<post+1) {
    219     for (k=0;k<post+1-pos;k++)
     242    for (k=0;k<post+1-pos;k++) 
    220243      medar[k] = 0.; /* 0-padding at the beginning */
    221244    for (k=post+1-pos;k<win_length;k++)
     
    229252    for (k=0;k<length-pos+post+1;k++)
    230253      medar[k] = vec->data[0][k+pos-post];
    231     for (k=length-pos+post+1;k<win_length;k++)
     254    for (k=length-pos+post+1;k<win_length;k++) 
    232255      medar[k] = 0.; /* 0-padding at the end */
    233   }
     256  } 
    234257  return vec_median(tmpvec);
    235258}
     
    298321    for (frac = 0.; frac < 2.; frac = frac + step) {
    299322      res = aubio_quadfrac(s0, s1, s2, frac);
    300       if (res > resold)
     323      if (res > resold) 
    301324        resold = res;
    302       else {
     325      else {                           
    303326        exactpos += (frac-step)*2. - 1.;
    304327        break;
     
    322345      if (res < resold) {
    323346        resold = res;
    324       } else {
     347      } else {                         
    325348        exactpos += (frac-step)*span - span/2.;
    326349        break;
     
    337360
    338361uint_t vec_peakpick(fvec_t * onset, uint_t pos) {
    339   uint_t i=0, tmp=0;
    340   /*for (i=0;i<onset->channels;i++)*/
    341   tmp = (onset->data[i][pos] > onset->data[i][pos-1]
    342       &&  onset->data[i][pos] > onset->data[i][pos+1]
    343       &&  onset->data[i][pos] > 0.);
    344   return tmp;
     362        uint_t i=0, tmp=0;
     363        /*for (i=0;i<onset->channels;i++)*/
     364                tmp = (onset->data[i][pos] > onset->data[i][pos-1]
     365                        &&  onset->data[i][pos] > onset->data[i][pos+1]
     366                        &&      onset->data[i][pos] > 0.);
     367        return tmp;
    345368}
    346369
    347370smpl_t aubio_freqtomidi(smpl_t freq) {
    348   /* log(freq/A-2)/log(2) */
    349   smpl_t midi = freq/6.875;
    350   midi = LOG(midi)/0.69314718055995;
    351   midi *= 12;
    352   midi -= 3;
    353   return midi;
     371        /* log(freq/A-2)/log(2) */
     372        smpl_t midi = freq/6.875;
     373        midi = LOG(midi)/0.69314718055995;
     374        midi *= 12;
     375        midi -= 3; 
     376        return midi;
    354377}
    355378
    356379smpl_t aubio_miditofreq(smpl_t midi) {
    357   smpl_t freq = (midi+3.)/12.;
    358   freq = EXP(freq*0.69314718055995);
    359   freq *= 6.875;
    360   return freq;
     380        smpl_t freq = (midi+3.)/12.;
     381        freq = EXP(freq*0.69314718055995);
     382        freq *= 6.875;
     383        return freq;
    361384}
    362385
     
    381404}
    382405
    383 /** returns 1 if wassilence is 0 and RMS(ibuf)<threshold
     406
     407
     408/** returns 1 if wassilence is 0 and RMS(ibuf)<threshold
    384409 * \bug mono
    385410 */
     
    411436
    412437  if (loudness < threshold)
    413     return 1.;
     438      return 1.;
    414439  else
    415     return loudness;
     440      return loudness;
    416441}
    417442
     
    426451      }
    427452    //previous was positive
    428     } else if ( input->data[i][j] <= 0. ) {
     453    } else if ( input->data[i][j] <= 0. ){
    429454      zcr += 1;
    430455    }
     
    446471}
    447472
    448 void aubio_autocorr(fvec_t * input, fvec_t * output) {
    449   uint_t i = 0, j = 0, length = input->length;
    450   smpl_t * data = input->data[0];
    451   smpl_t * acf = output->data[0];
    452   smpl_t tmp =0.;
    453   for(i=0;i<length;i++){
    454     for(j=i;j<length;j++){
    455       tmp += data[j-i]*data[j];
    456     }
    457     acf[i] = tmp /(smpl_t)(length-i);
    458     tmp = 0.0;
    459   }
    460 }
    461 
    462 void aubio_cleanup(void) {
     473void aubio_autocorr(fvec_t * input, fvec_t * output){
     474        uint_t i = 0, j = 0, length = input->length;
     475        smpl_t * data = input->data[0];
     476        smpl_t * acf = output->data[0];
     477        smpl_t tmp =0.;
     478        for(i=0;i<length;i++){
     479                for(j=i;j<length;j++){
     480                        tmp += data[j-i]*data[j];
     481                }
     482                acf[i] = tmp /(smpl_t)(length-i);
     483                tmp = 0.0;
     484        }
     485}
     486
     487void aubio_cleanup(void)
     488{
    463489#if FFTW3_SUPPORT
    464   fftw_cleanup();
     490        fftw_cleanup();
    465491#else
    466492#if FFTW3F_SUPPORT
    467   fftwf_cleanup();
     493        fftwf_cleanup();
    468494#endif
    469495#endif
  • src/tempo.c

    ref1c3b7 r7212394  
    124124}
    125125
    126 smpl_t aubio_tempo_get_bpm(aubio_tempo_t *o) {
    127   return aubio_beattracking_get_bpm(o->bt);
    128 }
    129 
    130126void del_aubio_tempo (aubio_tempo_t *o)
    131127{
  • src/tempo.h

    ref1c3b7 r7212394  
    5050void aubio_tempo_set_threshold(aubio_tempo_t * o, smpl_t threshold);
    5151
    52 /** get current tempo
    53 
    54   \param bt beat tracking object
    55 
    56   Returns the currently observed tempo, or 0 if no consistent value is found
    57 
    58 */
    59 smpl_t aubio_tempo_get_bpm(aubio_tempo_t * bt);
    60 
    6152/** delete tempo detection object */
    6253void del_aubio_tempo(aubio_tempo_t * o);
Note: See TracChangeset for help on using the changeset viewer.