예제 #1
0
        private void InitializeParameters()
        {
            // all parameter definitions are added to a central list.
            VstParameterInfoCollection parameterInfos = _plugin.PluginPrograms.ParameterInfos;

            // retrieve the category for all delay parameters.
            VstParameterCategory paramCategory =
                _plugin.PluginPrograms.GetParameterCategory(ParameterCategoryName);

            // delay time parameter
            VstParameterInfo paramInfo = new VstParameterInfo
            {
                Category       = paramCategory,
                CanBeAutomated = true,
                Name           = "Gain",
                Label          = "Db",
                ShortLabel     = "Db",
                MinInteger     = -100,
                MaxInteger     = 100,
                LargeStepFloat = 20.0f,
                SmallStepFloat = 1.0f,
                StepFloat      = 10.0f,
                DefaultValue   = 0.0f
            };

            GainMgr = new VstParameterManager(paramInfo);
            VstParameterNormalizationInfo.AttachTo(paramInfo);

            parameterInfos.Add(paramInfo);
        }
예제 #2
0
        private void InitializeParameters()
        {
            // all parameter definitions are added to a central list.
            VstParameterInfoCollection parameterInfos = _plugin.PluginPrograms.ParameterInfos;

            // retrieve the category for all delay parameters.
            VstParameterCategory paramCategory =
                _plugin.PluginPrograms.GetParameterCategory(ParameterCategoryName);

            // delay time parameter
            VstParameterInfo paramInfo = new VstParameterInfo();

            paramInfo.Category       = paramCategory;
            paramInfo.CanBeAutomated = true;
            paramInfo.Name           = "Transp.";
            paramInfo.Label          = "Halfs";
            paramInfo.ShortLabel     = "#";
            paramInfo.MinInteger     = -100;
            paramInfo.MaxInteger     = 100;
            paramInfo.LargeStepFloat = 5.0f;
            paramInfo.SmallStepFloat = 1.0f;
            paramInfo.StepFloat      = 2.0f;
            paramInfo.DefaultValue   = 0.0f;
            TransposeMgr             = new VstParameterManager(paramInfo);
            VstParameterNormalizationInfo.AttachTo(paramInfo);

            parameterInfos.Add(paramInfo);
        }
예제 #3
0
파일: Gain.cs 프로젝트: kavun/VSTNETSynth
        private void InitializeParameters()
        {
            // all parameter definitions are added to a central list.
            VstParameterInfoCollection parameterInfos = _plugin.PluginPrograms.ParameterInfos;

            // retrieve the category for all delay parameters.
            VstParameterCategory paramCategory =
                _plugin.PluginPrograms.GetParameterCategory(ParameterCategoryName);

            // delay time parameter
            VstParameterInfo paramInfo = new VstParameterInfo();
            paramInfo.Category = paramCategory;
            paramInfo.CanBeAutomated = true;
            paramInfo.Name = "Gain";
            paramInfo.Label = "Db";
            paramInfo.ShortLabel = "Db";
            paramInfo.MinInteger = -100;
            paramInfo.MaxInteger = 100;
            paramInfo.LargeStepFloat = 20.0f;
            paramInfo.SmallStepFloat = 1.0f;
            paramInfo.StepFloat = 10.0f;
            paramInfo.DefaultValue = 0.0f;
            _gainMgr = new VstParameterManager(paramInfo);
            VstParameterNormalizationInfo.AttachTo(paramInfo);

            parameterInfos.Add(paramInfo);
        }
예제 #4
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);
        }
예제 #5
0
        private void InitializeParameters(PluginParameters parameters)
        {
            // all parameter definitions are added to a central list.
            VstParameterInfoCollection parameterInfos = parameters.ParameterInfos;

            // retrieve the category for all delay parameters.
            VstParameterCategory paramCategory =
                parameters.GetParameterCategory(ParameterCategoryName);

            // delay time parameter
            var paramInfo = new VstParameterInfo
            {
                Category       = paramCategory,
                CanBeAutomated = true,
                Name           = "Transp.",
                Label          = "Halfs",
                ShortLabel     = "#",
                MinInteger     = -100,
                MaxInteger     = 100,
                LargeStepFloat = 5.0f,
                SmallStepFloat = 1.0f,
                StepFloat      = 2.0f,
                DefaultValue   = 0.0f
            };

            TransposeMgr = paramInfo
                           .Normalize()
                           .ToManager();

            parameterInfos.Add(paramInfo);
        }
예제 #6
0
        private void InitializeParameters()
        {
            // all parameter definitions are added to a central list.
            var parameterInfos = _plugin.PluginPrograms.ParameterInfos;

            // retrieve the category for all delay parameters.
            var paramCategory =
                _plugin.PluginPrograms.GetParameterCategory(ParameterCategoryName);

            // delay time parameter
            var paramInfo = new VstParameterInfo();

            paramInfo.Category       = paramCategory;
            paramInfo.CanBeAutomated = true;
            paramInfo.Name           = "Down/Up";
            paramInfo.Label          = "D/U";
            paramInfo.ShortLabel     = "D/U";
            paramInfo.MinInteger     = 0;
            paramInfo.MaxInteger     = 1;
            paramInfo.LargeStepFloat = 1.0f;
            paramInfo.SmallStepFloat = 1.0f;
            paramInfo.StepFloat      = 1.0f;
            paramInfo.DefaultValue   = 1.0f;
            CascadeMgr = new VstParameterManager(paramInfo);
            VstParameterNormalizationInfo.AttachTo(paramInfo);

            parameterInfos.Add(paramInfo);
        }
