예제 #1
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);
        }
예제 #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
        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);
        }
예제 #4
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);
        }
        private void AssertNormalizationInfo(VstParameterInfo paramInfo)
        {
            VstParameterNormalizationInfo.AttachTo(paramInfo);

            float actual = paramInfo.NormalizationInfo.GetRawValue(0);

            actual.Should().Be(paramInfo.MinInteger);

            actual = paramInfo.NormalizationInfo.GetRawValue(1);
            actual.Should().Be(paramInfo.MaxInteger);

            actual = paramInfo.NormalizationInfo.GetNormalizedValue(paramInfo.MinInteger);
            actual.Should().Be(0);

            actual = paramInfo.NormalizationInfo.GetNormalizedValue(paramInfo.MaxInteger);
            actual.Should().Be(1);
        }
        //
        // You can use the following additional attributes as you write your tests:
        //
        // Use ClassInitialize to run code before running the first test in the class
        // [ClassInitialize()]
        // public static void MyClassInitialize(TestContext testContext) { }
        //
        // Use ClassCleanup to run code after all tests in a class have run
        // [ClassCleanup()]
        // public static void MyClassCleanup() { }
        //
        // Use TestInitialize to run code before running each test
        // [TestInitialize()]
        // public void MyTestInitialize() { }
        //
        // Use TestCleanup to run code after each test has run
        // [TestCleanup()]
        // public void MyTestCleanup() { }
        //
        #endregion

        private void AssertNormalizationInfo(VstParameterInfo paramInfo)
        {
            VstParameterNormalizationInfo.AttachTo(paramInfo);

            float actual = paramInfo.NormalizationInfo.GetRawValue(0);

            Assert.AreEqual(paramInfo.MinInteger, actual, "Raw Null value mismatch.");

            actual = paramInfo.NormalizationInfo.GetRawValue(1);
            Assert.AreEqual(paramInfo.MaxInteger, actual, "Raw Max value mismatch.");

            actual = paramInfo.NormalizationInfo.GetNormalizedValue(paramInfo.MinInteger);
            Assert.AreEqual(0, actual, "Normalized Null value mismatch.");

            actual = paramInfo.NormalizationInfo.GetNormalizedValue(paramInfo.MaxInteger);
            Assert.AreEqual(1, actual, "Normalized Max value mismatch.");
        }
예제 #7
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);
            // ...
        }
예제 #8
0
        /// <summary>
        ///     Generates an instance of VstParameterInfo using information about an MSS parameter.
        /// </summary>
        /// <param name="paramId">Specifies the MSS parameter to get information from</param>
        /// <returns></returns>
        protected VstParameterInfo MssToVstParameterInfo(MssParameterID paramId)
        {
            // retrieve the category for all variable parameters.
            VstParameterCategory paramCategory =
                this.pluginPrograms.GetParameterCategory(DEFAULT_PARAMETER_CATEGORY_NAME);

            // Variable parameter
            VstParameterInfo paramInfo = new VstParameterInfo();

            paramInfo.Category       = paramCategory;
            paramInfo.CanBeAutomated = true;

            if (MssParameters.PRESET_PARAM_ID_LIST.Contains(paramId))
            {
                paramInfo.Name         = MssParameters.GetDefaultPresetName(paramId);
                paramInfo.DefaultValue = 0;
            }
            else if (MssParameters.VARIABLE_PARAM_ID_LIST.Contains(paramId))
            {
                MssParamInfo mssParamInfo = this.mssParameters.GetParameterInfoCopy(paramId);
                paramInfo.Name         = GetParamNameFromString(mssParamInfo.Name);
                paramInfo.DefaultValue = (float)this.mssParameters.GetRelativeParamValue(paramId);
            }
            else
            {
                Debug.Assert(false);
            }

            paramInfo.Label          = "";
            paramInfo.ShortLabel     = "";
            paramInfo.MinInteger     = VST_PARAM_MIN_VALUE;
            paramInfo.MaxInteger     = VST_PARAM_MAX_VALUE;
            paramInfo.LargeStepFloat = ((float)(VST_PARAM_MAX_VALUE - VST_PARAM_MIN_VALUE)) / 8;
            paramInfo.SmallStepFloat = ((float)(VST_PARAM_MAX_VALUE - VST_PARAM_MIN_VALUE)) / 128;
            paramInfo.StepFloat      = 0.03125f;
            VstParameterNormalizationInfo.AttachTo(paramInfo);

            return(paramInfo);
        }
예제 #9
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);
        }
    }
예제 #10
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);
        }
예제 #11
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);
        }
예제 #12
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);
        }
예제 #13
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);
        }
예제 #14
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);
        }
예제 #15
0
 /// <summary>
 /// Attaches a VstParameterNormalizationInfo instance to the parameter info.
 /// </summary>
 /// <param name="paramInfo">Must not be null.</param>
 /// <returns>Returns <paramref name="paramInfo"/> for fluent syntax.</returns>
 public static VstParameterInfo Normalize(this VstParameterInfo paramInfo)
 {
     VstParameterNormalizationInfo.AttachTo(paramInfo);
     return(paramInfo);
 }