/// <summary>Attachs a filter, altering how the instance sounds when played.</summary> /// <param name="type">The type of filter to be applied.</param> /// <param name="Fc">The cutoff/centre frequency to operate at.</param> /// <param name="FcPercent">The inital percentage of the frequency to apply.</param> /// <param name="Q">The quality factor to operate at.</param> /// <param name="QPercent">The initial percentage of the quality factor to apply.</param> public void EnableFilter(FilterType type, double Fc, double FcPercent, double Q, double QPercent) { this.filterFrequency = Fc; this.qFactor = Q; this.FrequencyPercentage = FcPercent; this.QPercentage = QPercent; switch (type) { case FilterType.LowPass: this.Filter = new LowpassFilter(this.Reader.SampleRate, Fc, Q); break; case FilterType.HighPass: this.Filter = new HighpassFilter(this.Reader.SampleRate, Fc, Q); break; case FilterType.Bandpass: this.Filter = new BandpassFilter(this.Reader.SampleRate, Fc, Q); break; default: throw new Exception("Invalid Filter Type"); } return; }
/// <summary>Removes the filter, if applicable.</summary> public void DisableFilter() { this.Filter = null; return; }