-// 2 modifications made for aubio:
+// modifications made for aubio:
// - replace all 'double' with 'smpl_t'
// - include "aubio_priv.h" (for config.h and types.h)
+// - add missing prototypes
#include "aubio_priv.h"
+void cdft(int n, int isgn, smpl_t *a, int *ip, smpl_t *w);
+void rdft(int n, int isgn, smpl_t *a, int *ip, smpl_t *w);
+void ddct(int n, int isgn, smpl_t *a, int *ip, smpl_t *w);
+void ddst(int n, int isgn, smpl_t *a, int *ip, smpl_t *w);
+void dfct(int n, smpl_t *a, smpl_t *t, int *ip, smpl_t *w);
+void dfst(int n, smpl_t *a, smpl_t *t, int *ip, smpl_t *w);
+void makewt(int nw, int *ip, smpl_t *w);
+void makect(int nc, int *ip, smpl_t *c);
+void bitrv2(int n, int *ip, smpl_t *a);
+void bitrv2conj(int n, int *ip, smpl_t *a);
+void cftfsub(int n, smpl_t *a, smpl_t *w);
+void cftbsub(int n, smpl_t *a, smpl_t *w);
+void cft1st(int n, smpl_t *a, smpl_t *w);
+void cftmdl(int n, int l, smpl_t *a, smpl_t *w);
+void rftfsub(int n, smpl_t *a, int nc, smpl_t *c);
+void rftbsub(int n, smpl_t *a, int nc, smpl_t *c);
+void dctsub(int n, smpl_t *a, int nc, smpl_t *c);
+void dstsub(int n, smpl_t *a, int nc, smpl_t *c);
+
/*
Fast Fourier/Cosine/Sine Transform
dimension :one
#include "cvec.h"
#include "spectral/specdesc.h"
+void aubio_specdesc_centroid (aubio_specdesc_t * o, cvec_t * spec,
+ fvec_t * desc);
+void aubio_specdesc_spread (aubio_specdesc_t * o, cvec_t * spec,
+ fvec_t * desc);
+void aubio_specdesc_skewness (aubio_specdesc_t * o, cvec_t * spec,
+ fvec_t * desc);
+void aubio_specdesc_kurtosis (aubio_specdesc_t * o, cvec_t * spec,
+ fvec_t * desc);
+void aubio_specdesc_slope (aubio_specdesc_t * o, cvec_t * spec,
+ fvec_t * desc);
+void aubio_specdesc_decrease (aubio_specdesc_t * o, cvec_t * spec,
+ fvec_t * desc);
+void aubio_specdesc_rolloff (aubio_specdesc_t * o, cvec_t * spec,
+ fvec_t * desc);
+
+
+smpl_t cvec_sum (cvec_t * s);
+smpl_t cvec_mean (cvec_t * s);
+smpl_t cvec_centroid (cvec_t * s);
+smpl_t cvec_moment (cvec_t * s, uint_t moment);
+
smpl_t
cvec_sum (cvec_t * s)
{
#include "mathutils.h"
#include "tempo/tempo.h"
+// TODO implement get/set_delay
+
+/** set current delay
+
+ \param o beat tracking object
+
+ \return current delay, in samples
+
+ */
+uint_t aubio_tempo_get_delay(aubio_tempo_t * o);
+
+/** set current delay
+
+ \param o beat tracking object
+ \param delay delay to set tempo to, in samples
+
+ \return `0` if successful, non-zero otherwise
+
+ */
+uint_t aubio_tempo_set_delay(aubio_tempo_t * o, uint_t delay);
+
/* structure to store object state */
struct _aubio_tempo_t {
aubio_specdesc_t * od; /** onset detection */