示例#1
0
        /// <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);
        }
示例#2
0
        /// <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);
        }
示例#3
0
 /// <summary>
 /// Инициализирует параметры с помощью переданной фабрики параметров.
 /// </summary>
 /// <param name="factory">Фабрика параметров</param>
 protected override void InitializeParameters(ParameterFactory factory)
 {
     ModulationTypeManager = factory.CreateParameterManager(
         name: "_MT",
         valueChangedHandler: SetModulationType);
 }