/* 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; }
/* 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); }
/* create a new parallel filter specification */ public static FilterSpecRec NewFilterSpec() { FilterSpecRec Filter = new FilterSpecRec(); Filter.List = new OneFilterRec[0]; return(Filter); }
/* 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); }
/* 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); }
/* 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); }
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); }
public static int GetFilterBandpassOrder( FilterSpecRec Filter, int Index) { return(Filter.List[Index].BandpassOrder); }
public static LFOListSpecRec GetFilterGainLFO( FilterSpecRec Filter, int Index) { return(Filter.List[Index].GainLFO); }
public static LFOListSpecRec GetFilterOutputLFO( FilterSpecRec Filter, int Index) { return(Filter.List[Index].OutputLFO); }
public static LFOListSpecRec GetFilterBandwidthOrSlopeLFO( FilterSpecRec Filter, int Index) { return(Filter.List[Index].BandwidthOrSlopeLFO); }
public static LFOListSpecRec GetFilterCutoffLFO( FilterSpecRec Filter, int Index) { return(Filter.List[Index].CutoffLFO); }
public static EnvelopeRec GetFilterGainEnvelope( FilterSpecRec Filter, int Index) { return(Filter.List[Index].GainEnvelope); }
public static EnvelopeRec GetFilterBandwidthOrSlopeEnvelope( FilterSpecRec Filter, int Index) { return(Filter.List[Index].BandwidthOrSlopeEnvelope); }
/* get the number of filters */ public static int GetNumFiltersInSpec(FilterSpecRec Filter) { return(Filter.List.Length); }
public static FilterScalings GetFilterScalingMode( FilterSpecRec Filter, int Index) { return(Filter.List[Index].FilterScaling); }
/* get which channel to apply a filter to */ public static FilterChannels GetFilterChannel( FilterSpecRec Filter, int Index) { return(Filter.List[Index].Channel); }
/* get a filter type for the specified filter spec */ public static FilterTypes GetFilterType( FilterSpecRec Filter, int Index) { return(Filter.List[Index].FilterType); }
/* 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); }