8b487c29361859e7a2f5229897152221cdd6d3a6
[aubio.git] / tests / src / spectral / test-filterbank.c
1 #include <aubio.h>
2
3 int main (void)
4 {
5   uint_t win_s = 1024; // window size
6   uint_t n_filters = 13; // number of filters
7
8   cvec_t *in_spec = new_cvec (win_s); // input vector of samples
9   fvec_t *out_filters = new_fvec (n_filters); // per-band outputs
10
11   // create filterbank object
12   aubio_filterbank_t *o = new_aubio_filterbank (n_filters, win_s);
13
14   smpl_t power = aubio_filterbank_get_power(o);
15   smpl_t norm = aubio_filterbank_get_norm(o);
16   if (aubio_filterbank_set_power(o, power)) {
17     return 1;
18   }
19   if (aubio_filterbank_set_norm(o, norm)) {
20     return 1;
21   }
22
23   // apply filterbank ten times
24   uint_t n = 10;
25   while (n) {
26     aubio_filterbank_do (o, in_spec, out_filters);
27     n--;
28   }
29
30   // print out filterbank coeffs
31   fmat_t *coeffs; // pointer to the coefficients
32   coeffs = aubio_filterbank_get_coeffs (o);
33   fmat_print (coeffs);
34
35   aubio_filterbank_set_coeffs (o, coeffs);
36   coeffs = aubio_filterbank_get_coeffs (o);
37   fmat_print (coeffs);
38
39   //fvec_print (out_filters);
40
41   // clean up
42   del_aubio_filterbank (o);
43   del_cvec (in_spec);
44   del_fvec (out_filters);
45   aubio_cleanup ();
46
47   return 0;
48 }