I'm new to DSP in general and am just a hobbiest when it comes to building with Bela.
I followed the Phase Vocoder Pitch Shifting tutorials from the YouTube channel (which are excellent by the way) and have managed to complete the exercise successfully.
I've removed the mono player libs and audio file from the project and am sampling directly from the audio input. Things start to fall apart a bit when I try and make it stereo though. I believe I have to have two circular buffers and two read and write pointers as I'm going to be applying transformations to each channel independently. So far so good but with 85% CPU usage. When I actually go to change the pitch and audio output gets tinny and sort of rings like a bell. I've tried messing with the FFT and hop size values with very little success.
Is there a currently accepted method of doing it, perhaps with a more efficient algorithm, or have I reached the capabilities of the hardware slash my understanding?
Here's a link to a gist with the render.cpp
contents:
If you run it and open the GUI and pitch it up to about 6 you'll see what I mean. Obviously you'll need an audio in and out as well.