For example, when playing piano, at the same time, print out the key notes by analyzing the signal of piano sound.
How to do some pre-processing to remove the noise? When calculate with FFT, noise will influence the result?
For example, when playing piano, at the same time, print out the key notes by analyzing the signal of piano sound.
How to do some pre-processing to remove the noise? When calculate with FFT, noise will influence the result?
There is no easy answer to that question. Plenty of algorithms exists which are suitable to that task. Nowadays Non-negative Matrix Factorisation (NMF) is getting more and more popular in this field of research. If you have enough of resources and knowledge then you can try it. It's just a 'fancy' SVD decomposition with some 'constraints and tweaks'.
Some literature for you that might be useful in terms of choosing the approach. First one contains some vast overview of the problem as well as lot's of references:
Benetos E., et al. - Automatic music transcription: challenges and future directions
Benetos E., et al. - Automatic Transcription of Pitched and Unpitched Sounds from Polyphonic Music
Benetos E. - Automatic Transcription of Polyphonic Music Exploiting Temporal Evolution - PhD Thesis
O'Hanlon K., Plumbley M. - Automatic Music Transcription using Row Weighted Decompositions
Pitch detection/estimation is different from FFT peak frequency estimation. The "noise" you may be seeing in the FFT result could instead be harmonic components of the spectral structure of the pitched note, thus should not be filtered out, as they may be important to creating the perception of pitch.
Try a pitch detection or estimation algorithm instead of a peak frequency estimator.