/** Test for phase vocoder in jack * * This program should start correctly, when jackd is started or when * using JACK_START_SERVER=true and reconstruct each audio input channel * on the corresponding output channel with some strange effects and a * delay equal to the hop size (hop_s). * */ #include #include /* sleep() */ #include #ifdef HAVE_JACK #include "jackio.h" #endif /* HAVE_JACK */ 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 */ fvec_t * in[2]; cvec_t * fftgrain[2]; fvec_t * out[2]; aubio_pvoc_t * pv[2]; int aubio_process(float **input, float **output, int nframes); int main(){ /* allocate some memory */ uint_t i; for (i=0;ilength;i++) fftgrain[0]->phas[i] = 0.; // double phases of second channel for (i=0;ilength;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; } } pos++; } return 0; }