public override double GenerateValue() { StartPhase += 2.0 * Math.PI * Frequence * (1.0 + (FM?.GenerateValue() ?? 0.0)) / ValuesCount; double cycle = 2.0 * Math.PI; return((StartPhase % cycle) / cycle > PulseTime ? 0.0 : Amplitude); }
public override double GenerateValue() { StartPhase += Math.PI * Frequence * (1.0 + (FM?.GenerateValue() ?? 0.0)) / ValuesCount; return(-2 * Amplitude / Math.PI * Math.Atan(1.0 / Math.Tan(StartPhase))); }
public override double GenerateValue() { StartPhase += 2.0 * Math.PI * Frequence * (1.0 + (FM?.GenerateValue() ?? 0.0)) / ValuesCount; return(2.0 * Amplitude / Math.PI * Math.Asin(Math.Sin(StartPhase))); }