[tests] check creating filterbank with wrong parameters returns null
[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   if (new_aubio_filterbank(0, win_s)) return 1;
12   if (new_aubio_filterbank(n_filters, 0)) return 1;
13
14   // create filterbank object
15   aubio_filterbank_t *o = new_aubio_filterbank (n_filters, win_s);
16
17   smpl_t power = aubio_filterbank_get_power(o);
18   smpl_t norm = aubio_filterbank_get_norm(o);
19   if (aubio_filterbank_set_power(o, power)) {
20     return 1;
21   }
22   if (aubio_filterbank_set_norm(o, norm)) {
23     return 1;
24   }
25
26   // apply filterbank ten times
27   uint_t n = 10;
28   while (n) {
29     aubio_filterbank_do (o, in_spec, out_filters);
30     n--;
31   }
32
33   // print out filterbank coeffs
34   fmat_t *coeffs; // pointer to the coefficients
35   coeffs = aubio_filterbank_get_coeffs (o);
36   fmat_print (coeffs);
37
38   aubio_filterbank_set_coeffs (o, coeffs);
39   coeffs = aubio_filterbank_get_coeffs (o);
40   fmat_print (coeffs);
41
42   //fvec_print (out_filters);
43
44   // clean up
45   del_aubio_filterbank (o);
46   del_cvec (in_spec);
47   del_fvec (out_filters);
48   aubio_cleanup ();
49
50   return 0;
51 }