X-Git-Url: https://git.sesse.net/?p=pitch;a=blobdiff_plain;f=pitch.cpp;h=8aff1485a1e9e44091263aef52b7195cf12479e2;hp=97238f5f05b1a99113837029199f44434b1f220e;hb=19a95dfd3794695d80fe9eae0ba777def80dc3fc;hpb=f4906bf100acb8c5875196b7c2306effdd6a091d diff --git a/pitch.cpp b/pitch.cpp index 97238f5..8aff148 100644 --- a/pitch.cpp +++ b/pitch.cpp @@ -46,7 +46,7 @@ int main() in = reinterpret_cast (fftw_malloc(sizeof(double) * FFT_LENGTH / PAD_FACTOR)); in_windowed = reinterpret_cast (fftw_malloc(sizeof(double) * FFT_LENGTH)); out = reinterpret_cast *> (fftw_malloc(sizeof(std::complex) * (FFT_LENGTH / 2 + 1))); - bins = reinterpret_cast (fftw_malloc(sizeof(double) * FFT_LENGTH / 2 + 1)); + bins = reinterpret_cast (fftw_malloc(sizeof(double) * (FFT_LENGTH / 2 + 1))); memset(in, 0, sizeof(double) * FFT_LENGTH / PAD_FACTOR); @@ -60,7 +60,8 @@ int main() fftw_execute(p); find_peak_magnitudes(out, bins, FFT_LENGTH); std::pair peak = find_peak(bins, FFT_LENGTH); - peak = adjust_for_overtones(peak, bins, FFT_LENGTH); + if (peak.first > 0.0) + peak = adjust_for_overtones(peak, bins, FFT_LENGTH); if (peak.first < 50.0 || peak.second - log10(FFT_LENGTH) < 0.0) { #if TUNING == WELL_TEMPERED_GUITAR