/// <summary> /// Инициализирует параметры с помощью переданной фабрики параметров. /// </summary> /// <param name="factory">Фабрика параметров</param> protected override void InitializeParameters(ParameterFactory factory) { // Параметр типа фильтра. FilterTypeManager = factory.CreateParameterManager( name: "TYPE", valueChangedHandler: SetFilterType); // Параметр множителя частоты среза фильтра. CutoffManager = factory.CreateParameterManager( name: "CUT", defaultValue: 1, valueChangedHandler: SetCutoffMultiplierTarget); cutoffMultiplierFilter = new ParameterFilter(UpdateCutoffMultiplier, 1, 10); // Параметр коэффициента отслеживания частоты играющей ноты. TrackingCoeffManager = factory.CreateParameterManager( name: "TRK", defaultValue: 1, valueChangedHandler: SetTrackingCoeff); // Параметр "ширины" фильтра. CurveManager = factory.CreateParameterManager( name: "CRV", defaultValue: 0.5f, valueChangedHandler: SetCurve); }
/// <summary> /// Инициализирует параметры с помощью переданной фабрики параметров. /// </summary> /// <param name="factory">Фабрика параметров</param> protected override void InitializeParameters(ParameterFactory factory) { // Параметр типа дилэя. ModeManager = factory.CreateParameterManager( name: "MODE", valueChangedHandler: SetMode); // Параметр времени задержки. TimeManager = factory.CreateParameterManager( name: "TIME", defaultValue: 0.8f, valueChangedHandler: SetTimeTarget); timeFilter = new ParameterFilter(UpdateTime, 0, 100); TimeManager.PropertyChanged += (sender, e) => { if (e.PropertyName == "ActiveParameter") { currentDelay?.Reset(); } }; // Параметр коэффициента обратной связи. FeedbackManager = factory.CreateParameterManager( name: "FB", defaultValue: 0.5f, valueChangedHandler: SetFeedback); // Параметр стерео-эффекта. StereoAmountManager = factory.CreateParameterManager( name: "STER", defaultValue: 0.5f, valueChangedHandler: SetStereoAmountTarget); stereoAmountFilter = new ParameterFilter(UpdateStereoAmount, 0, 100); // Параметр количества выходного и входного сигналов. MixManager = factory.CreateParameterManager( name: "MIX", defaultValue: 0.5f, valueChangedHandler: SetMixTarget); mixFilter = new ParameterFilter(UpdateMix, 0); // Параметр инвертирования выходного сигнала. InvertManager = factory.CreateParameterManager( name: "INV", valueChangedHandler: SetInvert); // Параметр частоты генератора низких частот. LfoRateManager = factory.CreateParameterManager( name: "RATE", valueChangedHandler: SetLfoRate); // Параметр амплитуды генератора низких частот. LfoDepthManager = factory.CreateParameterManager( name: "DEPTH", valueChangedHandler: SetLfoDepth); }
/// <summary> /// Инициализирует параметры с помощью переданной фабрики параметров. /// </summary> /// <param name="factory">Фабрика параметров</param> protected override void InitializeParameters(ParameterFactory factory) { OversamplingOrderManager = factory.CreateParameterManager( name: "OVSMP", valueChangedHandler: SetOversamplingOrder); MasterVolumeManager = factory.CreateParameterManager( name: "VOL", defaultValue: 0.5f, valueChangedHandler: x => masterVolumeFilter.SetTarget(x)); masterVolumeFilter = new ParameterFilter(UpdateMasterVolume, 1); }
/// <summary> /// Инициализирует параметры с помощью переданной фабрики параметров. /// </summary> /// <param name="factory">Фабрика параметров</param> protected override void InitializeParameters(ParameterFactory factory) { PitchSemiManager = factory.CreateParameterManager( name: "SEMI", defaultValue: 0.5f, valueChangedHandler: SetPitchSemi); PitchFineManager = factory.CreateParameterManager( name: "FINE", defaultValue: 0.5f, valueChangedHandler: SetPitchFine); pitchMultiplierFilter = new ParameterFilter(UpdatePitchMultiplier, 0); WaveTableManager = factory.CreateParameterManager( name: "TYPE", defaultValue: 0, valueChangedHandler: SetWaveTable); }
/// <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); }