I'm sorry if pitch detection has become a stale topic here, but I'm really interested if anyone has any advice on this topic. I'm looking for the best pitch detection algorithm for stringed instruments, but I think this question will turn into "What else needs to be done to most accurately and reliably detect a pitch of a stringed instrument?".
So basically I applied all algorithms from here and they all differ, but they all have one thing in common, on any device I try, the algorithm reports -1 Hz after around a second of a string on an instrument being played.
Basically the magnitude needs to be really high in order for the algorithm to detect anything. Now, obviously it's nothing on my part since I literally just copied the exact code and got those results. So there are obviously methods of still detecting a pitch in low magnitudes ( other applications, not sure what they use, can detect the pitch in the same situation for around 4-5 seconds which is a lot longer then these algorithms ), but I'm not sure what they are. I'm not even talking about the fundamental being weak here, since the algorithm detects nothing.
Am I missing something, or is it the more likely option that something else needs to be done other than just applying a PDA to a sound buffer and if so, what is/are those things?