예제 #7
0
        public override void SetUpParameter(PropertyInfo property, SynthParameter param)
        {
            var catName = param.Category ?? "Default";

            if (!(Categories.Contains(catName)))
            {
                Categories.Add(new VstParameterCategory()
                {
                    Name = catName
                });
            }
            var category = Categories[catName];

            var paramInfo = new VstParameterInfo();

            paramInfo.Category       = category;
            paramInfo.CanBeAutomated = true;
            paramInfo.Name           = param.Name;
            paramInfo.Label          = property.Name;
            paramInfo.ShortLabel     = param.ShortLabel;
            paramInfo.MinInteger     = param.Lo;
            paramInfo.MaxInteger     = param.Hi;
            paramInfo.DefaultValue   = param.DefaultValue;
            VstParameterNormalizationInfo.AttachTo(paramInfo);
            var manager = new VstParameterManager(paramInfo);

            _managers.Add(manager);
            if (property.PropertyType == typeof(float) || property.PropertyType == typeof(double))
            {
                manager.PropertyChanged += (object sender, PropertyChangedEventArgs e) =>
                {
                    if (e.PropertyName == "CurrentValue")
                    {
                        VstParameterManager paramMgr = (VstParameterManager)sender;
                        property.SetValue(this, paramMgr.CurrentValue);
                        OnPropertyChanged(property.Name);
                    }
                }
            }
            ;
            else if (property.PropertyType == typeof(int))
            {
                manager.PropertyChanged += (object sender, PropertyChangedEventArgs e) =>
                {
                    if (e.PropertyName == "CurrentValue")
                    {
                        VstParameterManager paramMgr = (VstParameterManager)sender;
                        property.SetValue(this, (int)(paramMgr.CurrentValue + 0.5f));
                        OnPropertyChanged(property.Name);
                    }
                }
            }
            ;
            else
            {
                throw new InvalidOperationException($"Parameter type {property.PropertyType} is not supported (yet?)");
            }
            ParameterInfos.Add(paramInfo);
        }
예제 #8
0
파일: Delay.cs 프로젝트: tiwadara/vst.net
 private void DelayTimeMgr_PropertyChanged(object sender, PropertyChangedEventArgs e)
 {
     if (e.PropertyName == "CurrentValue")
     {
         VstParameterManager paramMgr = (VstParameterManager)sender;
         _bufferLength = (int)(paramMgr.CurrentValue * _sampleRate / 1000);
     }
 }
예제 #9
0
 /// <summary>
 /// Event de changement de la propriété de temps du délai
 /// </summary>
 private void _delayTimeMgr_PropertyChanged(object sender, PropertyChangedEventArgs e)
 {
     // Recalcule la longueur du buffer si la valeur du paramètre a changé
     if (e.PropertyName == "CurrentValue")
     {
         VstParameterManager paramMgr = (VstParameterManager)sender;
         _bufferLength = (int)(paramMgr.CurrentValue * _sampleRate / 1000);
     }
 }
예제 #10
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);
        }
예제 #11
0
        public PresetsManager(ApplicationBase creator)
        {
            this.creator           = creator;
            thresholdParameterInfo = new VstParameterInfo {
                CanBeAutomated = true, CanRamp = true, DefaultValue = 0.125f, Label = "Threshold"
            };
            var thresholdParamMgr = new VstParameterManager(thresholdParameterInfo);

            thresholdParamMgr.PropertyChanged += onThresholdChanged;
        }
예제 #12
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);
        }
예제 #13
0
        private void BindParameter(VstParameterManager paramMgr, Label label, TrackBar trackBar, Label shortLabel)
        {
            label.Text      = paramMgr.ParameterInfo.Name;
            shortLabel.Text = paramMgr.ParameterInfo.ShortLabel;

            var factor     = InitTrackBar(trackBar, paramMgr.ParameterInfo);
            var paramState = new ParameterControlState(paramMgr, factor);

            // use databinding for VstParameter/Manager changed notifications.
            trackBar.DataBindings.Add("Value", paramState, nameof(ParameterControlState.Value));
            trackBar.ValueChanged += TrackBar_ValueChanged;
            trackBar.Tag           = paramState;
        }
