/// <summary> /// うなりのパラメータと元となる Sound を指定して生成。 /// </summary> /// <param name="parameter">うなりのパラメータ</param> /// <param name="sound">元となる音</param> public Tremolo(TremoloParameter parameter, Sound sound) { if(sound.Length < parameter.delay) throw new ArgumentException("音が短すぎ"); this.parameter = parameter; this.sound = sound; }
/// <summary> /// ビブラートパラメータと元となる Sound を指定して生成。 /// </summary> /// <param name="parameter">ビブラートパラメータ</param> /// <param name="sound">元となる音</param> public Vibrato(VibratoParameter parameter, Sound sound) { if(sound.Length < parameter.delay) throw new ArgumentException("音が短すぎ"); this.parameter = parameter; this.sound = sound; this.delay = new FractionalDelay(2 * parameter.depth); this.delay.DelayTime = parameter.depth; }
public Amplifier(double level, Sound sound) { this.level = level; this.sound = sound; }
/// <summary> /// うなりパラメータと元となる Sound を指定して生成。 /// </summary> /// <param name="rate">うなりの周波数(正規化角周波数)</param> /// <param name="depth">うなりの深さ(0〜1)</param> /// <param name="delay">うなりがかかり始める時間(ステップ数)</param> /// <param name="sound">元となる音</param> public Tremolo(double rate, double depth, int delay, Sound sound) : this(new TremoloParameter(rate, depth, delay), sound) { }
/// <summary> /// エンベロープパラメータと元となる Sound を指定して生成。 /// </summary> /// <param name="sound">元となる音</param> public Envelope(EnvelopeParameter parameter, Sound sound) { CheckParameter(parameter, sound.Length); this.parameter = parameter; this.sound = sound; }
/// <summary> /// エンベロープパラメータと元となる Sound を指定して生成。 /// </summary> /// <param name="al">アタックレベル(sound の振幅との相対値)</param> /// <param name="sl">サステインレベル(sound の振幅との相対値)</param> /// <param name="at">アタックタイム(ステップ数)</param> /// <param name="dt">リリースタイム(ステップ数)</param> /// <param name="rt">リリースタイム(ステップ数)</param> /// <param name="sound">元となる音</param> public Envelope(double al, double sl, int at, int dt, int rt, Sound sound) : this(new EnvelopeParameter(al, sl, at, dt, rt), sound) { }
/// <summary> /// sound を iteration 回繰り返す音を作る。 /// </summary> /// <param name="iteration">反復回数</param> /// <param name="sound">原音</param> public PeriodicSound(int iteration, Sound sound) { this.iteration = iteration; this.sound = sound; }
int delay; // filter の遅延時間 /// <summary> /// 元となる Sound、フィルタ、フィルタの遅延時間を指定して生成。 /// </summary> /// <param name="sound">元となる音</param> /// <param name="filter">フィルタ</param> /// <param name="delay">filter の遅延時間</param> public SoundWithFilter(Sound sound, IFilter filter, int delay) { this.sound = sound; this.filter = filter; this.delay = delay; }
/// <summary> /// ビブラートパラメータと元となる Sound を指定して生成。 /// </summary> /// <param name="rate">ビブラートレート(正規化角周波数)</param> /// <param name="depth">ビブラートデプス(0〜1)</param> /// <param name="delay">ビブラートディレイ(ステップ数)</param> /// <param name="sound">元となる音</param> public Vibrato(double rate, int depth, int delay, Sound sound) : this(new VibratoParameter(rate, depth, delay), sound) { }