Changes in tests/src/spectral/test-tss.c [6938a20:9d6001cb]
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
tests/src/spectral/test-tss.c
r6938a20 r9d6001cb 1 /* test sample for phase vocoder 2 * 3 * this program should start correctly using JACK_START_SERVER=true and 4 * reconstruct each audio input frame perfectly on the corresponding input with 5 * a delay equal to the window size, hop_s. 6 */ 7 8 #include <stdio.h> 9 #define AUBIO_UNSTABLE 1 1 10 #include <aubio.h> 2 11 3 int main () 4 { 5 uint_t n = 10; // compute n times 6 uint_t win_s = 1024; // window size 7 uint_t hop_s = 256; // hop size 12 int main(){ 13 int i; 14 uint_t win_s = 1024; /* window size */ 15 uint_t hop_s = 256; /* hop size */ 8 16 9 // create some vectors 10 fvec_t * in = new_fvec (hop_s); // input buffer 11 cvec_t * fftgrain = new_cvec (win_s); // fft norm and phase 12 cvec_t * cstead = new_cvec (win_s); // fft norm and phase 13 cvec_t * ctrans = new_cvec (win_s); // fft norm and phase 14 fvec_t * stead = new_fvec (hop_s); // output buffer 15 fvec_t * trans = new_fvec (hop_s); // output buffer 16 17 // create phase vocoder for analysis of input signal 17 /* allocate some memory */ 18 fvec_t * in = new_fvec (hop_s); /* input buffer */ 19 cvec_t * fftgrain = new_cvec (win_s); /* fft norm and phase */ 20 cvec_t * cstead = new_cvec (win_s); /* fft norm and phase */ 21 cvec_t * ctrans = new_cvec (win_s); /* fft norm and phase */ 22 fvec_t * stead = new_fvec (hop_s); /* output buffer */ 23 fvec_t * trans = new_fvec (hop_s); /* output buffer */ 24 /* allocate phase vocoders and transient steady-state separation */ 18 25 aubio_pvoc_t * pv = new_aubio_pvoc (win_s,hop_s); 19 // create transient/steady-state separation object20 aubio_tss_t * tss = new_aubio_tss(win_s,hop_s);21 // create phase vocoder objects for synthesis of output signals22 26 aubio_pvoc_t * pvt = new_aubio_pvoc(win_s,hop_s); 23 27 aubio_pvoc_t * pvs = new_aubio_pvoc(win_s,hop_s); 28 aubio_tss_t * tss = new_aubio_tss(win_s,hop_s); 29 30 /* fill input with some data */ 31 printf("initialised\n"); 24 32 25 33 /* execute stft */ 26 while ( n-- ) { 27 // fftgrain = pv(in) 28 aubio_pvoc_do (pv, in, fftgrain); 29 // ctrans, cstead = tss (fftgrain) 30 aubio_tss_do (tss, fftgrain, ctrans, cstead); 31 // stead = pvt_inverse (cstead) 32 // trans = pvt_inverse (ctrans) 33 aubio_pvoc_rdo (pvt, cstead, stead); 34 aubio_pvoc_rdo (pvs, ctrans, trans); 34 for (i = 0; i < 10; i++) { 35 aubio_pvoc_do (pv,in,fftgrain); 36 aubio_tss_do (tss,fftgrain,ctrans,cstead); 37 aubio_pvoc_rdo(pvt,cstead,stead); 38 aubio_pvoc_rdo(pvs,ctrans,trans); 35 39 } 36 40 … … 46 50 del_fvec(stead); 47 51 del_fvec(trans); 48 49 52 aubio_cleanup(); 50 53 printf("memory freed\n"); 51 54 return 0; 52 55 }
Note: See TracChangeset
for help on using the changeset viewer.