/// <summary> /// パラメータの正当性をチェック。 /// </summary> /// <param name="parameter">パラメータ</param> /// <param name="length">音の長さ</param> static void CheckParameter(EnvelopeParameter parameter, int length) { if(parameter.attackTime < 0) throw new ArgumentException("アタックタイムが負"); if(parameter.decayTime < 0) throw new ArgumentException("ディケイタイムが負"); if(parameter.releaseTime < 0) throw new ArgumentException("リリースタイムが負"); if(parameter.attackTime + parameter.decayTime + parameter.releaseTime > length) throw new ArgumentException("音が短すぎ"); }
/// <summary> /// パラメータの正当性をチェック。 /// </summary> /// <param name="parameter">パラメータ</param> /// <param name="length">音の長さ</param> static void CheckParameter(EnvelopeParameter parameter, int length) { if (parameter.attackTime < 0) { throw new ArgumentException("アタックタイムが負"); } if (parameter.decayTime < 0) { throw new ArgumentException("ディケイタイムが負"); } if (parameter.releaseTime < 0) { throw new ArgumentException("リリースタイムが負"); } if (parameter.attackTime + parameter.decayTime + parameter.releaseTime > length) { throw new ArgumentException("音が短すぎ"); } }
/// <summary> /// エンベロープパラメータと元となる Sound を指定して生成。 /// </summary> /// <param name="sound">元となる音</param> public Envelope(EnvelopeParameter parameter, Sound sound) { CheckParameter(parameter, sound.Length); this.parameter = parameter; this.sound = sound; }