Шаг не совпадает с бином частоты пиковой величины БПФ.Пек является человеческим психоакустическим явлением.Звук основного тона может иметь отсутствующий или очень слабый фундаментальный (часто встречающийся в некоторых звуках голоса, пианино и гитары) и / или множество мощных обертонов в своем спектре, которые подавляют частоту основного тона (но все же могут быть услышаны человеком как нота основного тона),Таким образом, любой детектор пиковой частоты БПФ (даже с некоторыми окнами и интерполяцией, чего нет в вашем коде) не будет надежным методом оценки музыкального тона.FFT также будет квантовать частоту до некоторого разрешения бина (возможно, более грубого, чем ваши требования), которое зависит от длины FFT (или окна).
Ответ на этот стекопоток вопрос включает списокнекоторые альтернативные методы оценки высоты тона, которые могут привести к лучшим результатам.