AcoustID.Chromaprint.Spectrum.PrepareBands C# (CSharp) Метод

PrepareBands() приватный Метод

private PrepareBands ( int num_bands, int min_freq, int max_freq, int frame_size, int sample_rate ) : void
num_bands int
min_freq int
max_freq int
frame_size int
sample_rate int
Результат void
        private void PrepareBands(int num_bands, int min_freq, int max_freq, int frame_size, int sample_rate)
        {
            double min_bark = Helper.FreqToBark(min_freq);
            double max_bark = Helper.FreqToBark(max_freq);
            double band_size = (max_bark - min_bark) / num_bands;

            int min_index = Helper.FreqToIndex(min_freq, frame_size, sample_rate);
            //int max_index = FreqToIndex(max_freq, frame_size, sample_rate);

            m_bands[0] = min_index;
            double prev_bark = min_bark;

            for (int i = min_index, b = 0; i < frame_size / 2; i++)
            {
                double freq = Helper.IndexToFreq(i, frame_size, sample_rate);
                double bark = Helper.FreqToBark(freq);
                if (bark - prev_bark > band_size)
                {
                    b += 1;
                    prev_bark = bark;
                    m_bands[b] = i;
                    if (b >= num_bands)
                    {
                        break;
                    }
                }
            }
        }
    }