ref: 17961b046446f15bb173c3800e08297066319b74
parent: ff68b34f21a309a5342b0d70f9be350f429f0143
author: Paul Brossier <piem@piem.org>
date: Sun Sep 16 20:50:05 EDT 2007
filterbank.{c,h}: add aubio_filterbank_get_channel function
--- a/src/filterbank.c
+++ b/src/filterbank.c
@@ -22,6 +22,7 @@
#include "aubio_priv.h"
#include "sample.h"
#include "filterbank.h"
+#include "mathutils.h"
#include "stdio.h"
@@ -124,8 +125,7 @@
//filling the fft_freqs lookup table, which assigns the frequency in hz to each bin
for(bin_cnt=0; bin_cnt<win_s; bin_cnt++){
- //TODO: check the formula!
- fft_freqs->data[0][bin_cnt]= (smpl_t)samplerate* (smpl_t)bin_cnt/ (smpl_t)win_s;
+ fft_freqs->data[0][bin_cnt]= aubio_bintofreq(bin_cnt, samplerate, win_s);
}
//building each filter table
@@ -213,4 +213,9 @@
}
return;
+}
+
+fvec_t * aubio_filterbank_getchannel(aubio_filterbank_t * f, uint_t channel) {
+ if ( (channel >= 0) && (channel < f->n_filters) ) { return f->filters[channel]; }
+ else { return NULL; }
}
--- a/src/filterbank.h
+++ b/src/filterbank.h
@@ -67,6 +67,11 @@
*/
void aubio_filterbank_do(aubio_filterbank_t * fb, cvec_t * in, fvec_t *out);
+/** return the vector containing the filter coefficients of one channel
+
+ */
+fvec_t * aubio_filterbank_getchannel(aubio_filterbank_t * f, uint_t channel);
+
#ifdef __cplusplus
}
#endif
--
⑨