// should use binary search! sclass AudioFrequencyDetectorSpike1 { AudioRecognizer recognizer; int vibrations = 24; // how many periods to look at double centerFreq = 440, step = 1; int freqs = 25; // how many frequencies to look at IF1 f = freq2 -> div(abs(recognizer.complexSumOfVibrations_raw(recognizer.mainSample, 0, 0, freq2, vibrations)), 32768); // returns most likely frequency double get() { new Best bestFreq; for (int iF : countIterator(-freqs/2, freqs/2)) { double freq2 = centerFreq+step*iF; double value = f.get(freq2); //print(freq2 + ": " + value); bestFreq.put(freq2, value); } ret bestFreq!; } }