Index: tests/src/spectral/test-fft.c
===================================================================
--- tests/src/spectral/test-fft.c	(revision 8f68dfbce6a384264ae9121a30aa359fc7c0fcd8)
+++ tests/src/spectral/test-fft.c	(revision 6938a20076f6383268da0641675124f6cdff5411)
@@ -1,34 +1,38 @@
-
 #include <aubio.h>
 
-int main(){
-        /* allocate some memory */
-        uint_t win_s      = 8;                       /* window size        */
-        fvec_t * in       = new_fvec (win_s); /* input buffer       */
-        cvec_t * fftgrain = new_cvec (win_s); /* fft norm and phase */
-        fvec_t * out      = new_fvec (win_s); /* output buffer      */
-        in->data[0] = 1;
-        in->data[1] = 2;
-        in->data[2] = 3;
-        in->data[3] = 4;
-        in->data[4] = 5;
-        in->data[5] = 6;
-        in->data[6] = 5;
-        in->data[7] = 6;
-        /* allocate fft and other memory space */
-        aubio_fft_t * fft = new_aubio_fft(win_s);
-        /* fill input with some data */
-        fvec_print(in);
-        /* execute stft */
-        aubio_fft_do (fft,in,fftgrain);
-        cvec_print(fftgrain);
-        /* execute inverse fourier transform */
-        aubio_fft_rdo(fft,fftgrain,out);
-        fvec_print(out);
-        del_aubio_fft(fft);
-        del_fvec(in);
-        del_cvec(fftgrain);
-        del_fvec(out);
-        aubio_cleanup();
-        return 0;
+int main ()
+{
+  uint_t win_s = 8; // window size
+  fvec_t * in = new_fvec (win_s); // input buffer
+  cvec_t * fftgrain = new_cvec (win_s); // fft norm and phase
+  fvec_t * out = new_fvec (win_s); // output buffer
+  // create fft object
+  aubio_fft_t * fft = new_aubio_fft(win_s);
+
+  // fill input with some data
+  in->data[0] = 1;
+  in->data[1] = 2;
+  in->data[2] = 3;
+  in->data[3] = 4;
+  in->data[4] = 5;
+  in->data[5] = 6;
+  in->data[6] = 5;
+  in->data[7] = 6;
+  fvec_print(in);
+
+  // execute stft
+  aubio_fft_do (fft,in,fftgrain);
+  cvec_print(fftgrain);
+
+  // execute inverse fourier transform
+  aubio_fft_rdo(fft,fftgrain,out);
+
+  // cleam up
+  fvec_print(out);
+  del_aubio_fft(fft);
+  del_fvec(in);
+  del_cvec(fftgrain);
+  del_fvec(out);
+  aubio_cleanup();
+  return 0;
 }
Index: tests/src/spectral/test-filterbank.c
===================================================================
--- tests/src/spectral/test-filterbank.c	(revision 8f68dfbce6a384264ae9121a30aa359fc7c0fcd8)
+++ tests/src/spectral/test-filterbank.c	(revision 6938a20076f6383268da0641675124f6cdff5411)
@@ -1,39 +1,27 @@
-#define AUBIO_UNSTABLE 1
-
-#include <stdio.h>
 #include <aubio.h>
 
-int main (void) {
+int main ()
+{
   uint_t win_s = 1024; // window size
   uint_t n_filters = 13; // number of filters
-  cvec_t *in = new_cvec (win_s); // input buffer
-  fvec_t *out = new_fvec (win_s); // vector output */
-  fmat_t *coeffs = NULL;
 
-  // create filterbank
+  cvec_t *in_spec = new_cvec (win_s); // input vector of samples
+  fvec_t *out_filters = new_fvec (n_filters); // per-band outputs
+  fmat_t *coeffs; // pointer to the coefficients
+
+  // create filterbank object
   aubio_filterbank_t *o = new_aubio_filterbank (n_filters, win_s);
 
   coeffs = aubio_filterbank_get_coeffs (o);
-  if (coeffs == NULL) {
-    return -1;
-  }
 
-  /*
-  if (fvec_max (coeffs) != 0.) {
-    return -1;
-  }
+  aubio_filterbank_do (o, in_spec, out_filters);
 
-  if (fvec_min (coeffs) != 0.) {
-    return -1;
-  }
-  */
-
-  fmat_print (coeffs);
-
-  aubio_filterbank_do (o, in, out);
+  // fmat_print (coeffs);
+  // cvec_print(in_spec);
+  // fvec_print(out_filters);
 
   del_aubio_filterbank (o);
-  del_cvec (in);
-  del_fvec (out);
+  del_cvec (in_spec);
+  del_fvec (out_filters);
   aubio_cleanup ();
 
Index: tests/src/spectral/test-filterbank_mel.c
===================================================================
--- tests/src/spectral/test-filterbank_mel.c	(revision 8f68dfbce6a384264ae9121a30aa359fc7c0fcd8)
+++ tests/src/spectral/test-filterbank_mel.c	(revision 6938a20076f6383268da0641675124f6cdff5411)
@@ -1,34 +1,27 @@
-#define AUBIO_UNSTABLE 1
-
-#include <stdio.h>
 #include <aubio.h>
 
-int
-main (void)
+int main ()
 {
-  /* allocate some memory */
+  uint_t samplerate = 16000; // samplerate of signal to filter
   uint_t win_s = 512; // fft size
   uint_t n_filters = 40; // number of filters
-  cvec_t *in_spec = new_cvec (win_s); // input buffer */
-  fvec_t *out_filters = new_fvec (n_filters); // output coeffs */
-  fmat_t *coeffs = NULL;
-  smpl_t samplerate = 16000.;
 
-  /* allocate fft and other memory space */
+  cvec_t *in_spec = new_cvec (win_s); // input vector of samples
+  fvec_t *out_filters = new_fvec (n_filters); // per-band outputs
+  fmat_t *coeffs; // pointer to the coefficients
+
+  // create filterbank object
   aubio_filterbank_t *o = new_aubio_filterbank (n_filters, win_s);
 
-  /* assign Mel-frequency coefficients */
+  // assign Mel-frequency coefficients
   aubio_filterbank_set_mel_coeffs_slaney (o, samplerate);
 
   coeffs = aubio_filterbank_get_coeffs (o);
 
-  fmat_print (coeffs);
-
-  //fprintf(stderr, "%f\n", fvec_sum(coeffs));
-
   aubio_filterbank_do (o, in_spec, out_filters);
 
-  fvec_print(in_spec);
-  fvec_print(out_filters);
+  // fmat_print (coeffs);
+  // cvec_print(in_spec);
+  // fvec_print(out_filters);
 
   del_aubio_filterbank (o);
Index: tests/src/spectral/test-mfcc.c
===================================================================
--- tests/src/spectral/test-mfcc.c	(revision 8f68dfbce6a384264ae9121a30aa359fc7c0fcd8)
+++ tests/src/spectral/test-mfcc.c	(revision 6938a20076f6383268da0641675124f6cdff5411)
@@ -1,25 +1,25 @@
 #include <aubio.h>
 
-int
-main (void)
+int main ()
 {
-  /* allocate some memory */
-  uint_t win_s = 512;           /* fft size */
-  uint_t n_filters = 40;        /* number of filters */
-  uint_t n_coefs = 13;          /* number of coefficients */
-  cvec_t *in = new_cvec (win_s);      /* input buffer */
-  fvec_t *out = new_fvec (n_coefs);     /* input buffer */
-  smpl_t samplerate = 16000.;
+  uint_t win_s = 512; // fft size
+  uint_t n_filters = 40; // number of filters
+  uint_t n_coefs = 13; // number of coefficients
+  smpl_t samplerate = 16000.; // samplerate
+  cvec_t *in = new_cvec (win_s); // input buffer
+  fvec_t *out = new_fvec (n_coefs); // output coefficients
 
-  /* allocate fft and other memory space */
+  // create mfcc object
   aubio_mfcc_t *o = new_aubio_mfcc (win_s, n_filters, n_coefs, samplerate);
 
   cvec_set (in, 1.);
-
-  aubio_mfcc_do (o, in, out);
-  fvec_print (out);
   aubio_mfcc_do (o, in, out);
   fvec_print (out);
 
+  cvec_set (in, .5);
+  aubio_mfcc_do (o, in, out);
+  fvec_print (out);
+
+  // clean up
   del_aubio_mfcc (o);
   del_cvec (in);
Index: tests/src/spectral/test-phasevoc-jack.c
===================================================================
--- tests/src/spectral/test-phasevoc-jack.c	(revision 8f68dfbce6a384264ae9121a30aa359fc7c0fcd8)
+++ tests/src/spectral/test-phasevoc-jack.c	(revision 6938a20076f6383268da0641675124f6cdff5411)
@@ -15,12 +15,12 @@
 #endif /* HAVE_JACK */
 
-uint_t testing  = 0;  /* change this to 1 to listen        */
+uint_t testing  = 0;  // change this to 1 to listen
 
-uint_t win_s    = 512;/* window size                       */
-uint_t hop_s    = 128;/* hop size                          */
-uint_t channels = 2;  /* number of audio channels          */
-uint_t midiin   = 4;  /* number of midi input channels     */
-uint_t midiout  = 2;  /* number of midi output channels    */
-uint_t pos      = 0;  /* frames%dspblocksize for jack loop */
+uint_t win_s    = 512; // window size
+uint_t hop_s    = 128; // hop size
+uint_t channels = 2; // number of audio channels
+uint_t midiin   = 4; // number of midi input channels
+uint_t midiout  = 2; // number of midi output channels
+uint_t pos      = 0; // frames%dspblocksize for jack loop
 
 fvec_t * in[2];
@@ -32,38 +32,39 @@
 int aubio_process(float **input, float **output, int nframes);
 
-int main(){
-        /* allocate some memory */
+int main ()
+{
+  /* allocate some memory */
   uint_t i;
-    for (i=0;i<channels;i++) {
-        in[i]       = new_fvec (hop_s); /* input buffer       */
-        fftgrain[i] = new_cvec (win_s); /* fft norm and phase */
-        out[i]      = new_fvec (hop_s); /* output buffer      */
-        /* allocate fft and other memory space */
-        pv[i] = new_aubio_pvoc(win_s,hop_s);
-    }
+  for (i=0;i<channels;i++) {
+    in[i]       = new_fvec (hop_s); /* input buffer       */
+    fftgrain[i] = new_cvec (win_s); /* fft norm and phase */
+    out[i]      = new_fvec (hop_s); /* output buffer      */
+    /* allocate fft and other memory space */
+    pv[i] = new_aubio_pvoc(win_s,hop_s);
+  }
 
 #ifdef HAVE_JACK
-        aubio_jack_t * jack_setup;
-        jack_setup  = new_aubio_jack(channels, channels, 
-            midiin, midiout,
-            (aubio_process_func_t)aubio_process);
-        aubio_jack_activate(jack_setup);
-        /* stay in main jack loop for 1 seconds only */
-        do {
-          sleep(1);
-        } while(testing);
-        aubio_jack_close(jack_setup);
+  aubio_jack_t * jack_setup;
+  jack_setup  = new_aubio_jack(channels, channels, 
+      midiin, midiout,
+      (aubio_process_func_t)aubio_process);
+  aubio_jack_activate(jack_setup);
+  /* stay in main jack loop for 1 seconds only */
+  do {
+    sleep(1);
+  } while(testing);
+  aubio_jack_close(jack_setup);
 #else
-        fprintf(stderr, "WARNING: no jack support\n");
+  fprintf(stderr, "WARNING: no jack support\n");
 #endif
-        
-    for (i=0;i<channels;i++) {
-        del_aubio_pvoc(pv[i]);
-        del_cvec(fftgrain[i]);
-        del_fvec(in[i]);
-        del_fvec(out[i]);
-    }
-        aubio_cleanup();
-        return 0;
+
+  for (i=0;i<channels;i++) {
+    del_aubio_pvoc(pv[i]);
+    del_cvec(fftgrain[i]);
+    del_fvec(in[i]);
+    del_fvec(out[i]);
+  }
+  aubio_cleanup();
+  return 0;
 }
 
@@ -81,17 +82,17 @@
     if (pos == hop_s-1) {
       /* block loop */
-    for (i=0;i<channels;i++) {
-      aubio_pvoc_do (pv[i], in[i], fftgrain[i]);
-      // zero phases of first channel
-      for (i=0;i<fftgrain[i]->length;i++) fftgrain[0]->phas[i] = 0.; 
-      // double phases of second channel
-      for (i=0;i<fftgrain[i]->length;i++) {
-        fftgrain[1]->phas[i] = 
-          aubio_unwrap2pi (fftgrain[1]->phas[i] * 2.); 
+      for (i=0;i<channels;i++) {
+        aubio_pvoc_do (pv[i], in[i], fftgrain[i]);
+        // zero phases of first channel
+        for (i=0;i<fftgrain[i]->length;i++) fftgrain[0]->phas[i] = 0.; 
+        // double phases of second channel
+        for (i=0;i<fftgrain[i]->length;i++) {
+          fftgrain[1]->phas[i] = 
+            aubio_unwrap2pi (fftgrain[1]->phas[i] * 2.); 
+        }
+        // copy second channel to third one
+        aubio_pvoc_rdo(pv[i], fftgrain[i], out[i]);
+        pos = -1;
       }
-      // copy second channel to third one
-      aubio_pvoc_rdo(pv[i], fftgrain[i], out[i]);
-      pos = -1;
-    }
     }
     pos++;
Index: tests/src/spectral/test-phasevoc.c
===================================================================
--- tests/src/spectral/test-phasevoc.c	(revision 8f68dfbce6a384264ae9121a30aa359fc7c0fcd8)
+++ tests/src/spectral/test-phasevoc.c	(revision 6938a20076f6383268da0641675124f6cdff5411)
@@ -1,30 +1,47 @@
-/* test sample for phase vocoder */
-
-#include <stdio.h>
 #include <aubio.h>
 
-int main(){
-        uint_t win_s    = 1024; /* window size                       */
-        uint_t hop_s    = 256;  /* hop size                          */
-        /* allocate some memory */
-        fvec_t * in       = new_fvec (hop_s); /* input buffer       */
-        cvec_t * fftgrain = new_cvec (win_s); /* fft norm and phase */
-        fvec_t * out      = new_fvec (hop_s); /* output buffer      */
-        /* allocate fft and other memory space */
-        aubio_pvoc_t * pv = new_aubio_pvoc(win_s,hop_s);
-        /* fill input with some data */
-        printf("initialised\n");
-        /* execute stft */
-        aubio_pvoc_do (pv,in,fftgrain);
-        printf("computed forward\n");
-        /* execute inverse fourier transform */
-        aubio_pvoc_rdo(pv,fftgrain,out);
-        printf("computed backard\n");
-        del_aubio_pvoc(pv);
-        del_fvec(in);
-        del_cvec(fftgrain);
-        del_fvec(out);
-        aubio_cleanup();
-        printf("memory freed\n");
-        return 0;
+int main ()
+{
+  uint_t n = 6; // compute n times
+  uint_t win_s = 32; // window size
+  uint_t hop_s = win_s / 4; // hop size
+
+  fvec_t * in = new_fvec (hop_s); // input buffer
+  cvec_t * fftgrain = new_cvec (win_s); // fft norm and phase
+  fvec_t * out = new_fvec (hop_s); // output buffer
+
+  // allocate fft and other memory space
+  aubio_pvoc_t * pv = new_aubio_pvoc(win_s,hop_s);
+
+  // fill input with some data
+  fvec_set (in, 1.);
+  fvec_print (in);
+
+  while ( n-- ) {
+    // get some fresh input data
+    // ..
+
+    // execute phase vocoder
+    aubio_pvoc_do (pv,in,fftgrain);
+
+    // do something with fftgrain
+    // ...
+    cvec_print (fftgrain);
+
+    // optionnaly rebuild the signa
+    aubio_pvoc_rdo(pv,fftgrain,out);
+
+    // and do something with the result
+    // ...
+    fvec_print (out);
+  }
+
+  // clean up
+  del_fvec(in);
+  del_cvec(fftgrain);
+  del_fvec(out);
+  del_aubio_pvoc(pv);
+  aubio_cleanup();
+
+  return 0;
 }
Index: tests/src/spectral/test-specdesc.c
===================================================================
--- tests/src/spectral/test-specdesc.c	(revision 8f68dfbce6a384264ae9121a30aa359fc7c0fcd8)
+++ tests/src/spectral/test-specdesc.c	(revision 6938a20076f6383268da0641675124f6cdff5411)
@@ -1,16 +1,12 @@
-
-#define AUBIO_UNSTABLE 1
-
 #include <aubio.h>
 
-int
-main ()
+int main ()
 {
-  uint_t win_s = 1024;          /* window size */
-  cvec_t *in = new_cvec (win_s);      /* input buffer */
-  fvec_t *out = new_fvec (1); /* input buffer */
+  uint_t win_s = 1024; // window size
+  cvec_t *in = new_cvec (win_s); // input buffer
+  fvec_t *out = new_fvec (1); // output spectral descriptor
 
   aubio_specdesc_t *o;
-  
+
   o = new_aubio_specdesc ("energy", win_s);
   aubio_specdesc_do (o, in, out);
Index: tests/src/spectral/test-tss.c
===================================================================
--- tests/src/spectral/test-tss.c	(revision 8f68dfbce6a384264ae9121a30aa359fc7c0fcd8)
+++ tests/src/spectral/test-tss.c	(revision 6938a20076f6383268da0641675124f6cdff5411)
@@ -1,40 +1,36 @@
-/* test sample for phase vocoder 
- *
- * this program should start correctly using JACK_START_SERVER=true and
- * reconstruct each audio input frame perfectly on the corresponding input with
- * a delay equal to the window size, hop_s.
- */
-
-#include <stdio.h>
-#define AUBIO_UNSTABLE 1
 #include <aubio.h>
 
-int main(){
-  int i;
-  uint_t win_s    = 1024; /* window size                       */
-  uint_t hop_s    = 256;  /* hop size                          */
+int main ()
+{
+  uint_t n = 10; // compute n times
+  uint_t win_s = 1024; // window size
+  uint_t hop_s = 256;  // hop size
 
-  /* allocate some memory */
-  fvec_t * in       = new_fvec (hop_s); /* input buffer       */
-  cvec_t * fftgrain = new_cvec (win_s); /* fft norm and phase */
-  cvec_t * cstead   = new_cvec (win_s); /* fft norm and phase */
-  cvec_t * ctrans   = new_cvec (win_s); /* fft norm and phase */
-  fvec_t * stead    = new_fvec (hop_s); /* output buffer      */
-  fvec_t * trans    = new_fvec (hop_s); /* output buffer      */
-  /* allocate phase vocoders and transient steady-state separation */
+  // create some vectors
+  fvec_t * in       = new_fvec (hop_s); // input buffer
+  cvec_t * fftgrain = new_cvec (win_s); // fft norm and phase
+  cvec_t * cstead   = new_cvec (win_s); // fft norm and phase
+  cvec_t * ctrans   = new_cvec (win_s); // fft norm and phase
+  fvec_t * stead    = new_fvec (hop_s); // output buffer
+  fvec_t * trans    = new_fvec (hop_s); // output buffer
+
+  // create phase vocoder for analysis of input signal 
   aubio_pvoc_t * pv = new_aubio_pvoc (win_s,hop_s);
+  // create transient/steady-state separation object
+  aubio_tss_t *  tss = new_aubio_tss(win_s,hop_s);
+  // create phase vocoder objects for synthesis of output signals
   aubio_pvoc_t * pvt = new_aubio_pvoc(win_s,hop_s);
   aubio_pvoc_t * pvs = new_aubio_pvoc(win_s,hop_s);
-  aubio_tss_t *  tss = new_aubio_tss(win_s,hop_s);
-
-  /* fill input with some data */
-  printf("initialised\n");
 
   /* execute stft */
-  for (i = 0; i < 10; i++) {
-    aubio_pvoc_do (pv,in,fftgrain);
-    aubio_tss_do  (tss,fftgrain,ctrans,cstead);
-    aubio_pvoc_rdo(pvt,cstead,stead);
-    aubio_pvoc_rdo(pvs,ctrans,trans);
+  while ( n-- ) {
+    // fftgrain = pv(in)
+    aubio_pvoc_do (pv, in, fftgrain);
+    // ctrans, cstead = tss (fftgrain)
+    aubio_tss_do (tss, fftgrain, ctrans, cstead);
+    // stead = pvt_inverse (cstead)
+    // trans = pvt_inverse (ctrans)
+    aubio_pvoc_rdo (pvt, cstead, stead);
+    aubio_pvoc_rdo (pvs, ctrans, trans);
   }
 
@@ -50,6 +46,7 @@
   del_fvec(stead);
   del_fvec(trans);
+
   aubio_cleanup();
-  printf("memory freed\n");
+
   return 0;
 }
