Changeset 6ba2f1c


Ignore:
Timestamp:
Jul 23, 2006, 12:14:39 PM (18 years ago)
Author:
Paul Brossier <piem@altern.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:
a89438a
Parents:
989bf7f
Message:

add documentation for fvec_t and cvec_t
add documentation for fvec_t and cvec_t

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/sample.h

    r989bf7f r6ba2f1c  
    2525#endif
    2626
    27 /** @file
    28  * Sample buffers
    29  *
    30  * Create fvec_t and cvec_t buffers
    31  */
    32 
    33 /**
    34  * Sample buffer type
    35  *       
    36  *   contains length and channels number
    37  */
     27/** \file
     28
     29  Real and complex buffers
     30
     31  This file specifies fvec_t and cvec_t buffers types, which are used
     32  throughout aubio to store real and complex data. Complex values are stored in
     33  terms of phase and norm.
     34
     35*/
     36
     37/** Sample buffer type */
    3838typedef struct _fvec_t fvec_t;
    39 /**
    40  * Spectrum buffer type
    41  *
    42  *   contains length and channels number
    43  */
     39/** Spectrum buffer type */
    4440typedef struct _cvec_t cvec_t;
    45 
    46 /**
    47  * Buffer for audio samples
    48  */
     41/** Buffer for real values */
    4942struct _fvec_t {
    50   uint_t length;
    51   uint_t channels;
    52   smpl_t **data;
     43  uint_t length;   /**< length of buffer */
     44  uint_t channels; /**< number of channels */
     45  smpl_t **data;   /**< data array of size [length] * [channels] */
    5346};
    54 
    55 /**
    56  * Buffer for spectral data
    57  */
     47/** Buffer for complex data */
    5848struct _cvec_t {
    59   uint_t length;
    60   uint_t channels;
    61   smpl_t **norm;
    62   smpl_t **phas;
     49  uint_t length;   /**< length of buffer = (requested length)/2 + 1 */
     50  uint_t channels; /**< number of channels */
     51  smpl_t **norm;   /**< norm array of size [length] * [channels] */
     52  smpl_t **phas;   /**< phase array of size [length] * [channels] */
    6353};
    64 
    65 
    66 /* buffer function */
     54/** fvec_t buffer creation function
     55
     56  \param length the length of the buffer to create
     57  \param channels the number of channels in the buffer
     58
     59*/
    6760extern fvec_t * new_fvec(uint_t length, uint_t channels);
     61/** fvec_t buffer deletion function
     62
     63  \param s buffer to delete as returned by new_fvec()
     64
     65*/
    6866extern void del_fvec(fvec_t *s);
     67/** read sample value in a buffer
     68
     69  Note that this function is not used in the aubio library, since the same
     70  result can be obtained using vec->data[channel][position]. Its purpose is to
     71  access these values from wrappers, as created by swig.
     72
     73  \param s vector to read from
     74  \param channel channel to read from
     75  \param position sample position to read from
     76
     77*/
    6978smpl_t fvec_read_sample(fvec_t *s, uint_t channel, uint_t position);
     79/** write sample value in a buffer
     80
     81  Note that this function is not used in the aubio library, since the same
     82  result can be obtained by assigning vec->data[channel][position]. Its purpose
     83  is to access these values from wrappers, as created by swig.
     84
     85  \param s vector to write to
     86  \param data value to write in s->data[channel][position]
     87  \param channel channel to write to
     88  \param position sample position to write to
     89
     90*/
    7091void  fvec_write_sample(fvec_t *s, smpl_t data, uint_t channel, uint_t position);
     92/** read channel vector from a buffer
     93
     94  Note that this function is not used in the aubio library, since the same
     95  result can be obtained with vec->data[channel]. Its purpose is to access
     96  these values from wrappers, as created by swig.
     97
     98  \param s vector to read from
     99  \param channel channel to read from
     100
     101*/
    71102smpl_t * fvec_get_channel(fvec_t *s, uint_t channel);
     103/** write channel vector into a buffer
     104
     105  Note that this function is not used in the aubio library, since the same
     106  result can be obtained by assigning vec->data[channel]. Its purpose is to
     107  access these values from wrappers, as created by swig.
     108
     109  \param s vector to write to
     110  \param data vector of [length] values to write
     111  \param channel channel to write to
     112
     113*/
     114void fvec_put_channel(fvec_t *s, smpl_t * data, uint_t channel);
     115/** read data from a buffer
     116
     117  Note that this function is not used in the aubio library, since the same
     118  result can be obtained with vec->data. Its purpose is to access these values
     119  from wrappers, as created by swig.
     120
     121  \param s vector to read from
     122
     123*/
    72124smpl_t ** fvec_get_data(fvec_t *s);
    73 void fvec_put_channel(fvec_t *s, smpl_t * data, uint_t channel);
    74 
     125
     126/** cvec_t buffer creation function
     127
     128  This function creates a cvec_t structure holding two arrays of size
     129  [length/2+1] * channels, corresponding to the norm and phase values of the
     130  spectral frame. The length stored in the structure is the actual size of both
     131  arrays, not the length of the complex and symetrical vector, specified as
     132  creation argument.
     133
     134  \param length the length of the buffer to create
     135  \param channels the number of channels in the buffer
     136
     137*/
    75138extern cvec_t * new_cvec(uint_t length, uint_t channels);
     139/** cvec_t buffer deletion function
     140
     141  \param s buffer to delete as returned by new_cvec()
     142
     143*/
    76144extern void del_cvec(cvec_t *s);
     145/** write norm value in a complex buffer
     146
     147  Note that this function is not used in the aubio library, since the same
     148  result can be obtained by assigning vec->norm[channel][position]. Its purpose
     149  is to access these values from wrappers, as created by swig.
     150
     151  \param s vector to write to
     152  \param data norm value to write in s->norm[channel][position]
     153  \param channel channel to write to
     154  \param position sample position to write to
     155
     156*/
    77157void cvec_write_norm(cvec_t *s, smpl_t data, uint_t channel, uint_t position);
     158/** write phase value in a complex buffer
     159
     160  Note that this function is not used in the aubio library, since the same
     161  result can be obtained by assigning vec->phas[channel][position]. Its purpose
     162  is to access these values from wrappers, as created by swig.
     163
     164  \param s vector to write to
     165  \param data phase value to write in s->phas[channel][position]
     166  \param channel channel to write to
     167  \param position sample position to write to
     168
     169*/
    78170void cvec_write_phas(cvec_t *s, smpl_t data, uint_t channel, uint_t position);
     171/** read norm value from a complex buffer
     172
     173  Note that this function is not used in the aubio library, since the same
     174  result can be obtained with vec->norm[channel][position]. Its purpose is to
     175  access these values from wrappers, as created by swig.
     176
     177  \param s vector to read from
     178  \param channel channel to read from
     179  \param position sample position to read from
     180
     181*/
    79182smpl_t cvec_read_norm(cvec_t *s, uint_t channel, uint_t position);
     183/** read phase value from a complex buffer
     184
     185  Note that this function is not used in the aubio library, since the same
     186  result can be obtained with vec->phas[channel][position]. Its purpose is to
     187  access these values from wrappers, as created by swig.
     188
     189  \param s vector to read from
     190  \param channel channel to read from
     191  \param position sample position to read from
     192
     193*/
    80194smpl_t cvec_read_phas(cvec_t *s, uint_t channel, uint_t position);
     195/** write norm channel in a complex buffer
     196
     197  Note that this function is not used in the aubio library, since the same
     198  result can be obtained by assigning vec->norm[channel]. Its purpose is to
     199  access these values from wrappers, as created by swig.
     200
     201  \param s vector to write to
     202  \param data norm vector of [length] samples to write in s->norm[channel]
     203  \param channel channel to write to
     204
     205*/
    81206void cvec_put_norm_channel(cvec_t *s, smpl_t * data, uint_t channel);
     207/** write phase channel in a complex buffer
     208
     209  Note that this function is not used in the aubio library, since the same
     210  result can be obtained by assigning vec->phas[channel]. Its purpose is to
     211  access these values from wrappers, as created by swig.
     212
     213  \param s vector to write to
     214  \param data phase vector of [length] samples to write in s->phas[channel]
     215  \param channel channel to write to
     216
     217*/
    82218void cvec_put_phas_channel(cvec_t *s, smpl_t * data, uint_t channel);
     219/** read norm channel from a complex buffer
     220
     221  Note that this function is not used in the aubio library, since the same
     222  result can be obtained with vec->norm[channel]. Its purpose is to access
     223  these values from wrappers, as created by swig.
     224
     225  \param s vector to read from
     226  \param channel channel to read from
     227
     228*/
    83229smpl_t * cvec_get_norm_channel(cvec_t *s, uint_t channel);
     230/** write phase channel in a complex buffer
     231
     232  Note that this function is not used in the aubio library, since the same
     233  result can be obtained with vec->phas[channel]. Its purpose is to access
     234  these values from wrappers, as created by swig.
     235
     236  \param s vector to read from
     237  \param channel channel to read from
     238
     239*/
    84240smpl_t * cvec_get_phas_channel(cvec_t *s, uint_t channel);
     241/** read norm data from a complex buffer
     242
     243  Note that this function is not used in the aubio library, since the same
     244  result can be obtained with vec->norm. Its purpose is to access these values
     245  from wrappers, as created by swig.
     246
     247  \param s vector to read from
     248
     249*/
    85250smpl_t ** cvec_get_norm(cvec_t *s);
     251/** read phase data from a complex buffer
     252
     253  Note that this function is not used in the aubio library, since the same
     254  result can be obtained with vec->phas. Its purpose is to access these values
     255  from wrappers, as created by swig.
     256
     257  \param s vector to read from
     258
     259*/
    86260smpl_t ** cvec_get_phas(cvec_t *s);
    87261
Note: See TracChangeset for help on using the changeset viewer.