예제 #14
0
        /// <summary>
        ///     Listens to changes made to VstParameterManagers. This method is used to keep
        ///     VstParameter_Changed up to date with the active parameter for each VstParameterManager.
        ///     The active parameter can change when the user changes the program from the host.
        /// </summary>
        /// <param name="sender">The VstParameterManager that changed.</param>
        /// <param name="e">Specifies the type of change made to a VstParameterManager</param>
        private void VstParameterManager_PropertyChanged(object sender, PropertyChangedEventArgs e)
        {
            VstParameterManager paramMgr = (VstParameterManager)sender;

            if (e.PropertyName == VstParameterManager.ActiveParameterPropertyName)
            {
                if (paramMgr.ActiveParameter != null)
                {
                    paramMgr.ActiveParameter.PropertyChanged +=
                        new PropertyChangedEventHandler(VstParameter_Changed);
                }
            }
        }
예제 #15
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);
        }
예제 #16
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);
        }
예제 #17
0
        /// <summary>
        /// Sets up a parameter that can be learned or mapped to.
        /// </summary>
        private void InitializeParameters()
        {
            _plugin.PluginPrograms.ParameterCategories = new VstParameterCategoryCollection();
            _plugin.PluginPrograms.ParameterCategories.Add(new VstParameterCategory()
            {
                Name = "Transposer"
            });
            // Create parameter information:
            VstParameterInfo p = new VstParameterInfo()
            {
                Name             = "Trans",
                CanBeAutomated   = false, // false for now.  I don't know how to make the automatin respond to these changes.
                CanRamp          = true,
                DefaultValue     = 0.5f,
                IsSwitch         = false,
                Category         = _plugin.PluginPrograms.ParameterCategories[0],
                Label            = "Transpose",
                LargeStepFloat   = 1.0f,
                LargeStepInteger = 1,
                MaxInteger       = 12,
                MinInteger       = -12,
                ShortLabel       = "semitone", // max 8 characters!
                StepFloat        = 1.0f,
                StepInteger      = 1,
                SmallStepFloat   = 1
            };

            // ...

            // Create Parameter Managers:

            VstParameterNormalizationInfo.AttachTo(p);
            SemitonesManager = new VstParameterManager(p);

            // ...



            // Add ParameterInfos to the global collection in the plugin.
            _plugin.PluginPrograms.ParameterInfos = new VstParameterInfoCollection();
            _plugin.PluginPrograms.ParameterInfos.Add(p);
            // ...
        }
예제 #18
0
        /// <summary>
        ///     Initialized VstParameterManagerDict by createing a VstParameterManager for each MSS
        ///     parameter.
        /// </summary>
        protected void InitializeVstParams()
        {
            // all parameter definitions are added to a central list.
            VstParameterInfoCollection parameterInfos = this.pluginPrograms.ParameterInfos;

            //itterate over each MssParameterID
            foreach (MssParameterID paramId in MssParameterID.GetValues(typeof(MssParameterID)))
            {
                VstParameterInfo paramInfo = MssToVstParameterInfo(paramId);

                parameterInfos.Add(paramInfo);

                VstParameterManager paramMgr = new VstParameterManager(paramInfo);

                //Adds listener to changes made to a parameter from the host
                paramMgr.PropertyChanged +=
                    new PropertyChangedEventHandler(VstParameterManager_PropertyChanged);
                VstParameterManagerDict.Add(paramId, paramMgr);
            }
        }
예제 #19
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);
        }
예제 #20
0
        /// <summary>
        /// Создаёт новый параметр и регистрирует его.
        /// </summary>
        /// <param name="name">Имя параметра.</param>
        /// <param name="defaultValue">Начальное значение.</param>
        /// <param name="valueChangedHandler">Обработчик изменения значения параметра.</param>
        /// <returns>Объект, управляющий созданным параметром.</returns>
        public VstParameterManager CreateParameterManager(
            string name        = null,
            float defaultValue = 0,
            Action <float> valueChangedHandler = null)
        {
            var parameterInfo = new VstParameterInfo()
            {
                Category     = parameterCategory,
                Name         = namePrefix + name,
                DefaultValue = defaultValue,
            };

            VstParameterNormalizationInfo.AttachTo(parameterInfo);

            programs.ParameterInfos.Add(parameterInfo);

            var manager = new VstParameterManager(parameterInfo);

            plugin.Opened += (sender, e) =>
            {
                manager.HostAutomation = plugin.Host.GetInstance <IVstHostAutomation>();
            };

            if (valueChangedHandler != null)
            {
                manager.PropertyChanged += (sender, e) =>
                {
                    if (e.PropertyName == "CurrentValue" || e.PropertyName == "ActiveParameter")
                    {
                        plugin.AudioProcessor.ProcessingMutex.WaitOne();
                        valueChangedHandler(manager.CurrentValue);
                        plugin.AudioProcessor.ProcessingMutex.ReleaseMutex();
                    }
                }
            }
            ;
            return(manager);
        }
    }
