protected virtual WaveFunction Join(WaveFunction wave) { return(new WaveFunction( x => wave[this[x]], wave[this.Amplitude] )); }
protected virtual WaveFunction Combine(Func <double, double> func, WaveFunction wave, double amplitude) { return(new WaveFunction( func, amplitude )); }
public void PlayWave(WaveFunction wave, int duration) { PlayWave(new Wave(1, duration) { Type = wave }); }
protected override WaveFunction Join(WaveFunction wave) { if (wave is PeriodicWave) { return(new PeriodicWave( x => wave[this[x]], wave[this.Amplitude] )); } else { return(base.Join(wave)); } }
protected override WaveFunction Combine(Func <double, double> func, WaveFunction wave, double amplitude) { if (wave == null || wave is PeriodicWave) { return(new PeriodicWave( func, amplitude )); } else { return(base.Combine(func, wave, amplitude)); } }
public static WaveFunction Noise(WaveFunction coef) { Random rnd = new Random(); return(new WaveFunction(x => (rnd.NextDouble() * 2 - 1) * coef[x], coef.Amplitude)); }
public Wave(double frequency, double duration, WaveFunction type) : this(frequency, duration) { Type = type; }