/// <summary> /// Инициализирует новый экземпляр класса. /// </summary> /// <param name = "enable"> /// Состояние вкл / выкл. /// </param> /// <param name = "volume"> /// Процентная громкость [0; 150] %. /// </param> /// <param name = "frequency"> /// Частота [1; 100] Гц. /// </param> /// <param name = "amplitude"> /// Амплитуда [1; 100] м. /// </param> /// <param name = "shape"> /// Волноформа. /// </param> /// <exception cref = "SynthesisException"></exception> public Oscillator(Boolean enable, Int32 volume, Int32 frequency, Int32 amplitude, Waveshape shape) { if (volume < 0 || volume > 150 || frequency < 1 || frequency > 100 || amplitude < 1 || amplitude > 100) { throw new SynthesisException("Нарушены границы допустимого значения."); } this.enable = enable; this.volume = volume; this.frequency = frequency; this.amplitude = amplitude; this.shape = shape; }
public WaterGenerator(byte[] options, bool applyFixes = false) { this.waveshape = (Waveshape)options[0]; this.watercolor = (Watercolor)options[1]; this.reflection = (Reflection)options[2]; this.refraction = (Refraction)options[3]; this.bankalpha = (Bankalpha)options[4]; this.appearance = (Appearance)options[5]; this.global_shape = (Global_Shape)options[6]; this.foam = (Foam)options[7]; this.reach_compatibility = options.Length > 8 ? (Reach_Compatibility)options[8] : Reach_Compatibility.Disabled; ApplyFixes = applyFixes; TemplateGenerationValid = true; }
public WaterGenerator(Waveshape waveshape, Watercolor watercolor, Reflection reflection, Refraction refraction, Bankalpha bankalpha, Appearance appearance, Global_Shape global_shape, Foam foam, Reach_Compatibility reach_compatibility, bool applyFixes = false) { this.waveshape = waveshape; this.watercolor = watercolor; this.reflection = reflection; this.refraction = refraction; this.bankalpha = bankalpha; this.appearance = appearance; this.global_shape = global_shape; this.foam = foam; this.reach_compatibility = reach_compatibility; ApplyFixes = applyFixes; TemplateGenerationValid = true; }
/// <summary> /// Emulates a reduced sample rate of the LFO /// </summary> /// <param name="samples">Sample rate</param> public void LoFi(int samples) { Waveshape func = Function; Function = x => func(Math.Round(x * samples) / (float)samples); }
public LFO(Waveshape func, double freq, double phase) { Function = func; Frequency = freq; PhaseOffset = phase; }
/// <summary> /// Creates a new LFO instance /// </summary> /// <param name="func">Function to create LFO with</param> /// <param name="freq">Frequency of LFO</param> public LFO(Waveshape func, double freq) { Function = func; Frequency = freq; }
/// <summary> /// Creates a new LFO instance /// </summary> /// <param name="func">Function to create LFO with</param> public LFO(Waveshape func) { Function = func; }