public double this[int i] { get { double x = 0; for (int k = 0; k < this.parameters.Length; ++k) { PolarParameter parameter = this.parameters[k]; x += parameter.amplitude * Math.Sin(this.frequency * k * i + parameter.phase); } return(x); } }
/// <summary> /// 振幅、周波数、初期位相を指定して初期化。 /// </summary> /// <param name="length">音の長さ(サンプル数)</param> /// <param name="freq">周波数(正規化角周波数)</param> /// <param name="parameter">振幅と初期位相</param> public PureTone(int length, double freq, PolarParameter parameter) : this(length, freq, parameter.amplitude, parameter.phase) { }