This Week’s Accomplishments:
This week, I finished the delay and sequencer, and I have nearly finished the real-time pitch shifter, with the exception of some debugging and edge-case testing.
As it turns out, using statically allocated memory is a lot easier than dynamic memory. Using pre-allocated memory buffers for storing the data is easier to implement, and it doesn’t take as many resources to run. With latency being such a concern, trading off space in favor of time is an easy decision. With window length down to 512 (instead of 2048), that also cuts our memory usage for the pitch-shifter. Nevertheless, with so much extra memory, this is not an issue.
After some debugging, the pitch-shifter does not segmentation fault anymore. Still, the output doesn’t match what it should be – I will check for implementation mistakes, testing with simple signals and moving on to actual guitar audio is going to help.
We will be finishing tomorrow. We are almost there!