Beispiel #1
0
        /// <summary>
        /// Creates an instance of the CMixerExample unit operation.
        /// </summary>
        /// <remarks>
        /// This constructor demonstates the addition of a <see cref = "BooleanParameter"/>,
        /// <see cref = "IntegerParameter"/>, <see cref = "OptionParameter"/>,
        /// and a <see cref = "RealParameter"/> parameter to the parameter collection.
        /// In addition, the mixer unit has three <see cref = "UnitPort"/> ports
        /// added to the port collection. See the documentation for the
        /// <see cref = "MixerExample.Calculate"/> method for details on its implementation.
        /// </remarks>
        /// <example>
        /// An example of how to create a unit operation. Parameter and port objects are created
        /// and added the their respective collections. Ports are implemented by the <see cref="UnitPort"/>
        /// class and are placed in the Port Collection. Parameters are added to the Parameter Collection
        /// class. The available parameter classes are <see cref="RealParameter"/>, <see cref="IntegerParameter"/>,
        /// <see cref="BooleanParameter"/>, and <see cref="OptionParameter"/>.
        /// <code>
        /// public MixerExample()
        /// {
        ///     // Add Ports using the UnitPort constructor.
        ///     this.Ports.Add(new UnitPort("Inlet Port1", "Test Inlet Port1", CapePortDirection.CAPE_INLET, CapePortType.CAPE_MATERIAL));
        ///     this.Ports.Add(new UnitPort("Inlet Port2", "Test Inlet Port2", CapePortDirection.CAPE_INLET, CapePortType.CAPE_MATERIAL));
        ///     this.Ports.Add(new UnitPort("Outlet Port", "Test Outlet Port", CapePortDirection.CAPE_OUTLET, CapePortType.CAPE_MATERIAL));
        ///
        ///     // Add a real valued parameter using the RealParameter  constructor.
        ///     RealParameter real = new RealParameter("PressureDrop", "Drop in pressure between the outlet from the mixer and the pressure of the lower pressure inlet.", 0.0, 0.0, 0.0, 100000000.0, CapeParamMode.CAPE_INPUT, "Pa");
        ///     this.Parameters.Add(real);
        ///
        ///     // Add a real valued parameter using the IntegerParameter  constructor.
        ///     this.Parameters.Add(new IntegerParameter("Integer Parameter", "This is an example of an integer parameter.", 12, 12, 0, 100, CapeParamMode.CAPE_INPUT_OUTPUT));
        ///
        ///     // Add a real valued parameter using the BooleanParameter  constructor.
        ///     this.Parameters.Add(new BooleanParameter("Boolean Parameter", "This is an example of a boolean parameter.", false, false, CapeOpen.CapeParamMode.CAPE_INPUT_OUTPUT));
        ///
        ///     // Create an array of strings for the option parameter restricted value list.
        ///     String[] options = { "Test Value", "Another Value" };
        ///
        ///     // Add a string valued parameter using the OptionParameter constructor.
        ///     this.Parameters.Add(new OptionParameter("OptionParameter", "This is an example of an option parameter.", "Test Value", "Test Value", options, true, CapeParamMode.CAPE_INPUT_OUTPUT));
        ///
        ///     // Add an available report.
        ///     this.Reports.Add("Report 2");
        /// }
        /// </code>
        /// </example>
        public MixerExample()
        {
            // Add Ports using the UnitPort constructor.
            this.Ports.Add(new UnitPort("Inlet Port1", "Test Inlet Port1", CapePortDirection.CAPE_INLET, CapePortType.CAPE_MATERIAL));
            this.Ports.Add(new UnitPort("Inlet Port2", "Test Inlet Port2", CapePortDirection.CAPE_INLET, CapePortType.CAPE_MATERIAL));
            this.Ports.Add(new UnitPort("Outlet Port", "Test Outlet Port", CapePortDirection.CAPE_OUTLET, CapePortType.CAPE_MATERIAL));

            // Add a real valued parameter using the RealParameter  constructor.
            RealParameter real = new RealParameter("PressureDrop", "Drop in pressure between the outlet from the mixer and the pressure of the lower pressure inlet.", 0.0, 0.0, 0.0, 100000000.0, CapeParamMode.CAPE_INPUT, "Pa");

            this.Parameters.Add(real);

            // Add a real valued parameter using the IntegerParameter  constructor.
            this.Parameters.Add(new IntegerParameter("Integer Parameter", "This is an example of an integer parameter.", 12, 12, 0, 100, CapeParamMode.CAPE_INPUT_OUTPUT));

            // Add a real valued parameter using the BooleanParameter  constructor.
            this.Parameters.Add(new BooleanParameter("Boolean Parameter", "This is an example of a boolean parameter.", false, false, CapeOpen.CapeParamMode.CAPE_INPUT_OUTPUT));

            // Create an array of strings for the option parameter restricted value list.
            String[] options = { "Test Value", "Another Value" };

            // Add a string valued parameter using the OptionParameter constructor.
            this.Parameters.Add(new OptionParameter("OptionParameter", "This is an example of an option parameter.", "Test Value", "Test Value", options, true, CapeParamMode.CAPE_INPUT_OUTPUT));

            // Add an available report.
            this.Reports.Add("Report 2");
        }