예제 #21
0
        private void BindParameter(VstParameterManager paramMgr, Label label, TrackBar trackBar, Label shortLabel)
        {
            // NOTE: This code works best with integer parameter values.
            label.Text      = paramMgr.ParameterInfo.Name;
            shortLabel.Text = paramMgr.ParameterInfo.ShortLabel;

            if (paramMgr.ParameterInfo.IsStepIntegerValid)
            {
                trackBar.LargeChange = paramMgr.ParameterInfo.LargeStepInteger;
                trackBar.SmallChange = paramMgr.ParameterInfo.StepInteger;
            }

            if (paramMgr.ParameterInfo.IsMinMaxIntegerValid)
            {
                trackBar.Minimum = paramMgr.ParameterInfo.MinInteger;
                trackBar.Maximum = paramMgr.ParameterInfo.MaxInteger;
            }

            // use databinding for VstParameter/Manager changed notifications.
            trackBar.DataBindings.Add("Value", paramMgr, "ActiveParameter.Value");
            trackBar.ValueChanged += new System.EventHandler(TrackBar_ValueChanged);
            trackBar.Tag           = paramMgr;
        }
예제 #22
0
 /// <summary>
 /// Инициализирует параметры с помощью переданной фабрики параметров.
 /// </summary>
 /// <param name="factory">Фабрика параметров</param>
 protected override void InitializeParameters(ParameterFactory factory)
 {
     ModulationTypeManager = factory.CreateParameterManager(
         name: "_MT",
         valueChangedHandler: SetModulationType);
 }
예제 #23
0
파일: Melter.cs 프로젝트: tiwadara/vst.net
        private void InitializeParameters()
        {
            // all parameter definitions are added to a central list.
            VstParameterInfoCollection parameterInfos = _plugin.PluginPrograms.ParameterInfos;

            // retrieve the category for all melter parameters.
            VstParameterCategory paramCategory =
                _plugin.PluginPrograms.GetParameterCategory(ParameterCategoryName);

            var paramInfo = new VstParameterInfo();

            paramInfo.Category       = paramCategory;
            paramInfo.CanBeAutomated = true;
            paramInfo.Name           = "Tap";
            paramInfo.Label          = "Tap";
            paramInfo.ShortLabel     = "|";
            paramInfo.MinInteger     = 0;
            paramInfo.MaxInteger     = 2;
            paramInfo.LargeStepFloat = 1.0f;
            paramInfo.SmallStepFloat = 1.0f;
            paramInfo.StepFloat      = 1.0f;
            paramInfo.CanRamp        = true;
            paramInfo.DefaultValue   = 0f;
            InputTapMgr = new VstParameterManager(paramInfo);
            VstParameterNormalizationInfo.AttachTo(paramInfo);

            parameterInfos.Add(paramInfo);

            paramInfo                = new VstParameterInfo();
            paramInfo.Category       = paramCategory;
            paramInfo.CanBeAutomated = true;
            paramInfo.Name           = "LeftGain";
            paramInfo.Label          = "LftGn";
            paramInfo.ShortLabel     = "%";
            paramInfo.MinInteger     = 0;
            paramInfo.MaxInteger     = 1;
            paramInfo.LargeStepFloat = 0.10f;
            paramInfo.SmallStepFloat = 0.03f;
            paramInfo.StepFloat      = 0.05f;
            paramInfo.DefaultValue   = 1.0f;
            LeftVolumeMgr            = new VstParameterManager(paramInfo);
            VstParameterNormalizationInfo.AttachTo(paramInfo);

            parameterInfos.Add(paramInfo);

            paramInfo                = new VstParameterInfo();
            paramInfo.Category       = paramCategory;
            paramInfo.CanBeAutomated = true;
            paramInfo.Name           = "RghtGain";
            paramInfo.Label          = "RghtGn";
            paramInfo.ShortLabel     = "%";
            paramInfo.MinInteger     = 0;
            paramInfo.MaxInteger     = 1;
            paramInfo.LargeStepFloat = 0.10f;
            paramInfo.SmallStepFloat = 0.03f;
            paramInfo.StepFloat      = 0.05f;
            paramInfo.DefaultValue   = 1.0f;
            RightVolumeMgr           = new VstParameterManager(paramInfo);
            VstParameterNormalizationInfo.AttachTo(paramInfo);

            parameterInfos.Add(paramInfo);

            paramInfo                = new VstParameterInfo();
            paramInfo.Category       = paramCategory;
            paramInfo.CanBeAutomated = true;
            paramInfo.Name           = "Invert";
            paramInfo.Label          = "Invert";
            paramInfo.ShortLabel     = "!";
            paramInfo.MinInteger     = 0;
            paramInfo.MaxInteger     = 1;
            paramInfo.LargeStepFloat = 1f;
            paramInfo.SmallStepFloat = 1f;
            paramInfo.StepFloat      = 1f;
            paramInfo.IsSwitch       = true;
            paramInfo.DefaultValue   = 0f;
            this.InverterMgr         = new VstParameterManager(paramInfo);
            VstParameterNormalizationInfo.AttachTo(paramInfo);

            parameterInfos.Add(paramInfo);

            paramInfo                = new VstParameterInfo();
            paramInfo.Category       = paramCategory;
            paramInfo.CanBeAutomated = true;
            paramInfo.Name           = "Balance";
            paramInfo.Label          = "Balance";
            paramInfo.ShortLabel     = "Bal";
            paramInfo.MinInteger     = 0;
            paramInfo.MaxInteger     = 240;
            paramInfo.LargeStepFloat = 10f;
            paramInfo.SmallStepFloat = 3f;
            paramInfo.StepFloat      = 5f;
            paramInfo.DefaultValue   = 120f;
            this.OutputBalanceMgr    = new VstParameterManager(paramInfo);
            VstParameterNormalizationInfo.AttachTo(paramInfo);

            parameterInfos.Add(paramInfo);
        }
