aubio_dct_t *dct;
fvec_t *output;
#endif
+ smpl_t scale;
};
mfcc->output = new_fvec (n_filters);
#endif
+ mfcc->scale = 1.;
+
return mfcc;
}
#ifndef HAVE_SLOW_DCT
fvec_t tmp;
#endif
+
/* compute filterbank */
aubio_filterbank_do (mf->fb, in, mf->in_dct);
/* compute log10 */
fvec_log10 (mf->in_dct);
- /* raise power */
- //fvec_pow (mf->in_dct, 3.);
+ if (mf->scale != 1) fvec_mul (mf->in_dct, mf->scale);
/* compute mfccs */
#if defined(HAVE_SLOW_DCT)
return aubio_filterbank_get_power(mf->fb);
}
+uint_t aubio_mfcc_set_scale (aubio_mfcc_t *mf, smpl_t scale)
+{
+ mf->scale = scale;
+ return AUBIO_OK;
+}
+
+uint_t aubio_mfcc_get_scale (aubio_mfcc_t *mf)
+{
+ return mf->scale;
+}
+
uint_t aubio_mfcc_set_mel_coeffs (aubio_mfcc_t *mf, smpl_t freq_min,
smpl_t freq_max)
{