Beispiel #2
0
        public override IEnumerable <Parameter> CreateParameters(string parameterPrefix)
        {
            Power    = new EnumParameter <EPowerStatus>(parameterPrefix + "Pwr", "Power", "", false);
            Treshold = new RealParameter(parameterPrefix + "Trshd", "Treshold", "Trshd", 0.1, 1, 0.01);

            return(new List <Parameter> {
                Power, Treshold
            });
        }
Beispiel #3
0
 public override IEnumerable <Parameter> CreateParameters(string parameterPrefix)
 {
     FilterType      = new EnumParameter <EFilterPass>(parameterPrefix + "Pass", "Filter Type", "Filter", false);
     CutoffFrequency = new RealParameter(parameterPrefix + "Cutoff", "Filter Cutoff Frequency", "Cutoff", 0.0, 0.99, 0.01);
     Resonance       = new RealParameter(parameterPrefix + "Res", "Filter Resonance", "Resonance", 0.0, 1.0, 0.01);
     EnvAmount       = new RealParameter(parameterPrefix + "Amnt", "Envelope Amount", "%", 0.01, 0.99, 0.01, false);
     return(new List <Parameter> {
         FilterType, CutoffFrequency, Resonance, EnvAmount
     });
 }
Beispiel #4
0
        public override IEnumerable <Parameter> CreateParameters(string parameterPrefix)
        {
            Power          = new BypassParameter(parameterPrefix + "Pwr", "Power", Processor, "Pwr", false);
            OscillatorsMix = new RealParameter(parameterPrefix + "Mix", "Oscillators Mix", "Mix", 0, 1, 0.01);
            OscillatorsMix.SetDefaultValue(0.5);

            return(new List <Parameter> {
                Power, OscillatorsMix
            });
        }
Beispiel #5
0
        public override IEnumerable <Parameter> CreateParameters(string parameterPrefix)
        {
            Power    = new EnumParameter <EPowerStatus>(parameterPrefix + "Pwr", "Power", "", false);
            DryLevel = new RealParameter(parameterPrefix + "Dry", "Dry Level", "Dry", 0, 1, 0.01);
            Time     = new RealParameter(parameterPrefix + "Sec", "Delay Time", "Time", 0, 5, 0.01);
            Feedback = new RealParameter(parameterPrefix + "Fbck", "Feedback", "Feedback", 0, 1, 0.01);

            return(new List <Parameter> {
                Power, DryLevel, Time, Feedback
            });
        }
Beispiel #6
0
        public override IEnumerable <Parameter> CreateParameters(string parameterPrefix)
        {
            Attack  = new RealParameter(parameterPrefix + "Atk", "Envelope Attack", "", 0.01, 4, 0.01, false);
            Decay   = new RealParameter(parameterPrefix + "Dec", "Envelope Decay", "", 0.01, 2, 0.01, false);
            Sustain = new RealParameter(parameterPrefix + "Stn", "Envelope Sustain", "", 0, 1, 0.01, false);
            Release = new RealParameter(parameterPrefix + "Rel", "Envelope Release", "", 0.01, 1, 0.01, false);

            return(new List <Parameter> {
                Attack, Decay, Sustain, Release
            });
        }
