I'm trying a program that outputs the bass line that you are playing. I have some arrays from a big one with the sound in time domain, that are splited (Hann window). Later, I do the FFT, then I get the peak of each array and apply the harmonic product spectrum algorithm.
Finally, I'm trying to filter all frequencies bellow 39hz and above 440hz, that include all frec. in the bass in E standart. I've tried to eliminate the noise.
I want to distinguish my FFT output when I play my instrument, from when I don't, taking advantage of the frequency filter, I have made the program assume that when it plays a note that is less than 39hz, it automatically takes it as noise. The problem appears when the noise is greater than 39hz (it can be from 0hz to 60hz even) and many of the notes I play on the bass are below 60hz, so with this system I cannot know when I make sound because I'am playing, and when the predominant sound is noise and I'm not playing.
So I need to know how to interpret the FFT output to know when I actually play and when I don't.
The FFT output is the energy (I think) of each frequency in the sound wave, and I have tried to eliminate all FFT outputs below 0.5 (The output is normalized from -1 as minimum value to 1 as maximum value of amplitude in the spectrogram), so I really don't know if this works.
Could anyone to tell me how to identify when I play and when I don't?