//returns the minimum count of samples for looping //to avoid glitches public float GetSampleCountForLooping() { var SampleForLoopCount = AudioHelpers.PPCM(Oscillators.Select(o => (int)(SampleRate / (o.Frequency * o.FrequencyRatio))).ToArray()); return(SampleForLoopCount);// *(float)Math.Pow(2, MathUtils.ppcm(Oscillators.Select(o => o.Pitch + 1).ToArray()) / 12); }