Beispiel #7
0
        public override IEnumerable <Parameter> CreateParameters(string parameterPrefix)
        {
            OscillatorType  = new EnumParameter <EOscillatorType>(parameterPrefix + "Osc", "LFO Type", "Osc", false);
            Frequency       = new FrequencyParameter(parameterPrefix + "Frq", "LFO Frequency", "Frq", 0.01, 1000);
            MatchKey        = new BooleanParameter(parameterPrefix + "Mtch", "LFO Phase Key Link", "Match", false);
            Gain            = new RealParameter(parameterPrefix + "Gain", "LFO Gain", "Gain", 0, 1, 0.01, false);
            TargetParameter = new ParameterName(parameterPrefix, Processor.PluginController.ParametersManager);

            TargetParameter.OnValueChange += TargetParameterNumberOnValueChange;

            return(new List <Parameter> {
                OscillatorType, Frequency, MatchKey, Gain, TargetParameter
            });
        }
Beispiel #8
0
        public override IEnumerable <Parameter> CreateParameters(string parameterPrefix)
        {
            Volume         = new VolumeParameter(parameterPrefix + "Vol", "Oscillator Volume");
            OscillatorType = new EnumParameter <WaveGenerator.EOscillatorType>(parameterPrefix + "Osc", "Oscillator Type", "Osc", false);

            Fine = new RealParameter(parameterPrefix + "Fine", "Oscillator pitch", "Fine", -2, 2, 0.01);
            Fine.SetDefaultValue(0);

            Panning = new RealParameter(parameterPrefix + "Pan", "Oscillator Panorama", "", 0, 1, 0.01);
            Panning.SetDefaultValue(0.5);

            return(new List <Parameter> {
                Volume, OscillatorType, Fine, Panning
            });
        }
Beispiel #9
0
        public override IEnumerable <Parameter> CreateParameters()
        {
            var parameters = new List <Parameter>();

            parameters.Add(Power          = new BypassParameter("CPwr", "Power", this, "Pwr", false));
            parameters.Add(OscillatorsMix = new RealParameter("CMix", "Oscillators Mix", "Mix", 0, 1, 0.01));
            parameters.Add(MasterVolume   = new VolumeParameter("MVol", "Master Volume", false));
            parameters.Add(Unison         = new EnumParameter <EPowerStatus>("UPwr", "Unison", "Pwr", false));
            OscillatorsMix.SetDefaultValue(0.5);
            parameters.AddRange(OscillatorA.CreateParameters("A"));
            parameters.AddRange(OscillatorB.CreateParameters("B"));
            parameters.AddRange(EnvelopeSound.CreateParameters("EM"));
            parameters.AddRange(FilterEnv.CreateParameters("EF"));
            parameters.AddRange(Filter.CreateParameters("F"));
            parameters.AddRange(Distortion.CreateParameters("D"));
            parameters.AddRange(LFOModifierA.CreateParameters("LA"));
            parameters.AddRange(LFOModifierB.CreateParameters("LB"));

            return(parameters);
        }
        //GlowContainer IElementVisitor<ElementToGlowOptions, GlowContainer>.Visit(EnumParameter element, ElementToGlowOptions state)
        //{
        //    var glow = new GlowQualifiedParameter(element.Path);
        //    var dirFieldMask = state.DirFieldMask;

        //    if (dirFieldMask.HasBits(GlowFieldFlags.Identifier))
        //        glow.Identifier = element.Identifier;

        //    if (dirFieldMask.HasBits(GlowFieldFlags.Description)
        //        && String.IsNullOrEmpty(element.Description) == false)
        //        glow.Description = element.Description;

        //    if (dirFieldMask.HasBits(GlowFieldFlags.Value))
        //        glow.Value = new GlowValue(element.Value);

        //    if (dirFieldMask == GlowFieldFlags.All)
        //    {
        //        glow.Minimum = new GlowMinMax(element.Minimum);
        //        glow.Maximum = new GlowMinMax(element.Maximum);
        //        glow.Enumeration = element.Enumeration;

        //        if (element.IsWritable)
        //            glow.Access = GlowAccess.ReadWrite;
        //    }

        //    if ((dirFieldMask == GlowFieldFlags.All)
        //        && String.IsNullOrEmpty(element.SchemaIdentifier) == false)
        //        glow.SchemaIdentifiers = element.SchemaIdentifier;

        //    return glow;
        //}

        GlowContainer Model.IElementVisitor <ElementToGlowOptions, GlowContainer> .Visit(RealParameter element, ElementToGlowOptions state)
        {
            var glow         = new GlowQualifiedParameter(element.Path);
            var dirFieldMask = state.DirFieldMask;

            if (dirFieldMask.HasBits(GlowFieldFlags.Identifier))
            {
                glow.Identifier = element.Identifier;
            }

            if (dirFieldMask.HasBits(GlowFieldFlags.Description) &&
                String.IsNullOrEmpty(element.Description) == false)
            {
                glow.Description = element.Description;
            }

            if (dirFieldMask.HasBits(GlowFieldFlags.Value))
            {
                glow.Value = new GlowValue(element.Value);
            }

            if (dirFieldMask == GlowFieldFlags.All)
            {
                glow.Minimum = new GlowMinMax(element.Minimum);
                glow.Maximum = new GlowMinMax(element.Maximum);

                if (element.IsWritable)
                {
                    glow.Access = GlowAccess.ReadWrite;
                }
            }

            if ((dirFieldMask == GlowFieldFlags.All) &&
                String.IsNullOrEmpty(element.SchemaIdentifier) == false)
            {
                glow.SchemaIdentifiers = element.SchemaIdentifier;
            }

            return(glow);
        }
        //object IElementVisitor<object, object>.Visit(EnumParameter element, object state)
        //{
        //    _onParameter?.Invoke(element);
        //    return null;
        //}

        object IElementVisitor <object, object> .Visit(RealParameter element, object state)
        {
            _onParameter?.Invoke(element);
            return(null);
        }
