Changeset 685412e


Ignore:
Timestamp:
Nov 3, 2007, 4:59:04 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:
5c0662a
Parents:
6ef7f67
Message:

src/phasevoc.c: remove tabs, reindent

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/phasevoc.c

    r6ef7f67 r685412e  
    2626/** phasevocoder internal object */
    2727struct _aubio_pvoc_t {
    28         /** grain length */
    29         uint_t win_s;
    30         /** overlap step */
    31         uint_t hop_s;
    32         /** number of channels */
    33         uint_t channels;
    34         /** spectral data */
    35         aubio_mfft_t * fft;
    36         /**cur output grain             [win_s] */
    37         fvec_t * synth;         
    38         /**last input frame             [win_s-hop_s] */
    39         fvec_t * synthold;
    40         /**current input grain          [win_s] */
    41         fvec_t * data;           
    42         /**last input frame             [win_s-hop_s] */
    43         fvec_t * dataold; 
    44         /** grain window                [win_s] */
    45         float * w;
     28  uint_t win_s;       /** grain length */
     29  uint_t hop_s;       /** overlap step */
     30  uint_t channels;    /** number of channels */
     31  aubio_mfft_t * fft; /** spectral data */
     32  fvec_t * synth;     /**cur output grain [win_s] */
     33  fvec_t * synthold;  /**last input frame [win_s-hop_s] */
     34  fvec_t * data;      /**current input grain [win_s] */
     35  fvec_t * dataold;   /**last input frame [win_s-hop_s] */
     36  float * w;          /** grain window [win_s] */
    4637};
    4738
    4839
    4940/** returns data and dataold slided by hop_s */
    50 static void aubio_pvoc_swapbuffers(
    51                 smpl_t * data,
    52                 smpl_t * dataold,
    53                 const smpl_t * datanew,
    54                 uint_t win_s, uint_t hop_s);
     41static void aubio_pvoc_swapbuffers(smpl_t * data, smpl_t * dataold, const
     42    smpl_t * datanew, uint_t win_s, uint_t hop_s);
     43
    5544/** do additive synthesis from 'old' and 'cur' */
    56 static void aubio_pvoc_addsynth(
    57                 const smpl_t * synth,
    58                 smpl_t * synthold,
    59                 smpl_t * synthnew,
    60                 uint_t win_s, uint_t hop_s);
    61 
     45static void aubio_pvoc_addsynth(const smpl_t * synth, smpl_t * synthold,
     46    smpl_t * synthnew, uint_t win_s, uint_t hop_s);
    6247
    6348void aubio_pvoc_do(aubio_pvoc_t *pv, fvec_t * datanew, cvec_t *fftgrain) {
    64         uint_t i,j;
    65         for (i=0; i<pv->channels; i++) {
    66                 /* slide  */
    67                 aubio_pvoc_swapbuffers(pv->data->data[i],pv->dataold->data[i],
    68                                 datanew->data[i],pv->win_s,pv->hop_s);
    69                 /* windowing */
    70                 for (j=0; j<pv->win_s; j++) pv->data->data[i][j] *= pv->w[j];
    71         }
    72         /* shift */
    73         vec_shift(pv->data);
    74         /* calculate fft */
    75         aubio_mfft_do (pv->fft,pv->data,fftgrain);
     49  uint_t i,j;
     50  for (i=0; i<pv->channels; i++) {
     51    /* slide  */
     52    aubio_pvoc_swapbuffers(pv->data->data[i],pv->dataold->data[i],
     53        datanew->data[i],pv->win_s,pv->hop_s);
     54    /* windowing */
     55    for (j=0; j<pv->win_s; j++) pv->data->data[i][j] *= pv->w[j];
     56  }
     57  /* shift */
     58  vec_shift(pv->data);
     59  /* calculate fft */
     60  aubio_mfft_do (pv->fft,pv->data,fftgrain);
    7661}
    7762
    7863void aubio_pvoc_rdo(aubio_pvoc_t *pv,cvec_t * fftgrain, fvec_t * synthnew) {
    79         uint_t i;
    80         /* calculate rfft */
    81         aubio_mfft_rdo(pv->fft,fftgrain,pv->synth);
    82         /* unshift */
    83         vec_shift(pv->synth);
    84         for (i=0; i<pv->channels; i++) {
    85                 aubio_pvoc_addsynth(pv->synth->data[i],pv->synthold->data[i],
    86                                 synthnew->data[i],pv->win_s,pv->hop_s);
    87         }
     64  uint_t i;
     65  /* calculate rfft */
     66  aubio_mfft_rdo(pv->fft,fftgrain,pv->synth);
     67  /* unshift */
     68  vec_shift(pv->synth);
     69  for (i=0; i<pv->channels; i++) {
     70    aubio_pvoc_addsynth(pv->synth->data[i],pv->synthold->data[i],
     71        synthnew->data[i],pv->win_s,pv->hop_s);
     72  }
    8873}
    8974
    9075aubio_pvoc_t * new_aubio_pvoc (uint_t win_s, uint_t hop_s, uint_t channels) {
    91         aubio_pvoc_t * pv = AUBIO_NEW(aubio_pvoc_t);
     76  aubio_pvoc_t * pv = AUBIO_NEW(aubio_pvoc_t);
    9277
    93         if (win_s < 2*hop_s) {
    94                 AUBIO_ERR("Hop size bigger than half the window size!\n");
    95                 AUBIO_ERR("Resetting hop size to half the window size.\n");
    96                 hop_s = win_s / 2;
    97         }
     78  if (win_s < 2*hop_s) {
     79    AUBIO_ERR("Hop size bigger than half the window size!\n");
     80    AUBIO_ERR("Resetting hop size to half the window size.\n");
     81    hop_s = win_s / 2;
     82  }
    9883
    99         if (hop_s < 1) {
    100                 AUBIO_ERR("Hop size is smaller than 1!\n");
    101                 AUBIO_ERR("Resetting hop size to half the window size.\n");
    102                 hop_s = win_s / 2;
    103         }
    104        
    105         pv->fft      = new_aubio_mfft(win_s,channels);
     84  if (hop_s < 1) {
     85    AUBIO_ERR("Hop size is smaller than 1!\n");
     86    AUBIO_ERR("Resetting hop size to half the window size.\n");
     87    hop_s = win_s / 2;
     88  }
    10689
    107         /* remember old */
    108         pv->data     = new_fvec (win_s, channels);
    109         pv->synth    = new_fvec (win_s, channels);
     90  pv->fft      = new_aubio_mfft(win_s,channels);
    11091
    111         /* new input output */
    112         pv->dataold  = new_fvec  (win_s-hop_s, channels);
    113         pv->synthold = new_fvec (win_s-hop_s, channels);
    114         pv->w        = AUBIO_ARRAY(smpl_t,win_s);
    115         aubio_window(pv->w,win_s,aubio_win_hanningz);
     92  /* remember old */
     93  pv->data     = new_fvec (win_s, channels);
     94  pv->synth    = new_fvec (win_s, channels);
    11695
    117         pv->channels = channels;
    118         pv->hop_s    = hop_s;
    119         pv->win_s    = win_s;
     96  /* new input output */
     97  pv->dataold  = new_fvec  (win_s-hop_s, channels);
     98  pv->synthold = new_fvec (win_s-hop_s, channels);
     99  pv->w        = AUBIO_ARRAY(smpl_t,win_s);
     100  aubio_window(pv->w,win_s,aubio_win_hanningz);
    120101
    121         return pv;
     102  pv->channels = channels;
     103  pv->hop_s    = hop_s;
     104  pv->win_s    = win_s;
     105
     106  return pv;
    122107}
    123108
    124109void del_aubio_pvoc(aubio_pvoc_t *pv) {
    125         del_fvec(pv->data);
    126         del_fvec(pv->synth);
    127         del_fvec(pv->dataold);
    128         del_fvec(pv->synthold);
    129         del_aubio_mfft(pv->fft);
    130         AUBIO_FREE(pv->w);
    131         AUBIO_FREE(pv);
     110  del_fvec(pv->data);
     111  del_fvec(pv->synth);
     112  del_fvec(pv->dataold);
     113  del_fvec(pv->synthold);
     114  del_aubio_mfft(pv->fft);
     115  AUBIO_FREE(pv->w);
     116  AUBIO_FREE(pv);
    132117}
    133118
    134119static void aubio_pvoc_swapbuffers(smpl_t * data, smpl_t * dataold,
    135                 const smpl_t * datanew, uint_t win_s, uint_t hop_s)
     120    const smpl_t * datanew, uint_t win_s, uint_t hop_s)
    136121{
    137         uint_t i;
    138         for (i=0;i<win_s-hop_s;i++)
    139                 data[i] = dataold[i];
    140         for (i=0;i<hop_s;i++)
    141                 data[win_s-hop_s+i] = datanew[i];
    142         for (i=0;i<win_s-hop_s;i++)
    143                 dataold[i] = data[i+hop_s];
     122  uint_t i;
     123  for (i=0;i<win_s-hop_s;i++)
     124    data[i] = dataold[i];
     125  for (i=0;i<hop_s;i++)
     126    data[win_s-hop_s+i] = datanew[i];
     127  for (i=0;i<win_s-hop_s;i++)
     128    dataold[i] = data[i+hop_s];
    144129}
    145130
     
    147132                smpl_t * synthnew, uint_t win_s, uint_t hop_s)
    148133{
    149         uint_t i;
    150         smpl_t scale = 2*hop_s/(win_s+.0);
    151         /* add new synth to old one and put result in synthnew */
    152         for (i=0;i<hop_s;i++)                                           
    153                 synthnew[i] = synthold[i]+synth[i]*scale;
    154         /* shift synthold */
    155         for (i=0;i<win_s-2*hop_s;i++)   
    156                 synthold[i] = synthold[i+hop_s];
    157         /* erase last frame in synthold */
    158         for (i=win_s-hop_s;i<win_s;i++)
    159                 synthold[i-hop_s]=0.;
    160         /* additive synth */
    161         for (i=0;i<win_s-hop_s;i++)     
    162                 synthold[i] += synth[i+hop_s]*scale;
     134  uint_t i;
     135  smpl_t scale = 2*hop_s/(win_s+.0);
     136  /* add new synth to old one and put result in synthnew */
     137  for (i=0;i<hop_s;i++)
     138    synthnew[i] = synthold[i]+synth[i]*scale;
     139  /* shift synthold */
     140  for (i=0;i<win_s-2*hop_s;i++)
     141    synthold[i] = synthold[i+hop_s];
     142  /* erase last frame in synthold */
     143  for (i=win_s-hop_s;i<win_s;i++)
     144    synthold[i-hop_s]=0.;
     145  /* additive synth */
     146  for (i=0;i<win_s-hop_s;i++)
     147    synthold[i] += synth[i+hop_s]*scale;
    163148}
    164149
Note: See TracChangeset for help on using the changeset viewer.