added aubio_tss_set_thres function
authorPaul Brossier <piem@altern.org>
Sun, 6 Nov 2005 11:24:13 +0000 (11:24 +0000)
committerPaul Brossier <piem@altern.org>
Sun, 6 Nov 2005 11:24:13 +0000 (11:24 +0000)
added aubio_tss_set_thres function

src/tss.c
src/tss.h

index 768a433f07e5af76e51ef85a013c81201f11b50d..da5a585f80997a1cceb0641aee7d317cd7ccc781 100644 (file)
--- a/src/tss.c
+++ b/src/tss.c
@@ -30,6 +30,7 @@ struct _aubio_tss_t
   smpl_t alfa;
   smpl_t beta;
   smpl_t parm;
+  smpl_t thrsfact;
   fvec_t *theta1;
   fvec_t *theta2;
   fvec_t *oft1;
@@ -91,15 +92,21 @@ void aubio_tss_do(aubio_tss_t *o, cvec_t * input,
   }
 }
 
+void aubio_tss_set_thres(aubio_tss_t *o, smpl_t thrs){
+       o->thrs = thrs;
+       o->parm = thrs*o->thrsfact;
+}
+
 aubio_tss_t * new_aubio_tss(smpl_t thrs, smpl_t alfa, smpl_t beta, 
     uint_t size, uint_t overlap,uint_t channels)
 {
   aubio_tss_t * o = AUBIO_NEW(aubio_tss_t);
   uint_t rsize = size/2+1;
   o->thrs = thrs;
+  o->thrsfact = TWO_PI*overlap/rsize;
   o->alfa = alfa;      
   o->beta = beta;      
-  o->parm = thrs*TWO_PI*overlap/rsize;
+  o->parm = thrs*o->thrsfact;
   o->theta1 = new_fvec(rsize,channels);
   o->theta2 = new_fvec(rsize,channels);
   o->oft1 = new_fvec(rsize,channels);
index 81fbe2b8dc797e82e78089a39fb896e848f5c3b3..a8dd1757eb91be71e35152d64fbdb307abdf8f92 100644 (file)
--- a/src/tss.h
+++ b/src/tss.h
@@ -37,6 +37,8 @@ extern aubio_tss_t * new_aubio_tss(smpl_t thrs, smpl_t alfa, smpl_t beta,
 /** public deletion function */
 extern void del_aubio_tss(aubio_tss_t *s);
 
+extern void aubio_tss_set_thres(aubio_tss_t *tss, smpl_t thrs);
+
 /** split input into transient and steady states components*/
 extern void aubio_tss_do(aubio_tss_t *s, cvec_t * input, cvec_t * trans, cvec_t * stead);