Beispiel #12
0
        public Dictionary <List <Entity>, IParameter> executePreprocessing(int newSelectionId, int oldSelectionId, int oldParamId, string prepType, int parameterPosition, int newParamId)
        {
            models.Parameter oldParam = ((models.Parameter)DatabaseManager.SharedManager.entityById(oldParamId, typeof(models.Parameter)));
            TypeParameter    type;

            switch (prepType)
            {
            case "Линейная нормализация 1 (к float)":
                type = TypeParameter.Real;
                break;

            case "Нелинейная нормализация 2 (к float)":
                type = TypeParameter.Real;
                break;

            case "нормализация 3 (к int)":
                type = TypeParameter.Int;
                break;

            case "бинаризация":
                type = TypeParameter.Int;
                break;

            case "без предобработки":
                type = oldParam.Type;
                break;

            default:
                type = TypeParameter.Real;
                break;
            }

            List <string> values     = new List <string>();
            List <Entity> valueParam = new List <Entity>();

            List <Entity> oldSelectionRows = SelectionRow.where (new Query("SelectionRow").addTypeQuery(TypeQuery.select)
                                                                 .addCondition("SelectionID", "=", oldSelectionId.ToString()), typeof(SelectionRow));

            int index = 0;

            foreach (Entity entity in oldSelectionRows)
            {
                int           selectionRowId = entity.ID;
                List <Entity> list           = ValueParameter.where (new Query("ValueParameter").addTypeQuery(TypeQuery.select)
                                                                     .addCondition("ParameterID", "=", oldParamId.ToString()).
                                                                     addCondition("SelectionRowID", "=", selectionRowId.ToString()), typeof(ValueParameter));
                valueParam = valueParam.Concat(list).ToList();
                values.Add(((ValueParameter)valueParam[index]).Value);
                index++;
            }

            List <Entity> valuesForParameter = new List <Entity>();

            IParameter p = null;

            switch (prepType)
            {
            case "Линейная нормализация 1 (к float)":
            case "Нелинейная нормализация 2 (к float)":
            case "нормализация 3 (к int)":
                if (oldParam.Type == TypeParameter.Real)
                {
                    p = new RealParameter(values);
                    valuesForParameter = normalizeValues(valueParam, p, newParamId, newSelectionId, prepType);
                }
                else if (oldParam.Type == TypeParameter.Int)
                {
                    p = new IntegerParameter(values);
                    valuesForParameter = normalizeValues(valueParam, p, newParamId, newSelectionId, prepType);
                }
                else if (oldParam.Type == TypeParameter.Enum)
                {
                    p = new EnumeratedParameter(values);
                    valuesForParameter = normalizeValues(valueParam, p, newParamId, newSelectionId, prepType);
                }
                break;

            case "бинаризация":
                valuesForParameter = binarizationValues(valueParam, newParamId, newSelectionId, parameterPosition);
                break;

            case "без предобработки":
                valuesForParameter = processWithoutPreprocessing(valueParam, newParamId, newSelectionId);
                break;
            }
            Dictionary <List <Entity>, IParameter> res = new Dictionary <List <Entity>, IParameter>();

            res.Add(valuesForParameter, p);
            return(res);
        }