예제 #24
0
        // This method initializes the plugin parameters this Dsp component owns.
        private void InitializeParameters(PluginParameters parameters)
        {
            // all parameter definitions are added to a central list.
            VstParameterInfoCollection parameterInfos = parameters.ParameterInfos;

            // retrieve the category for all delay parameters.
            VstParameterCategory paramCategory =
                parameters.GetParameterCategory(ParameterCategoryName);

            // delay time parameter
            var paramInfo = new VstParameterInfo
            {
                Category         = paramCategory,
                CanBeAutomated   = true,
                Name             = "Time",
                Label            = "MilSecs",
                ShortLabel       = "ms",
                MinInteger       = 0,
                MaxInteger       = 1000,
                LargeStepInteger = 100,
                StepInteger      = 10,
                DefaultValue     = 200f
            };

            DelayTimeMgr = paramInfo
                           .Normalize()
                           .ToManager();

            parameterInfos.Add(paramInfo);

            // feedback parameter
            paramInfo = new VstParameterInfo
            {
                Category       = paramCategory,
                CanBeAutomated = true,
                Name           = "Feedbck",
                Label          = "Factor",
                ShortLabel     = "*",
                LargeStepFloat = 0.1f,
                SmallStepFloat = 0.01f,
                StepFloat      = 0.05f,
                DefaultValue   = 0.4f
            };
            FeedbackMgr = paramInfo
                          .Normalize()
                          .ToManager();

            parameterInfos.Add(paramInfo);

            // dry Level parameter
            paramInfo = new VstParameterInfo
            {
                Category       = paramCategory,
                CanBeAutomated = true,
                Name           = "Dry Lvl",
                Label          = "Decibel",
                ShortLabel     = "Db",
                LargeStepFloat = 0.1f,
                SmallStepFloat = 0.01f,
                StepFloat      = 0.05f,
                DefaultValue   = 0.8f
            };
            DryLevelMgr = paramInfo
                          .Normalize()
                          .ToManager();

            parameterInfos.Add(paramInfo);

            // wet Level parameter
            paramInfo = new VstParameterInfo
            {
                Category       = paramCategory,
                CanBeAutomated = true,
                Name           = "Wet Lvl",
                Label          = "Decibel",
                ShortLabel     = "Db",
                LargeStepFloat = 0.1f,
                SmallStepFloat = 0.01f,
                StepFloat      = 0.05f,
                DefaultValue   = 0.4f
            };
            WetLevelMgr = paramInfo
                          .Normalize()
                          .ToManager();

            parameterInfos.Add(paramInfo);
        }
예제 #25
0
        /// <summary>
        ///     Initialized VstParameterManagerDict by createing a VstParameterManager for each MSS 
        ///     parameter.
        /// </summary>
        protected void InitializeVstParams()
        {
            // all parameter definitions are added to a central list.
            VstParameterInfoCollection parameterInfos = this.pluginPrograms.ParameterInfos;

            //itterate over each MssParameterID
            foreach(MssParameterID paramId in MssParameterID.GetValues(typeof(MssParameterID)))
            {
                VstParameterInfo paramInfo = MssToVstParameterInfo(paramId);

                parameterInfos.Add(paramInfo);

                VstParameterManager paramMgr = new VstParameterManager(paramInfo);

                //Adds listener to changes made to a parameter from the host
                paramMgr.PropertyChanged +=
                    new PropertyChangedEventHandler(VstParameterManager_PropertyChanged);
                VstParameterManagerDict.Add(paramId, paramMgr);
            }
        }
