Changeset d207300 for src/tempo/tempo.c


Ignore:
Timestamp:
Dec 4, 2009, 1:40:48 AM (15 years ago)
Author:
Paul Brossier <piem@piem.org>
Branches:
feature/autosink, feature/cnn, feature/cnn_org, feature/constantq, feature/crepe, feature/crepe_org, feature/pitchshift, feature/pydocstrings, feature/timestretch, fix/ffmpeg5, master, pitchshift, sampler, timestretch, yinfft+
Children:
8e5c051
Parents:
741bdda
Message:

src/tempo: switch to mono

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/tempo/tempo.c

    r741bdda rd207300  
    5959  /*if (usedoubled) {
    6060    aubio_specdesc_do(o2,fftgrain, onset2);
    61     onset->data[0][0] *= onset2->data[0][0];
     61    onset->data[0] *= onset2->data[0];
    6262  }*/
    6363  /* execute every overlap_size*step */
     
    6767    /* rotate dfframe */
    6868    for (i = 0 ; i < winlen - step; i++ )
    69       o->dfframe->data[0][i] = o->dfframe->data[0][i+step];
     69      o->dfframe->data[i] = o->dfframe->data[i+step];
    7070    for (i = winlen - step ; i < winlen; i++ )
    71       o->dfframe->data[0][i] = 0.;
     71      o->dfframe->data[i] = 0.;
    7272    o->blockpos = -1;
    7373  }
    7474  o->blockpos++;
    7575  aubio_peakpicker_do (o->pp, o->of, o->onset);
    76   tempo->data[0][1] = o->onset->data[0][0];
     76  tempo->data[1] = o->onset->data[0];
    7777  thresholded = aubio_peakpicker_get_thresholded_input(o->pp);
    78   o->dfframe->data[0][winlen - step + o->blockpos] = thresholded->data[0][0];
     78  o->dfframe->data[winlen - step + o->blockpos] = thresholded->data[0];
    7979  /* end of second level loop */
    80   tempo->data[0][0] = 0; /* reset tactus */
     80  tempo->data[0] = 0; /* reset tactus */
    8181  i=0;
    82   for (i = 1; i < o->out->data[0][0]; i++ ) {
     82  for (i = 1; i < o->out->data[0]; i++ ) {
    8383    /* if current frame is a predicted tactus */
    84     if (o->blockpos == FLOOR(o->out->data[0][i])) {
    85       tempo->data[0][0] = o->out->data[0][i] - FLOOR(o->out->data[0][i]); /* set tactus */
     84    if (o->blockpos == FLOOR(o->out->data[i])) {
     85      tempo->data[0] = o->out->data[i] - FLOOR(o->out->data[i]); /* set tactus */
    8686      /* test for silence */
    8787      if (aubio_silence_detection(input, o->silence)==1) {
    88         tempo->data[0][1] = 0; /* unset onset */
     88        tempo->data[1] = 0; /* unset onset */
    8989      }
    9090    }
     
    105105/* Allocate memory for an tempo detection */
    106106aubio_tempo_t * new_aubio_tempo (char_t * onset_mode,
    107     uint_t buf_size, uint_t hop_size, uint_t channels, uint_t samplerate)
     107    uint_t buf_size, uint_t hop_size, uint_t samplerate)
    108108{
    109109  aubio_tempo_t * o = AUBIO_NEW(aubio_tempo_t);
     
    115115  o->silence = -90.;
    116116  o->blockpos = 0;
    117   o->dfframe  = new_fvec(o->winlen,channels);
    118   o->fftgrain = new_cvec(buf_size, channels);
    119   o->out      = new_fvec(o->step,channels);
    120   o->pv       = new_aubio_pvoc(buf_size, hop_size, channels);
    121   o->pp       = new_aubio_peakpicker(channels);
     117  o->dfframe  = new_fvec(o->winlen);
     118  o->fftgrain = new_cvec(buf_size);
     119  o->out      = new_fvec(o->step);
     120  o->pv       = new_aubio_pvoc(buf_size, hop_size);
     121  o->pp       = new_aubio_peakpicker();
    122122  aubio_peakpicker_set_threshold (o->pp, o->threshold);
    123   o->od       = new_aubio_specdesc(onset_mode,buf_size,channels);
    124   o->of       = new_fvec(1, channels);
    125   o->bt       = new_aubio_beattracking(o->winlen,channels);
    126   o->onset    = new_fvec(1, channels);
     123  o->od       = new_aubio_specdesc(onset_mode,buf_size);
     124  o->of       = new_fvec(1);
     125  o->bt       = new_aubio_beattracking(o->winlen);
     126  o->onset    = new_fvec(1);
    127127  /*if (usedoubled)    {
    128     o2 = new_aubio_specdesc(type_onset2,buffer_size,channels);
    129     onset2 = new_fvec(1 , channels);
     128    o2 = new_aubio_specdesc(type_onset2,buffer_size);
     129    onset2 = new_fvec(1);
    130130  }*/
    131131  return o;
Note: See TracChangeset for help on using the changeset viewer.