public void Reset() { value = 0; if (delayTime > 0) { phase = delayTime; lfoState = LfoStateEnum.Delay; } else { phase = generator.LoopStartPhase; lfoState = LfoStateEnum.Sustain; } }
public void Reset() { value = 0; if (delayTime > 0) { phase = delayTime; lfoState = LfoStateEnum.Delay; } else { phase = 0.0; lfoState = LfoStateEnum.Sustain; } }
public void Increment(int amount) { if (lfoState == LfoStateEnum.Delay) { phase -= amount; if (phase <= 0.0) { phase = generator.LoopStartPhase + increment * -phase; value = generator.GetValue(phase); lfoState = LfoStateEnum.Sustain; } } else { phase += increment * amount; if (phase >= generator.LoopEndPhase) phase = generator.LoopStartPhase + (phase - generator.LoopEndPhase) % (generator.LoopEndPhase - generator.LoopStartPhase); value = generator.GetValue(phase); } }
public void Increment(int amount) { if (lfoState == LfoStateEnum.Delay) { phase -= amount; if (phase <= 0.0) { phase = generator.LoopStartPhase + increment * -phase; value = generator.GetValue(phase); lfoState = LfoStateEnum.Sustain; } } else { phase += increment * amount; if (phase >= generator.LoopEndPhase) { phase = generator.LoopStartPhase + (phase - generator.LoopEndPhase) % (generator.LoopEndPhase - generator.LoopStartPhase); } value = generator.GetValue(phase); } }
public double GetNext() { if (lfoState == LfoStateEnum.Delay) { phase--; if (phase <= 0.0) { phase = generator.LoopStartPhase; lfoState = LfoStateEnum.Sustain; } return(0.0); } else { phase += increment; if (phase >= generator.LoopEndPhase) { phase = generator.LoopStartPhase + (phase - generator.LoopEndPhase) % (generator.LoopEndPhase - generator.LoopStartPhase); } return(generator.GetValue(phase)); } }