Ejemplo n.º 1
0
 /* add a single filter to the list */
 public static void AppendFilterToSpec(
     FilterSpecRec Filter,
     OneFilterRec Spec)
 {
     Array.Resize(ref Filter.List, Filter.List.Length + 1);
     Filter.List[Filter.List.Length - 1] = Spec;
 }
Ejemplo n.º 2
0
 /* add a parallel filter array to the spec list */
 public static void AddFilterToEffectSpecList(
     EffectSpecListRec EffectSpecList,
     FilterSpecRec FilterSpec,
     bool EnabledFlag)
 {
     AddGenericToEffectSpecList(EffectSpecList, EffectTypes.eFilterEffect, FilterSpec, EnabledFlag);
 }
Ejemplo n.º 3
0
        /* create a new parallel filter specification */
        public static FilterSpecRec NewFilterSpec()
        {
            FilterSpecRec Filter = new FilterSpecRec();

            Filter.List = new OneFilterRec[0];

            return(Filter);
        }
Ejemplo n.º 4
0
 /* get aggregate output multiplier info for a filter */
 public static void GetFilterOutputMultiplierAgg(
     FilterSpecRec Filter,
     int Index,
     out ScalarParamEvalRec ParamsOut)
 {
     InitScalarParamEval(
         Filter.List[Index].OutputMultiplier,
         ref Filter.List[Index].OutputMultiplierAccent,
         Filter.List[Index].OutputMultiplierFormula,
         out ParamsOut);
 }
Ejemplo n.º 5
0
 /* get aggregate gain info for a filter */
 public static void GetFilterGainAgg(
     FilterSpecRec Filter,
     int Index,
     out ScalarParamEvalRec ParamsOut)
 {
     InitScalarParamEval(
         Filter.List[Index].Gain,
         ref Filter.List[Index].GainAccent,
         Filter.List[Index].GainFormula,
         out ParamsOut);
 }
Ejemplo n.º 6
0
 /* get aggregate bandwidth (or slope) info for a filter */
 public static void GetFilterBandwidthOrSlopeAgg(
     FilterSpecRec Filter,
     int Index,
     out ScalarParamEvalRec ParamsOut)
 {
     InitScalarParamEval(
         Filter.List[Index].BandwidthOrSlope,
         ref Filter.List[Index].BandwidthOrSlopeAccent,
         Filter.List[Index].BandwidthOrSlopeFormula,
         out ParamsOut);
 }
Ejemplo n.º 7
0
        public static bool GetFilterBroken(
            FilterSpecRec Filter,
            int Index)
        {
#if DEBUG
            if (Filter.List[Index].FilterType != FilterTypes.eFilterResonantLowpass2)
            {
                Debug.Assert(false);
                throw new InvalidOperationException();
            }
#endif
            return(Filter.List[Index].Broken);
        }
Ejemplo n.º 8
0
 public static int GetFilterBandpassOrder(
     FilterSpecRec Filter,
     int Index)
 {
     return(Filter.List[Index].BandpassOrder);
 }
Ejemplo n.º 9
0
 public static LFOListSpecRec GetFilterGainLFO(
     FilterSpecRec Filter,
     int Index)
 {
     return(Filter.List[Index].GainLFO);
 }
Ejemplo n.º 10
0
 public static LFOListSpecRec GetFilterOutputLFO(
     FilterSpecRec Filter,
     int Index)
 {
     return(Filter.List[Index].OutputLFO);
 }
Ejemplo n.º 11
0
 public static LFOListSpecRec GetFilterBandwidthOrSlopeLFO(
     FilterSpecRec Filter,
     int Index)
 {
     return(Filter.List[Index].BandwidthOrSlopeLFO);
 }
Ejemplo n.º 12
0
 public static LFOListSpecRec GetFilterCutoffLFO(
     FilterSpecRec Filter,
     int Index)
 {
     return(Filter.List[Index].CutoffLFO);
 }
