Пример #1
0
		/// <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;
		}
Пример #2
0
		/// <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;
		}
Пример #3
0
		public Amplifier(double level, Sound sound)
		{
			this.level = level;
			this.sound = sound;
		}
Пример #4
0
		/// <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)
		{
		}
Пример #5
0
		/// <summary>
		/// エンベロープパラメータと元となる Sound を指定して生成。
		/// </summary>
		/// <param name="sound">元となる音</param>
		public Envelope(EnvelopeParameter parameter, Sound sound)
		{
			CheckParameter(parameter, sound.Length);
			this.parameter = parameter;
			this.sound = sound;
		}
Пример #6
0
		/// <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)
		{
		}
Пример #7
0
		/// <summary>
		/// sound を iteration 回繰り返す音を作る。
		/// </summary>
		/// <param name="iteration">反復回数</param>
		/// <param name="sound">原音</param>
		public PeriodicSound(int iteration, Sound sound)
		{
			this.iteration = iteration;
			this.sound = sound;
		}
Пример #8
0
		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;
		}
Пример #9
0
		/// <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)
		{
		}