I think there's a small bug in this. relevant code: public double[ GenerateFrequencyScale(double sampleRate, int numberOfSamplePairs) { double[ scale = new double[numberOfSamplePairs]; double f = 0, step = sampleRate / numberOfSamplePairs; int secondHalf = (numberOfSamplePairs >> 1) + 1; for...