Ejemplo n.º 13
0
 public static EnvelopeRec GetFilterGainEnvelope(
     FilterSpecRec Filter,
     int Index)
 {
     return(Filter.List[Index].GainEnvelope);
 }
Ejemplo n.º 14
0
 public static EnvelopeRec GetFilterBandwidthOrSlopeEnvelope(
     FilterSpecRec Filter,
     int Index)
 {
     return(Filter.List[Index].BandwidthOrSlopeEnvelope);
 }
Ejemplo n.º 15
0
 /* get the number of filters */
 public static int GetNumFiltersInSpec(FilterSpecRec Filter)
 {
     return(Filter.List.Length);
 }
Ejemplo n.º 16
0
 public static FilterScalings GetFilterScalingMode(
     FilterSpecRec Filter,
     int Index)
 {
     return(Filter.List[Index].FilterScaling);
 }
Ejemplo n.º 17
0
 /* get which channel to apply a filter to */
 public static FilterChannels GetFilterChannel(
     FilterSpecRec Filter,
     int Index)
 {
     return(Filter.List[Index].Channel);
 }
Ejemplo n.º 18
0
 /* get a filter type for the specified filter spec */
 public static FilterTypes GetFilterType(
     FilterSpecRec Filter,
     int Index)
 {
     return(Filter.List[Index].FilterType);
 }
Ejemplo n.º 19
0
 /* get a filter specification record */
 public static OneFilterRec GetSingleFilterSpec(
     FilterSpecRec Filter,
     int Index)
 {
     return(Filter.List[Index]);
 }
        /* check filter effect */
        public static SynthErrorCodes CheckFilterEffectForUnreferencedSamples(
            FilterSpecRec FilterEffect,
            CheckUnrefParamRec Param)
        {
            int Limit = GetNumFiltersInSpec(FilterEffect);

            for (int Scan = 0; Scan < Limit; Scan += 1)
            {
                SynthErrorCodes Error;

                Error = CheckEnvelopeForUnreferencedSamples(
                    GetFilterCutoffEnvelope(FilterEffect, Scan),
                    Param);
                if (Error != SynthErrorCodes.eSynthDone)
                {
                    return(Error);
                }

                Error = CheckEnvelopeForUnreferencedSamples(
                    GetFilterBandwidthOrSlopeEnvelope(FilterEffect, Scan),
                    Param);
                if (Error != SynthErrorCodes.eSynthDone)
                {
                    return(Error);
                }

                Error = CheckEnvelopeForUnreferencedSamples(
                    GetFilterOutputEnvelope(FilterEffect, Scan),
                    Param);
                if (Error != SynthErrorCodes.eSynthDone)
                {
                    return(Error);
                }

                Error = CheckEnvelopeForUnreferencedSamples(
                    GetFilterGainEnvelope(FilterEffect, Scan),
                    Param);
                if (Error != SynthErrorCodes.eSynthDone)
                {
                    return(Error);
                }

                Error = CheckLFOListForUnreferencedSamples(
                    GetFilterCutoffLFO(FilterEffect, Scan),
                    Param);
                if (Error != SynthErrorCodes.eSynthDone)
                {
                    return(Error);
                }

                Error = CheckLFOListForUnreferencedSamples(
                    GetFilterBandwidthOrSlopeLFO(FilterEffect, Scan),
                    Param);
                if (Error != SynthErrorCodes.eSynthDone)
                {
                    return(Error);
                }

                Error = CheckLFOListForUnreferencedSamples(
                    GetFilterOutputLFO(FilterEffect, Scan),
                    Param);
                if (Error != SynthErrorCodes.eSynthDone)
                {
                    return(Error);
                }

                Error = CheckLFOListForUnreferencedSamples(
                    GetFilterGainLFO(FilterEffect, Scan),
                    Param);
                if (Error != SynthErrorCodes.eSynthDone)
                {
                    return(Error);
                }
            }

            return(SynthErrorCodes.eSynthDone);
        }