public void setFrequency(double frequency) { frequency_ = frequency; // Delay = length - filter delay. double delay = (StaticVariables.SampleRate / frequency) - loopFilter_.phaseDelay(frequency); delayLine_.setDelay(delay); this.setLoopGain(loopGain_); // Set the pluck position, which puts zeroes at position * length. combDelay_.setDelay(0.5 * pluckPosition_ * delay); }