ref: d1ec8cbc0938fb759c0c393040ab5e5202386cca
parent: 9f9f63f8515bed59717ea901fd6b1a78fe84b31d
author: Paul Brossier <piem@piem.org>
date: Thu Nov 1 10:29:08 EDT 2007
splitted sample.c into fvec.c and cvec.c, kept sample.h for convenience
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -5,6 +5,8 @@
mathutils.h \
fft.h \
sample.h \
+ fvec.h \
+ cvec.h \
hist.h \
scale.h \
resample.h \
@@ -33,8 +35,10 @@
mathutils.h \
fft.c \
fft.h \
- sample.c \
- sample.h \
+ fvec.c \
+ fvec.h \
+ cvec.c \
+ cvec.h \
hist.c \
hist.h \
scale.c \
--- /dev/null
+++ b/src/cvec.c
@@ -1,0 +1,82 @@
+/*
+ Copyright (C) 2003-2007 Paul Brossier <piem@piem.org>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+*/
+
+#include "aubio_priv.h"
+#include "cvec.h"
+
+cvec_t * new_cvec( uint_t length, uint_t channels) {
+ cvec_t * s = AUBIO_NEW(cvec_t);
+ uint_t i,j;
+ s->channels = channels;
+ s->length = length/2 + 1;
+ s->norm = AUBIO_ARRAY(smpl_t*,s->channels);
+ s->phas = AUBIO_ARRAY(smpl_t*,s->channels);
+ for (i=0; i< s->channels; i++) {
+ s->norm[i] = AUBIO_ARRAY(smpl_t,s->length);
+ s->phas[i] = AUBIO_ARRAY(smpl_t,s->length);
+ for (j=0; j< s->length; j++) {
+ s->norm[i][j]=0.;
+ s->phas[i][j]=0.;
+ }
+ }
+ return s;
+}
+
+void del_cvec(cvec_t *s) {
+ uint_t i;
+ for (i=0; i<s->channels; i++) {
+ AUBIO_FREE(s->norm[i]);
+ AUBIO_FREE(s->phas[i]);
+ }
+ AUBIO_FREE(s->norm);
+ AUBIO_FREE(s->phas);
+ AUBIO_FREE(s);
+}
+
+void cvec_write_norm(cvec_t *s, smpl_t data, uint_t channel, uint_t position) {
+ s->norm[channel][position] = data;
+}
+void cvec_write_phas(cvec_t *s, smpl_t data, uint_t channel, uint_t position) {
+ s->phas[channel][position] = data;
+}
+smpl_t cvec_read_norm(cvec_t *s, uint_t channel, uint_t position) {
+ return s->norm[channel][position];
+}
+smpl_t cvec_read_phas(cvec_t *s, uint_t channel, uint_t position) {
+ return s->phas[channel][position];
+}
+void cvec_put_norm_channel(cvec_t *s, smpl_t * data, uint_t channel) {
+ s->norm[channel] = data;
+}
+void cvec_put_phas_channel(cvec_t *s, smpl_t * data, uint_t channel) {
+ s->phas[channel] = data;
+}
+smpl_t * cvec_get_norm_channel(cvec_t *s, uint_t channel) {
+ return s->norm[channel];
+}
+smpl_t * cvec_get_phas_channel(cvec_t *s, uint_t channel) {
+ return s->phas[channel];
+}
+smpl_t ** cvec_get_norm(cvec_t *s) {
+ return s->norm;
+}
+smpl_t ** cvec_get_phas(cvec_t *s) {
+ return s->phas;
+}
+
--- /dev/null
+++ b/src/cvec.h
@@ -1,0 +1,188 @@
+/*
+ Copyright (C) 2003-2007 Paul Brossier <piem@piem.org>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+*/
+
+#ifndef _CVEC_H
+#define _CVEC_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/** \file
+
+ Real and complex buffers
+
+ This file specifies the cvec_t buffer type, which is used throughout aubio to
+ store complex data. Complex values are stored in terms of phase and
+ norm, within size/2+1 long vectors.
+
+*/
+
+/** Spectrum buffer type */
+typedef struct _cvec_t cvec_t;
+/** Buffer for complex data */
+struct _cvec_t {
+ uint_t length; /**< length of buffer = (requested length)/2 + 1 */
+ uint_t channels; /**< number of channels */
+ smpl_t **norm; /**< norm array of size [length] * [channels] */
+ smpl_t **phas; /**< phase array of size [length] * [channels] */
+};
+
+/** cvec_t buffer creation function
+
+ This function creates a cvec_t structure holding two arrays of size
+ [length/2+1] * channels, corresponding to the norm and phase values of the
+ spectral frame. The length stored in the structure is the actual size of both
+ arrays, not the length of the complex and symetrical vector, specified as
+ creation argument.
+
+ \param length the length of the buffer to create
+ \param channels the number of channels in the buffer
+
+*/
+cvec_t * new_cvec(uint_t length, uint_t channels);
+/** cvec_t buffer deletion function
+
+ \param s buffer to delete as returned by new_cvec()
+
+*/
+void del_cvec(cvec_t *s);
+/** write norm value in a complex buffer
+
+ Note that this function is not used in the aubio library, since the same
+ result can be obtained by assigning vec->norm[channel][position]. Its purpose
+ is to access these values from wrappers, as created by swig.
+
+ \param s vector to write to
+ \param data norm value to write in s->norm[channel][position]
+ \param channel channel to write to
+ \param position sample position to write to
+
+*/
+void cvec_write_norm(cvec_t *s, smpl_t data, uint_t channel, uint_t position);
+/** write phase value in a complex buffer
+
+ Note that this function is not used in the aubio library, since the same
+ result can be obtained by assigning vec->phas[channel][position]. Its purpose
+ is to access these values from wrappers, as created by swig.
+
+ \param s vector to write to
+ \param data phase value to write in s->phas[channel][position]
+ \param channel channel to write to
+ \param position sample position to write to
+
+*/
+void cvec_write_phas(cvec_t *s, smpl_t data, uint_t channel, uint_t position);
+/** read norm value from a complex buffer
+
+ Note that this function is not used in the aubio library, since the same
+ result can be obtained with vec->norm[channel][position]. Its purpose is to
+ access these values from wrappers, as created by swig.
+
+ \param s vector to read from
+ \param channel channel to read from
+ \param position sample position to read from
+
+*/
+smpl_t cvec_read_norm(cvec_t *s, uint_t channel, uint_t position);
+/** read phase value from a complex buffer
+
+ Note that this function is not used in the aubio library, since the same
+ result can be obtained with vec->phas[channel][position]. Its purpose is to
+ access these values from wrappers, as created by swig.
+
+ \param s vector to read from
+ \param channel channel to read from
+ \param position sample position to read from
+
+*/
+smpl_t cvec_read_phas(cvec_t *s, uint_t channel, uint_t position);
+/** write norm channel in a complex buffer
+
+ Note that this function is not used in the aubio library, since the same
+ result can be obtained by assigning vec->norm[channel]. Its purpose is to
+ access these values from wrappers, as created by swig.
+
+ \param s vector to write to
+ \param data norm vector of [length] samples to write in s->norm[channel]
+ \param channel channel to write to
+
+*/
+void cvec_put_norm_channel(cvec_t *s, smpl_t * data, uint_t channel);
+/** write phase channel in a complex buffer
+
+ Note that this function is not used in the aubio library, since the same
+ result can be obtained by assigning vec->phas[channel]. Its purpose is to
+ access these values from wrappers, as created by swig.
+
+ \param s vector to write to
+ \param data phase vector of [length] samples to write in s->phas[channel]
+ \param channel channel to write to
+
+*/
+void cvec_put_phas_channel(cvec_t *s, smpl_t * data, uint_t channel);
+/** read norm channel from a complex buffer
+
+ Note that this function is not used in the aubio library, since the same
+ result can be obtained with vec->norm[channel]. Its purpose is to access
+ these values from wrappers, as created by swig.
+
+ \param s vector to read from
+ \param channel channel to read from
+
+*/
+smpl_t * cvec_get_norm_channel(cvec_t *s, uint_t channel);
+/** write phase channel in a complex buffer
+
+ Note that this function is not used in the aubio library, since the same
+ result can be obtained with vec->phas[channel]. Its purpose is to access
+ these values from wrappers, as created by swig.
+
+ \param s vector to read from
+ \param channel channel to read from
+
+*/
+smpl_t * cvec_get_phas_channel(cvec_t *s, uint_t channel);
+/** read norm data from a complex buffer
+
+ Note that this function is not used in the aubio library, since the same
+ result can be obtained with vec->norm. Its purpose is to access these values
+ from wrappers, as created by swig.
+
+ \param s vector to read from
+
+*/
+smpl_t ** cvec_get_norm(cvec_t *s);
+/** read phase data from a complex buffer
+
+ Note that this function is not used in the aubio library, since the same
+ result can be obtained with vec->phas. Its purpose is to access these values
+ from wrappers, as created by swig.
+
+ \param s vector to read from
+
+*/
+smpl_t ** cvec_get_phas(cvec_t *s);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CVEC_H */
+
--- /dev/null
+++ b/src/fvec.c
@@ -1,0 +1,63 @@
+/*
+ Copyright (C) 2003-2007 Paul Brossier <piem@piem.org>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+*/
+
+#include "aubio_priv.h"
+#include "sample.h"
+
+fvec_t * new_fvec( uint_t length, uint_t channels) {
+ fvec_t * s = AUBIO_NEW(fvec_t);
+ uint_t i,j;
+ s->channels = channels;
+ s->length = length;
+ s->data = AUBIO_ARRAY(smpl_t*,s->channels);
+ for (i=0; i< s->channels; i++) {
+ s->data[i] = AUBIO_ARRAY(smpl_t, s->length);
+ for (j=0; j< s->length; j++) {
+ s->data[i][j]=0.;
+ }
+ }
+ return s;
+}
+
+void del_fvec(fvec_t *s) {
+ uint_t i;
+ for (i=0; i<s->channels; i++) {
+ AUBIO_FREE(s->data[i]);
+ }
+ AUBIO_FREE(s->data);
+ AUBIO_FREE(s);
+}
+
+void fvec_write_sample(fvec_t *s, smpl_t data, uint_t channel, uint_t position) {
+ s->data[channel][position] = data;
+}
+smpl_t fvec_read_sample(fvec_t *s, uint_t channel, uint_t position) {
+ return s->data[channel][position];
+}
+void fvec_put_channel(fvec_t *s, smpl_t * data, uint_t channel) {
+ s->data[channel] = data;
+}
+smpl_t * fvec_get_channel(fvec_t *s, uint_t channel) {
+ return s->data[channel];
+}
+
+smpl_t ** fvec_get_data(fvec_t *s) {
+ return s->data;
+}
+
--- /dev/null
+++ b/src/fvec.h
@@ -1,0 +1,120 @@
+/*
+ Copyright (C) 2003-2007 Paul Brossier <piem@piem.org>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+*/
+
+#ifndef _FVEC_H
+#define _FVEC_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/** \file
+
+ Real buffers
+
+ This file specifies the fvec_t buffer type, which is used throughout aubio to
+ store real data.
+
+*/
+
+/** Sample buffer type */
+typedef struct _fvec_t fvec_t;
+/** Buffer for real values */
+struct _fvec_t {
+ uint_t length; /**< length of buffer */
+ uint_t channels; /**< number of channels */
+ smpl_t **data; /**< data array of size [length] * [channels] */
+};
+/** fvec_t buffer creation function
+
+ \param length the length of the buffer to create
+ \param channels the number of channels in the buffer
+
+*/
+fvec_t * new_fvec(uint_t length, uint_t channels);
+/** fvec_t buffer deletion function
+
+ \param s buffer to delete as returned by new_fvec()
+
+*/
+void del_fvec(fvec_t *s);
+/** read sample value in a buffer
+
+ Note that this function is not used in the aubio library, since the same
+ result can be obtained using vec->data[channel][position]. Its purpose is to
+ access these values from wrappers, as created by swig.
+
+ \param s vector to read from
+ \param channel channel to read from
+ \param position sample position to read from
+
+*/
+smpl_t fvec_read_sample(fvec_t *s, uint_t channel, uint_t position);
+/** write sample value in a buffer
+
+ Note that this function is not used in the aubio library, since the same
+ result can be obtained by assigning vec->data[channel][position]. Its purpose
+ is to access these values from wrappers, as created by swig.
+
+ \param s vector to write to
+ \param data value to write in s->data[channel][position]
+ \param channel channel to write to
+ \param position sample position to write to
+
+*/
+void fvec_write_sample(fvec_t *s, smpl_t data, uint_t channel, uint_t position);
+/** read channel vector from a buffer
+
+ Note that this function is not used in the aubio library, since the same
+ result can be obtained with vec->data[channel]. Its purpose is to access
+ these values from wrappers, as created by swig.
+
+ \param s vector to read from
+ \param channel channel to read from
+
+*/
+smpl_t * fvec_get_channel(fvec_t *s, uint_t channel);
+/** write channel vector into a buffer
+
+ Note that this function is not used in the aubio library, since the same
+ result can be obtained by assigning vec->data[channel]. Its purpose is to
+ access these values from wrappers, as created by swig.
+
+ \param s vector to write to
+ \param data vector of [length] values to write
+ \param channel channel to write to
+
+*/
+void fvec_put_channel(fvec_t *s, smpl_t * data, uint_t channel);
+/** read data from a buffer
+
+ Note that this function is not used in the aubio library, since the same
+ result can be obtained with vec->data. Its purpose is to access these values
+ from wrappers, as created by swig.
+
+ \param s vector to read from
+
+*/
+smpl_t ** fvec_get_data(fvec_t *s);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _FVEC_H */
--- a/src/sample.c
+++ /dev/null
@@ -1,122 +1,0 @@
-/*
- Copyright (C) 2003 Paul Brossier
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
-*/
-
-#include "aubio_priv.h"
-#include "sample.h"
-
-fvec_t * new_fvec( uint_t length, uint_t channels) {
- fvec_t * s = AUBIO_NEW(fvec_t);
- uint_t i,j;
- s->channels = channels;
- s->length = length;
- s->data = AUBIO_ARRAY(smpl_t*,s->channels);
- for (i=0; i< s->channels; i++) {
- s->data[i] = AUBIO_ARRAY(smpl_t, s->length);
- for (j=0; j< s->length; j++) {
- s->data[i][j]=0.;
- }
- }
- return s;
-}
-
-void del_fvec(fvec_t *s) {
- uint_t i;
- for (i=0; i<s->channels; i++) {
- AUBIO_FREE(s->data[i]);
- }
- AUBIO_FREE(s->data);
- AUBIO_FREE(s);
-}
-
-void fvec_write_sample(fvec_t *s, smpl_t data, uint_t channel, uint_t position) {
- s->data[channel][position] = data;
-}
-smpl_t fvec_read_sample(fvec_t *s, uint_t channel, uint_t position) {
- return s->data[channel][position];
-}
-void fvec_put_channel(fvec_t *s, smpl_t * data, uint_t channel) {
- s->data[channel] = data;
-}
-smpl_t * fvec_get_channel(fvec_t *s, uint_t channel) {
- return s->data[channel];
-}
-
-smpl_t ** fvec_get_data(fvec_t *s) {
- return s->data;
-}
-
-cvec_t * new_cvec( uint_t length, uint_t channels) {
- cvec_t * s = AUBIO_NEW(cvec_t);
- uint_t i,j;
- s->channels = channels;
- s->length = length/2 + 1;
- s->norm = AUBIO_ARRAY(smpl_t*,s->channels);
- s->phas = AUBIO_ARRAY(smpl_t*,s->channels);
- for (i=0; i< s->channels; i++) {
- s->norm[i] = AUBIO_ARRAY(smpl_t,s->length);
- s->phas[i] = AUBIO_ARRAY(smpl_t,s->length);
- for (j=0; j< s->length; j++) {
- s->norm[i][j]=0.;
- s->phas[i][j]=0.;
- }
- }
- return s;
-}
-
-void del_cvec(cvec_t *s) {
- uint_t i;
- for (i=0; i<s->channels; i++) {
- AUBIO_FREE(s->norm[i]);
- AUBIO_FREE(s->phas[i]);
- }
- AUBIO_FREE(s->norm);
- AUBIO_FREE(s->phas);
- AUBIO_FREE(s);
-}
-
-void cvec_write_norm(cvec_t *s, smpl_t data, uint_t channel, uint_t position) {
- s->norm[channel][position] = data;
-}
-void cvec_write_phas(cvec_t *s, smpl_t data, uint_t channel, uint_t position) {
- s->phas[channel][position] = data;
-}
-smpl_t cvec_read_norm(cvec_t *s, uint_t channel, uint_t position) {
- return s->norm[channel][position];
-}
-smpl_t cvec_read_phas(cvec_t *s, uint_t channel, uint_t position) {
- return s->phas[channel][position];
-}
-void cvec_put_norm_channel(cvec_t *s, smpl_t * data, uint_t channel) {
- s->norm[channel] = data;
-}
-void cvec_put_phas_channel(cvec_t *s, smpl_t * data, uint_t channel) {
- s->phas[channel] = data;
-}
-smpl_t * cvec_get_norm_channel(cvec_t *s, uint_t channel) {
- return s->norm[channel];
-}
-smpl_t * cvec_get_phas_channel(cvec_t *s, uint_t channel) {
- return s->phas[channel];
-}
-smpl_t ** cvec_get_norm(cvec_t *s) {
- return s->norm;
-}
-smpl_t ** cvec_get_phas(cvec_t *s) {
- return s->phas;
-}
--- a/src/sample.h
+++ b/src/sample.h
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2003 Paul Brossier
+ Copyright (C) 2003-2007 Paul Brossier <piem@piem.org>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -20,247 +20,7 @@
#ifndef _SAMPLE_H
#define _SAMPLE_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/** \file
-
- Real and complex buffers
-
- This file specifies fvec_t and cvec_t buffers types, which are used
- throughout aubio to store real and complex data. Complex values are stored in
- terms of phase and norm.
-
-*/
-
-/** Sample buffer type */
-typedef struct _fvec_t fvec_t;
-/** Spectrum buffer type */
-typedef struct _cvec_t cvec_t;
-/** Buffer for real values */
-struct _fvec_t {
- uint_t length; /**< length of buffer */
- uint_t channels; /**< number of channels */
- smpl_t **data; /**< data array of size [length] * [channels] */
-};
-/** Buffer for complex data */
-struct _cvec_t {
- uint_t length; /**< length of buffer = (requested length)/2 + 1 */
- uint_t channels; /**< number of channels */
- smpl_t **norm; /**< norm array of size [length] * [channels] */
- smpl_t **phas; /**< phase array of size [length] * [channels] */
-};
-/** fvec_t buffer creation function
-
- \param length the length of the buffer to create
- \param channels the number of channels in the buffer
-
-*/
-fvec_t * new_fvec(uint_t length, uint_t channels);
-/** fvec_t buffer deletion function
-
- \param s buffer to delete as returned by new_fvec()
-
-*/
-void del_fvec(fvec_t *s);
-/** read sample value in a buffer
-
- Note that this function is not used in the aubio library, since the same
- result can be obtained using vec->data[channel][position]. Its purpose is to
- access these values from wrappers, as created by swig.
-
- \param s vector to read from
- \param channel channel to read from
- \param position sample position to read from
-
-*/
-smpl_t fvec_read_sample(fvec_t *s, uint_t channel, uint_t position);
-/** write sample value in a buffer
-
- Note that this function is not used in the aubio library, since the same
- result can be obtained by assigning vec->data[channel][position]. Its purpose
- is to access these values from wrappers, as created by swig.
-
- \param s vector to write to
- \param data value to write in s->data[channel][position]
- \param channel channel to write to
- \param position sample position to write to
-
-*/
-void fvec_write_sample(fvec_t *s, smpl_t data, uint_t channel, uint_t position);
-/** read channel vector from a buffer
-
- Note that this function is not used in the aubio library, since the same
- result can be obtained with vec->data[channel]. Its purpose is to access
- these values from wrappers, as created by swig.
-
- \param s vector to read from
- \param channel channel to read from
-
-*/
-smpl_t * fvec_get_channel(fvec_t *s, uint_t channel);
-/** write channel vector into a buffer
-
- Note that this function is not used in the aubio library, since the same
- result can be obtained by assigning vec->data[channel]. Its purpose is to
- access these values from wrappers, as created by swig.
-
- \param s vector to write to
- \param data vector of [length] values to write
- \param channel channel to write to
-
-*/
-void fvec_put_channel(fvec_t *s, smpl_t * data, uint_t channel);
-/** read data from a buffer
-
- Note that this function is not used in the aubio library, since the same
- result can be obtained with vec->data. Its purpose is to access these values
- from wrappers, as created by swig.
-
- \param s vector to read from
-
-*/
-smpl_t ** fvec_get_data(fvec_t *s);
-
-/** cvec_t buffer creation function
-
- This function creates a cvec_t structure holding two arrays of size
- [length/2+1] * channels, corresponding to the norm and phase values of the
- spectral frame. The length stored in the structure is the actual size of both
- arrays, not the length of the complex and symetrical vector, specified as
- creation argument.
-
- \param length the length of the buffer to create
- \param channels the number of channels in the buffer
-
-*/
-cvec_t * new_cvec(uint_t length, uint_t channels);
-/** cvec_t buffer deletion function
-
- \param s buffer to delete as returned by new_cvec()
-
-*/
-void del_cvec(cvec_t *s);
-/** write norm value in a complex buffer
-
- Note that this function is not used in the aubio library, since the same
- result can be obtained by assigning vec->norm[channel][position]. Its purpose
- is to access these values from wrappers, as created by swig.
-
- \param s vector to write to
- \param data norm value to write in s->norm[channel][position]
- \param channel channel to write to
- \param position sample position to write to
-
-*/
-void cvec_write_norm(cvec_t *s, smpl_t data, uint_t channel, uint_t position);
-/** write phase value in a complex buffer
-
- Note that this function is not used in the aubio library, since the same
- result can be obtained by assigning vec->phas[channel][position]. Its purpose
- is to access these values from wrappers, as created by swig.
-
- \param s vector to write to
- \param data phase value to write in s->phas[channel][position]
- \param channel channel to write to
- \param position sample position to write to
-
-*/
-void cvec_write_phas(cvec_t *s, smpl_t data, uint_t channel, uint_t position);
-/** read norm value from a complex buffer
-
- Note that this function is not used in the aubio library, since the same
- result can be obtained with vec->norm[channel][position]. Its purpose is to
- access these values from wrappers, as created by swig.
-
- \param s vector to read from
- \param channel channel to read from
- \param position sample position to read from
-
-*/
-smpl_t cvec_read_norm(cvec_t *s, uint_t channel, uint_t position);
-/** read phase value from a complex buffer
-
- Note that this function is not used in the aubio library, since the same
- result can be obtained with vec->phas[channel][position]. Its purpose is to
- access these values from wrappers, as created by swig.
-
- \param s vector to read from
- \param channel channel to read from
- \param position sample position to read from
-
-*/
-smpl_t cvec_read_phas(cvec_t *s, uint_t channel, uint_t position);
-/** write norm channel in a complex buffer
-
- Note that this function is not used in the aubio library, since the same
- result can be obtained by assigning vec->norm[channel]. Its purpose is to
- access these values from wrappers, as created by swig.
-
- \param s vector to write to
- \param data norm vector of [length] samples to write in s->norm[channel]
- \param channel channel to write to
-
-*/
-void cvec_put_norm_channel(cvec_t *s, smpl_t * data, uint_t channel);
-/** write phase channel in a complex buffer
-
- Note that this function is not used in the aubio library, since the same
- result can be obtained by assigning vec->phas[channel]. Its purpose is to
- access these values from wrappers, as created by swig.
-
- \param s vector to write to
- \param data phase vector of [length] samples to write in s->phas[channel]
- \param channel channel to write to
-
-*/
-void cvec_put_phas_channel(cvec_t *s, smpl_t * data, uint_t channel);
-/** read norm channel from a complex buffer
-
- Note that this function is not used in the aubio library, since the same
- result can be obtained with vec->norm[channel]. Its purpose is to access
- these values from wrappers, as created by swig.
-
- \param s vector to read from
- \param channel channel to read from
-
-*/
-smpl_t * cvec_get_norm_channel(cvec_t *s, uint_t channel);
-/** write phase channel in a complex buffer
-
- Note that this function is not used in the aubio library, since the same
- result can be obtained with vec->phas[channel]. Its purpose is to access
- these values from wrappers, as created by swig.
-
- \param s vector to read from
- \param channel channel to read from
-
-*/
-smpl_t * cvec_get_phas_channel(cvec_t *s, uint_t channel);
-/** read norm data from a complex buffer
-
- Note that this function is not used in the aubio library, since the same
- result can be obtained with vec->norm. Its purpose is to access these values
- from wrappers, as created by swig.
-
- \param s vector to read from
-
-*/
-smpl_t ** cvec_get_norm(cvec_t *s);
-/** read phase data from a complex buffer
-
- Note that this function is not used in the aubio library, since the same
- result can be obtained with vec->phas. Its purpose is to access these values
- from wrappers, as created by swig.
-
- \param s vector to read from
-
-*/
-smpl_t ** cvec_get_phas(cvec_t *s);
-
-#ifdef __cplusplus
-}
-#endif
+#include "fvec.h"
+#include "cvec.h"
#endif /* _SAMPLE_H */