Пример #1
0
        /// <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);
        }
Пример #2
0
        /// <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);
        }
Пример #3
0
        /// <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);
        }
Пример #4
0
        /// <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);
        }
Пример #5
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);
        }
Пример #6
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);
        }