Ejemplo n.º 1
0
  public double tick(double input) {
    lastOutput_ = delayLine_.tick(input + loopFilter_.tick(delayLine_.lastOut()));
    lastOutput_ -= combDelay_.tick(lastOutput_); // comb filtering on output
    lastOutput_ *= 0.5;

    return lastOutput_;
  }
Ejemplo n.º 2
0
  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);
  }
Ejemplo n.º 3
0
 public void setLowestFrequency(double frequency) {
   long nDelays = (long) (StaticVariables.SampleRate / frequency);
   delayLine_.setMaximumDelay(nDelays + 1);
   combDelay_.setMaximumDelay(nDelays + 1);
 }