예제 #26
0
        public PressorParameters()
        {
            Parameters = new VstParameterInfoCollection();

            #region params

            var threshInfo = new VstParameterInfo
            {
                CanBeAutomated = true,
                Name           = "Thrshld",
                Label          = "Threshold",
                ShortLabel     = "-db",
                MinInteger     = 0,
                MaxInteger     = 60,
                SmallStepFloat = 0.1f,
                StepFloat      = 1f,
                LargeStepFloat = 3f,
                DefaultValue   = 12,
            };
            Parameters.Add(threshInfo);


            var ratInfo = new VstParameterInfo
            {
                CanBeAutomated   = true,
                Name             = "Ratio",
                Label            = "Ratio",
                ShortLabel       = ": 1",
                MinInteger       = 1,
                MaxInteger       = 60,
                StepInteger      = 1,
                LargeStepInteger = 3,
                DefaultValue     = 4f,
            };
            Parameters.Add(ratInfo);


            var attInfo = new VstParameterInfo
            {
                CanBeAutomated   = true,
                Name             = "Attack",
                Label            = "Attack",
                ShortLabel       = "ms",
                MinInteger       = 1,
                MaxInteger       = 1000,
                StepInteger      = 1,
                LargeStepInteger = 10,
                DefaultValue     = 50f,
            };
            Parameters.Add(attInfo);

            var relInfo = new VstParameterInfo
            {
                CanBeAutomated   = true,
                CanRamp          = true,
                Name             = "Release",
                Label            = "Release",
                ShortLabel       = "ms",
                MinInteger       = 1,
                MaxInteger       = 1000,
                StepInteger      = 1,
                LargeStepInteger = 10,
                DefaultValue     = 50f,
            };

            Parameters.Add(relInfo);


            var kneeInfo = new VstParameterInfo
            {
                CanBeAutomated   = true,
                CanRamp          = true,
                Name             = "Knee",
                Label            = "Knee",
                ShortLabel       = "",
                MinInteger       = 0,
                MaxInteger       = 10,
                StepInteger      = 1,
                LargeStepInteger = 1,
                DefaultValue     = 0,
            };
            Parameters.Add(kneeInfo);

            var mGainInfo = new VstParameterInfo
            {
                CanBeAutomated   = true,
                CanRamp          = true,
                Name             = "MkGain",
                Label            = "MakeUpGain",
                ShortLabel       = "db",
                MinInteger       = 0,
                MaxInteger       = 60,
                StepInteger      = 1,
                LargeStepInteger = 1,
                DefaultValue     = 0,
            };
            Parameters.Add(mGainInfo);

            #endregion

            _thresholdMgr = Parameters.ElementAt(0).Normalize().ToManager();
            _ratioMgr     = Parameters.ElementAt(1).Normalize().ToManager();
            _attackMgr    = Parameters.ElementAt(2).Normalize().ToManager();
            _releaseMgr   = Parameters.ElementAt(3).Normalize().ToManager();
            _kneeMgr      = Parameters.ElementAt(4).Normalize().ToManager();
            _makeupMgr    = Parameters.ElementAt(5).Normalize().ToManager();

            SetUpInitialValues();

            SetUpPropertyChangedEvents();
        }
예제 #27
0
        /// <summary>
        /// Constructeur
        /// </summary>
        public Delay()
        {
            // On instancie une nouvelle collection d'informations pour les paramètres du délai
            _paramInfos = new VstParameterInfoCollection();

            #region Initialize Parameters

            // Paramètres du temps du délai
            VstParameterInfo paramInfo = new VstParameterInfo();
            paramInfo.CanBeAutomated = true;
            paramInfo.Name           = "dt";
            paramInfo.Label          = "Delay Time";
            paramInfo.ShortLabel     = "T-Dly:";
            paramInfo.MinInteger     = 0;
            paramInfo.MaxInteger     = 1000;
            paramInfo.LargeStepFloat = 100.0f;
            paramInfo.SmallStepFloat = 1.0f;
            paramInfo.StepFloat      = 10.0f;
            paramInfo.DefaultValue   = 200f;
            _delayTimeMgr            = new VstParameterManager(paramInfo);
            VstParameterNormalizationInfo.AttachTo(paramInfo);

            _paramInfos.Add(paramInfo);

            // Paramètre de feedback du délai
            paramInfo = new VstParameterInfo();
            paramInfo.CanBeAutomated = true;
            paramInfo.Name           = "fb";
            paramInfo.Label          = "Feedback";
            paramInfo.ShortLabel     = "Feedbk:";
            paramInfo.LargeStepFloat = 0.1f;
            paramInfo.SmallStepFloat = 0.01f;
            paramInfo.StepFloat      = 0.05f;
            paramInfo.DefaultValue   = 0.2f;
            _feedbackMgr             = new VstParameterManager(paramInfo);
            VstParameterNormalizationInfo.AttachTo(paramInfo);

            _paramInfos.Add(paramInfo);

            // Paramètre de "dry" du délai (à quel niveau est le signal d'origine)
            paramInfo = new VstParameterInfo();
            paramInfo.CanBeAutomated = true;
            paramInfo.Name           = "dl";
            paramInfo.Label          = "Dry Level";
            paramInfo.ShortLabel     = "DryLvl:";
            paramInfo.LargeStepFloat = 0.1f;
            paramInfo.SmallStepFloat = 0.01f;
            paramInfo.StepFloat      = 0.05f;
            paramInfo.DefaultValue   = 0.8f;
            _dryLevelMgr             = new VstParameterManager(paramInfo);
            VstParameterNormalizationInfo.AttachTo(paramInfo);

            _paramInfos.Add(paramInfo);

            // Paramètre de "wet" du délai (à quel niveau est le signal traité)
            paramInfo = new VstParameterInfo();
            paramInfo.CanBeAutomated = true;
            paramInfo.Name           = "wl";
            paramInfo.Label          = "Wet Level";
            paramInfo.ShortLabel     = "WetLvl:";
            paramInfo.LargeStepFloat = 0.1f;
            paramInfo.SmallStepFloat = 0.01f;
            paramInfo.StepFloat      = 0.05f;
            paramInfo.DefaultValue   = 0.4f;
            _wetLevelMgr             = new VstParameterManager(paramInfo);
            VstParameterNormalizationInfo.AttachTo(paramInfo);

            _paramInfos.Add(paramInfo);

            #endregion

            // On s'abonne à l'event de changement de la propriété de temps du délai
            _delayTimeMgr.PropertyChanged += new PropertyChangedEventHandler(_delayTimeMgr_PropertyChanged);
        }
