/** 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; }