OK, It’s my thread but I see there are a lot of talk behind me
So I need to clean up some things:
All of what you are talking about is very interesting for me. But to be honest I am stupid (still) and most of those things I don’t understand. It’s a shame but I don’t even have an idea what is FIR, and other strange filters shortcuts. Of course I am going to learn all of that. But as a beginner I thought it’s good to first understand the most difficult process, and then all the rest like filter will be very easy to understand. And to be honest I’ve tried to understand Fourier transform from about year. I created my own implementation of DFT, FFT radix-2, FFT mixed radix with option to change the divider of radix. Even I created some strange FFT algorithm (that I think is my own invention, but probably I am wrong) that allows me to choose range of frequencies that I want to calculate, without need to calculate the freq out of range, but preparing (like reindexing) works so slow that, even though FFT is very fast, but changing frequency range is so slow that it’s impossible to change freq range in the real time.
OK but even I made all of that I am still even not sure what is the purpose to use Fourier transform I think the only reasonable purpose is to make frequency analyser. Also I can imagine it could be handy in designing some filters curve, but I just imagine that, not sure how to do that. Maybe anyone could enlighten me, for what the hell we need all that FFT?
Ok, next thing what I am exactly do now with my FFT algorithms? Why I want to synchronise the phase between neighbour buffers? I feel stupid to say that, but only for testing my FFT algorithms, and YES I want to make real time filtering by sending signal to forward FFT, then set some freq bins to zero, and then back to inverse FFT. I know it will not give me good sounding results, but I just do it for testing, for fun. For example to see (hear) the difference between radix 2 FFT and mixed Radix.
For example if I set FFT buffer size equal to any standard sample rate, for example 44100Hz, then for making radix 2 FFT I need to cut some part of that buffer, or make it bigger and missed samples fill with zero padding. But with mixed radix FFT I can use all possible samples from 44100 so I can calculate perfectly each one freq bin, and it’s impressing for me, but it only looks nice on freq analyser graph. But I want to hear how zerro padding or cutting the buffer impact on the sound.
And finally what I want to do works, but I have problem with connecting each buffer block together. That’s why with FFT buff size 41000 I hear signal perfectly only in one second periods. But each buffer block not fit to the one before, so it’s disgusting. It happens also if I use mixed radix FFT which use and calculate each possible sample. Even I send to FFT simply sinusoid signal, there are some artifacts/cutting on the connections of each buffer.
Maybe somebody just could tell me something that would satisfy me with understading Fourier Transform that I could leave that topic and try to learn something new, like filters or other interesting things. My main purpose is just to learn programming and understanding audio process that I could send my CV to some nice job offer as a programmer in some around DSP industry because it’s something that I like very much.