I made a program that can change pitch of a recorded audio clip while maintaining its duration. Basically, it takes the FFT of windowed segments of a recorded signal, processes them using phases to find frequency values, synthesizes the modified FFT values, then runs an IFFT on the windows. The issue is that the modified audio has a "buzzing" artifact over it. The audio sounds fine besides that. However, I cannot figure out where this buzzing noise is coming from. Here's the program, I tried to give as thorough as possible instructions in the README file if you want to run the program to see what I mean:
But in general, is there a reason why a buzzing artifact happens? Would it be a windowing issue? An issue with the FFT algorithm? All help is greatly appreciated!