예제 #28
0
파일: Delay.cs 프로젝트: tiwadara/vst.net
        /// <summary>
        /// Constructs a new instance.
        /// </summary>
        public Delay()
        {
            _paramInfos = new VstParameterInfoCollection();

            #region Initialize Parameters

            // delay time parameter
            VstParameterInfo paramInfo = new VstParameterInfo();
            paramInfo.CanBeAutomated = true;
            paramInfo.Name           = "dt";
            paramInfo.Label          = "Delay Time";
            paramInfo.ShortLabel     = "T-Dly:";
            paramInfo.MinInteger     = 0;
            paramInfo.MaxInteger     = 1000;
            paramInfo.LargeStepFloat = 100.0f;
            paramInfo.SmallStepFloat = 1.0f;
            paramInfo.StepFloat      = 10.0f;
            paramInfo.DefaultValue   = 200f;
            _delayTimeMgr            = new VstParameterManager(paramInfo);
            VstParameterNormalizationInfo.AttachTo(paramInfo);

            _paramInfos.Add(paramInfo);

            // feedback parameter
            paramInfo = new VstParameterInfo();
            paramInfo.CanBeAutomated = true;
            paramInfo.Name           = "fb";
            paramInfo.Label          = "Feedback";
            paramInfo.ShortLabel     = "Feedbk:";
            paramInfo.LargeStepFloat = 0.1f;
            paramInfo.SmallStepFloat = 0.01f;
            paramInfo.StepFloat      = 0.05f;
            paramInfo.DefaultValue   = 0.2f;
            _feedbackMgr             = new VstParameterManager(paramInfo);
            VstParameterNormalizationInfo.AttachTo(paramInfo);

            _paramInfos.Add(paramInfo);

            // dry Level parameter
            paramInfo = new VstParameterInfo();
            paramInfo.CanBeAutomated = true;
            paramInfo.Name           = "dl";
            paramInfo.Label          = "Dry Level";
            paramInfo.ShortLabel     = "DryLvl:";
            paramInfo.LargeStepFloat = 0.1f;
            paramInfo.SmallStepFloat = 0.01f;
            paramInfo.StepFloat      = 0.05f;
            paramInfo.DefaultValue   = 0.8f;
            _dryLevelMgr             = new VstParameterManager(paramInfo);
            VstParameterNormalizationInfo.AttachTo(paramInfo);

            _paramInfos.Add(paramInfo);

            // wet Level parameter
            paramInfo = new VstParameterInfo();
            paramInfo.CanBeAutomated = true;
            paramInfo.Name           = "wl";
            paramInfo.Label          = "Wet Level";
            paramInfo.ShortLabel     = "WetLvl:";
            paramInfo.LargeStepFloat = 0.1f;
            paramInfo.SmallStepFloat = 0.01f;
            paramInfo.StepFloat      = 0.05f;
            paramInfo.DefaultValue   = 0.4f;
            _wetLevelMgr             = new VstParameterManager(paramInfo);
            VstParameterNormalizationInfo.AttachTo(paramInfo);

            _paramInfos.Add(paramInfo);

            #endregion

            //_delayTimeMgr.ValueChanged += new System.EventHandler<System.EventArgs>(_delayTimeMgr_ValueChanged);
            _delayTimeMgr.PropertyChanged += new PropertyChangedEventHandler(_delayTimeMgr_PropertyChanged);
        }
