/// <summary> /// Инициализирует параметры с помощью переданной фабрики параметров. /// </summary> /// <param name="factory">Фабрика параметров</param> protected override void InitializeParameters(ParameterFactory factory) { // Параметр длительности стадии атаки. AttackTimeManager = factory.CreateParameterManager( name: "AT", defaultValue: 0.001f, valueChangedHandler: SetAttackTime); // Параметр длительности стадии спада. DecayTimeManager = factory.CreateParameterManager( name: "DT", valueChangedHandler: SetDecayTime); // Параметр уровня стадии поддержки. SustainLevelManager = factory.CreateParameterManager( name: "SL", defaultValue: 1, valueChangedHandler: SetSustainLevel); // Параметр длительности стадии затухания. ReleaseTimeManager = factory.CreateParameterManager( name: "RT", defaultValue: 0.001f, valueChangedHandler: SetReleaseTime); // Параметр изгиба стадии атаки. AttackCurveManager = factory.CreateParameterManager( name: "AC", defaultValue: 1, valueChangedHandler: SetAttackCurve); // Параметр изгиба стадий спада и затухания. DecayReleaseCurveManager = factory.CreateParameterManager( name: "DRC", valueChangedHandler: SetDecayReleaseCurve); // Параметр амплитуды огибающей. EnvelopeAmplitudeManager = factory.CreateParameterManager( name: "AMP", defaultValue: 1f, valueChangedHandler: x => envelopeAmplitudeFilter.SetTarget(x)); envelopeAmplitudeFilter = new ParameterFilter(UpdateEnvelopeAmplitude, 1); }
/// <summary> /// Инициализирует параметры с помощью переданной фабрики параметров. /// </summary> /// <param name="factory">Фабрика параметров</param> protected override void InitializeParameters(ParameterFactory factory) { // Параметр типа дисторшна. ModeManager = factory.CreateParameterManager( name: "TYPE", valueChangedHandler: SetMode); // Параметр силы эффекта. AmountManager = factory.CreateParameterManager( name: "AMNT", defaultValue: 0.5f, valueChangedHandler: SetAmount); // Параметр постоянного амплитудного сдвига. AsymmetryManager = factory.CreateParameterManager( name: "ASYM", defaultValue: 0.5f, valueChangedHandler: SetAsymmetryTarget); asymmetryFilter = new ParameterFilter(UpdateAsymmetry, 0); // Параметр уровня громкости входного сигнала. AmpManager = factory.CreateParameterManager( name: "AMP", defaultValue: 0.25f, valueChangedHandler: SetAmpTarget); ampFilter = new ParameterFilter(UpdateAmp, 1); // Параметр частоты среза фильтра низких частот для входного сигнала. LowPassCutoffManager = factory.CreateParameterManager( name: "LP", defaultValue: 1, valueChangedHandler: SetLowPassCutoff); // Параметр количества выходного и входного сигналов. MixManager = factory.CreateParameterManager( name: "MIX", defaultValue: 0.5f, valueChangedHandler: x => mixFilter.SetTarget(x)); mixFilter = new ParameterFilter(UpdateMix, 0); }
/// <summary> /// Инициализирует параметры с помощью переданной фабрики параметров. /// </summary> /// <param name="factory">Фабрика параметров</param> protected override void InitializeParameters(ParameterFactory factory) { ModulationTypeManager = factory.CreateParameterManager( name: "_MT", valueChangedHandler: SetModulationType); }