예제 #29
0
파일: Delay.cs 프로젝트: autophage/vst.net
        /// <summary>
        /// Constructs a new instance.
        /// </summary>
        public Delay()
        {
            _paramInfos = new VstParameterInfoCollection();

            #region Initialize Parameters

            // delay time parameter
            VstParameterInfo paramInfo = new VstParameterInfo
            {
                CanBeAutomated = true,
                Name           = "dt",
                Label          = "Delay Time",
                ShortLabel     = "T-Dly:",
                MinInteger     = 0,
                MaxInteger     = 1000,
                LargeStepFloat = 100.0f,
                SmallStepFloat = 1.0f,
                StepFloat      = 10.0f,
                DefaultValue   = 200f
            };
            _delayTimeMgr = new VstParameterManager(paramInfo);
            VstParameterNormalizationInfo.AttachTo(paramInfo);

            _paramInfos.Add(paramInfo);

            // feedback parameter
            paramInfo = new VstParameterInfo
            {
                CanBeAutomated = true,
                Name           = "fb",
                Label          = "Feedback",
                ShortLabel     = "Feedbk:",
                LargeStepFloat = 0.1f,
                SmallStepFloat = 0.01f,
                StepFloat      = 0.05f,
                DefaultValue   = 0.2f
            };
            _feedbackMgr = new VstParameterManager(paramInfo);
            VstParameterNormalizationInfo.AttachTo(paramInfo);

            _paramInfos.Add(paramInfo);

            // dry Level parameter
            paramInfo = new VstParameterInfo
            {
                CanBeAutomated = true,
                Name           = "dl",
                Label          = "Dry Level",
                ShortLabel     = "DryLvl:",
                LargeStepFloat = 0.1f,
                SmallStepFloat = 0.01f,
                StepFloat      = 0.05f,
                DefaultValue   = 0.8f
            };
            _dryLevelMgr = new VstParameterManager(paramInfo);
            VstParameterNormalizationInfo.AttachTo(paramInfo);

            _paramInfos.Add(paramInfo);

            // wet Level parameter
            paramInfo = new VstParameterInfo
            {
                CanBeAutomated = true,
                Name           = "wl",
                Label          = "Wet Level",
                ShortLabel     = "WetLvl:",
                LargeStepFloat = 0.1f,
                SmallStepFloat = 0.01f,
                StepFloat      = 0.05f,
                DefaultValue   = 0.4f
            };
            _wetLevelMgr = new VstParameterManager(paramInfo);
            VstParameterNormalizationInfo.AttachTo(paramInfo);

            _paramInfos.Add(paramInfo);

            #endregion

            _delayTimeMgr.PropertyChanged += new PropertyChangedEventHandler(_delayTimeMgr_PropertyChanged);
        }
예제 #30
0
 public ParameterControlState(VstParameterManager parameterManager, float valueFactor)
 {
     ParameterManager = parameterManager;
     ValueFactor      = valueFactor;
 }
예제 #31
0
파일: Delay.cs 프로젝트: tiwadara/vst.net
        // This method initializes the plugin parameters this Dsp component owns.
        private void InitializeParameters()
        {
            // all parameter definitions are added to a central list.
            VstParameterInfoCollection parameterInfos = _plugin.PluginPrograms.ParameterInfos;

            // retrieve the category for all delay parameters.
            VstParameterCategory paramCategory =
                _plugin.PluginPrograms.GetParameterCategory(ParameterCategoryName);

            // delay time parameter
            VstParameterInfo paramInfo = new VstParameterInfo();

            paramInfo.Category       = paramCategory;
            paramInfo.CanBeAutomated = true;
            paramInfo.Name           = "Time";
            paramInfo.Label          = "MilSecs";
            paramInfo.ShortLabel     = "ms";
            paramInfo.MinInteger     = 0;
            paramInfo.MaxInteger     = 1000;
            paramInfo.LargeStepFloat = 100.0f;
            paramInfo.SmallStepFloat = 1.0f;
            paramInfo.StepFloat      = 10.0f;
            paramInfo.DefaultValue   = 200f;
            DelayTimeMgr             = new VstParameterManager(paramInfo);
            VstParameterNormalizationInfo.AttachTo(paramInfo);

            parameterInfos.Add(paramInfo);

            // feedback parameter
            paramInfo                = new VstParameterInfo();
            paramInfo.Category       = paramCategory;
            paramInfo.CanBeAutomated = true;
            paramInfo.Name           = "Feedbck";
            paramInfo.Label          = "Factor";
            paramInfo.ShortLabel     = "*";
            paramInfo.LargeStepFloat = 0.1f;
            paramInfo.SmallStepFloat = 0.01f;
            paramInfo.StepFloat      = 0.05f;
            paramInfo.DefaultValue   = 0.2f;
            FeedbackMgr              = new VstParameterManager(paramInfo);
            VstParameterNormalizationInfo.AttachTo(paramInfo);

            parameterInfos.Add(paramInfo);

            // dry Level parameter
            paramInfo                = new VstParameterInfo();
            paramInfo.Category       = paramCategory;
            paramInfo.CanBeAutomated = true;
            paramInfo.Name           = "Dry Lvl";
            paramInfo.Label          = "Decibel";
            paramInfo.ShortLabel     = "Db";
            paramInfo.LargeStepFloat = 0.1f;
            paramInfo.SmallStepFloat = 0.01f;
            paramInfo.StepFloat      = 0.05f;
            paramInfo.DefaultValue   = 0.8f;
            DryLevelMgr              = new VstParameterManager(paramInfo);
            VstParameterNormalizationInfo.AttachTo(paramInfo);

            parameterInfos.Add(paramInfo);

            // wet Level parameter
            paramInfo                = new VstParameterInfo();
            paramInfo.Category       = paramCategory;
            paramInfo.CanBeAutomated = true;
            paramInfo.Name           = "Wet Lvl";
            paramInfo.Label          = "Decibel";
            paramInfo.ShortLabel     = "Db";
            paramInfo.LargeStepFloat = 0.1f;
            paramInfo.SmallStepFloat = 0.01f;
            paramInfo.StepFloat      = 0.05f;
            paramInfo.DefaultValue   = 0.4f;
            WetLevelMgr              = new VstParameterManager(paramInfo);
            VstParameterNormalizationInfo.AttachTo(paramInfo);

            parameterInfos.Add(paramInfo);
        }