/* set output gain accent */ public static void PutCompressorOutputGainAccent( CompressorSpecRec Spec, double Value, int AccentNum) { SetAccentMemberValue(ref Spec.OutputGainAccent, AccentNum, Value); }
/* set threshhold power accent */ public static void PutCompressorThreshPowerAccent( CompressorSpecRec Spec, double Value, int AccentNum) { SetAccentMemberValue(ref Spec.ThreshPowerAccent, AccentNum, Value); }
/* set decreasing gain attack rate (seconds per doubling) accent */ public static void PutCompressorAttackRateAccent( CompressorSpecRec Spec, double Value, int AccentNum) { SetAccentMemberValue(ref Spec.AttackRateAccent, AccentNum, Value); }
/* set limiting excess (above 1) for soft clipping accent */ public static void PutCompressorLimitingExcessAccent( CompressorSpecRec Spec, double Value, int AccentNum) { SetAccentMemberValue(ref Spec.LimitingExcessAccent, AccentNum, Value); }
/* set power estimator filter cutoff frequency accent */ public static void PutCompressorFilterFreqAccent( CompressorSpecRec Spec, double Value, int AccentNum) { SetAccentMemberValue(ref Spec.FilterCutoffAccent, AccentNum, Value); }
/* add a compressor to the spec list */ public static void AddCompressorToEffectSpecList( EffectSpecListRec EffectSpecList, CompressorSpecRec CompressorSpec, bool EnabledFlag) { AddGenericToEffectSpecList(EffectSpecList, EffectTypes.eCompressorEffect, CompressorSpec, EnabledFlag); }
/* get aggregated decreasing gain attack rate (seconds per doubling) info */ public static void GetCompressorAttackRateAgg( CompressorSpecRec Spec, out ScalarParamEvalRec ParamsOut) { InitScalarParamEval( Spec.AttackRate, ref Spec.AttackRateAccent, Spec.AttackRateFormula, out ParamsOut); }
/* get aggregated power estimator filter cutoff frequency info */ public static void GetCompressorFilterFreqAgg( CompressorSpecRec Spec, out ScalarParamEvalRec ParamsOut) { InitScalarParamEval( Spec.FilterCutoff, ref Spec.FilterCutoffAccent, Spec.FilterCutoffFormula, out ParamsOut); }
/* get aggregated limiting excess (above 1) for soft clipping info */ public static void GetCompressorLimitingExcessAgg( CompressorSpecRec Spec, out ScalarParamEvalRec ParamsOut) { InitScalarParamEval( Spec.LimitingExcess, ref Spec.LimitingExcessAccent, Spec.LimitingExcessFormula, out ParamsOut); }
/* get aggregated compression ratio info */ public static void GetCompressorRatioAgg( CompressorSpecRec Spec, out ScalarParamEvalRec ParamsOut) { InitScalarParamEval( Spec.Ratio, ref Spec.RatioAccent, Spec.RatioFormula, out ParamsOut); }
/* get aggregated threshhold power info */ public static void GetCompressorThreshPowerAgg( CompressorSpecRec Spec, out ScalarParamEvalRec ParamsOut) { InitScalarParamEval( Spec.ThreshPower, ref Spec.ThreshPowerAccent, Spec.ThreshPowerFormula, out ParamsOut); }
/* get aggregated output gain factor info */ public static void GetCompressorOutputGainAgg( CompressorSpecRec Spec, out ScalarParamEvalRec ParamsOut) { InitScalarParamEval( Spec.OutputGain, ref Spec.OutputGainAccent, Spec.OutputGainFormula, out ParamsOut); }
/* create new compressor specification record */ public static CompressorSpecRec NewCompressorSpec() { CompressorSpecRec Spec = new CompressorSpecRec(); Spec.InputGainEnvelope = NewEnvelope(); Spec.InputGainLFOs = NewLFOListSpecifier(); Spec.OutputGainEnvelope = NewEnvelope(); Spec.OutputGainLFOs = NewLFOListSpecifier(); Spec.NormalPowerEnvelope = NewEnvelope(); Spec.NormalPowerLFOs = NewLFOListSpecifier(); Spec.ThreshPowerEnvelope = NewEnvelope(); Spec.ThreshPowerLFOs = NewLFOListSpecifier(); Spec.RatioEnvelope = NewEnvelope(); Spec.RatioLFOs = NewLFOListSpecifier(); Spec.FilterCutoffEnvelope = NewEnvelope(); Spec.FilterCutoffLFOs = NewLFOListSpecifier(); Spec.DecayRateEnvelope = NewEnvelope(); Spec.DecayRateLFOs = NewLFOListSpecifier(); Spec.AttackRateEnvelope = NewEnvelope(); Spec.AttackRateLFOs = NewLFOListSpecifier(); Spec.LimitingExcessEnvelope = NewEnvelope(); Spec.LimitingExcessLFOs = NewLFOListSpecifier(); //InitializeAccentZero(out Spec.InputGainAccent); //InitializeAccentZero(out Spec.OutputGainAccent); //InitializeAccentZero(out Spec.NormalPowerAccent); //InitializeAccentZero(out Spec.ThreshPowerAccent); //InitializeAccentZero(out Spec.RatioAccent); //InitializeAccentZero(out Spec.FilterCutoffAccent); //InitializeAccentZero(out Spec.DecayRateAccent); //InitializeAccentZero(out Spec.AttackRateAccent); //InitializeAccentZero(out Spec.LimitingExcessAccent); Spec.InputGain = 1; Spec.OutputGain = 1; Spec.NormalPower = 1; Spec.ThreshPower = 1; Spec.Ratio = 10; Spec.FilterCutoff = 10; Spec.DecayRate = 1; Spec.AttackRate = .01; Spec.LimitingExcess = 1.5; Spec.PowerEstimatorMode = CompressorPowerEstType.eCompressPowerAbsVal; //Spec.InputGainFormula = null; //Spec.OutputGainFormula = null; //Spec.NormalPowerFormula = null; //Spec.ThreshPowerFormula = null; //Spec.RatioFormula = null; //Spec.FilterCutoffFormula = null; //Spec.DecayRateFormula = null; //Spec.AttackRateFormula = null; //Spec.LimitingExcessFormula = null; return(Spec); }
/* set power estimator filter cutoff frequency */ public static void PutCompressorFilterFreq( CompressorSpecRec Spec, double Cutoff, PcodeRec Formula) { #if DEBUG if (Spec.FilterCutoffFormula != null) { Debug.Assert(false); throw new ArgumentException(); } #endif Spec.FilterCutoffFormula = Formula; Spec.FilterCutoff = Cutoff; }
/* set threshhold power */ public static void PutCompressorThreshPower( CompressorSpecRec Spec, double Power, PcodeRec Formula) { #if DEBUG if (Spec.ThreshPowerFormula != null) { Debug.Assert(false); throw new ArgumentException(); } #endif Spec.ThreshPowerFormula = Formula; Spec.ThreshPower = Power; }
/* set decreasing gain attack rate (seconds per doubling) */ public static void PutCompressorAttackRate( CompressorSpecRec Spec, double Rate, PcodeRec Formula) { #if DEBUG if (Spec.AttackRateFormula != null) { Debug.Assert(false); throw new ArgumentException(); } #endif Spec.AttackRateFormula = Formula; Spec.AttackRate = Rate; }
/* set output gain factor */ public static void PutCompressorOutputGain( CompressorSpecRec Spec, double Gain, PcodeRec Formula) { #if DEBUG if (Spec.OutputGainFormula != null) { Debug.Assert(false); throw new ArgumentException(); } #endif Spec.OutputGainFormula = Formula; Spec.OutputGain = Gain; }
/* set limiting excess (above 1) for soft clipping */ public static void PutCompressorLimitingExcess( CompressorSpecRec Spec, double Limit, PcodeRec Formula) { #if DEBUG if (Spec.LimitingExcessFormula != null) { Debug.Assert(false); throw new ArgumentException(); } #endif Spec.LimitingExcessFormula = Formula; Spec.LimitingExcess = Limit; }
/* change the compressor power estimating mode */ public static void PutCompressorPowerEstimatorMode( CompressorSpecRec Spec, CompressorPowerEstType PowerMode) { #if DEBUG if ((PowerMode != CompressorPowerEstType.eCompressPowerAbsVal) && (PowerMode != CompressorPowerEstType.eCompressPowerRMS) && (PowerMode != CompressorPowerEstType.eCompressPowerPeak) && (PowerMode != CompressorPowerEstType.eCompressPowerpeaklookahead)) { Debug.Assert(false); throw new ArgumentException(); } #endif Spec.PowerEstimatorMode = PowerMode; }
/* get increasing gain decay rate (seconds per doubling) LFO list */ public static LFOListSpecRec GetCompressorDecayRateLFOList(CompressorSpecRec Spec) { return(Spec.DecayRateLFOs); }
/* get compression ratio envelope */ public static EnvelopeRec GetCompressorRatioEnvelope(CompressorSpecRec Spec) { return(Spec.RatioEnvelope); }
/* get power estimating mode for compressor */ public static CompressorPowerEstType GetCompressorPowerEstimatorMode(CompressorSpecRec Spec) { return(Spec.PowerEstimatorMode); }
/* get limiting excess (above 1) for soft clipping LFO list */ public static LFOListSpecRec GetCompressorLimitingExcessLFOList(CompressorSpecRec Spec) { return(Spec.LimitingExcessLFOs); }
/* get limiting excess (above 1) for soft clipping envelope */ public static EnvelopeRec GetCompressorLimitingExcessEnvelope(CompressorSpecRec Spec) { return(Spec.LimitingExcessEnvelope); }
/* get compression ratio LFO list */ public static LFOListSpecRec GetCompressorRatioLFOList(CompressorSpecRec Spec) { return(Spec.RatioLFOs); }
/* get power estimator filter cutoff frequency envelope */ public static EnvelopeRec GetCompressorFilterFreqEnvelope(CompressorSpecRec Spec) { return(Spec.FilterCutoffEnvelope); }
/* get decreasing gain attack rate (seconds per doubling) LFO list */ public static LFOListSpecRec GetCompressorAttackRateLFOList(CompressorSpecRec Spec) { return(Spec.AttackRateLFOs); }
/* get decreasing gain attack rate (seconds per doubling) envelope */ public static EnvelopeRec GetCompressorAttackRateEnvelope(CompressorSpecRec Spec) { return(Spec.AttackRateEnvelope); }
/* get power estimator filter cutoff frequency LFO list */ public static LFOListSpecRec GetCompressorFilterFreqLFOList(CompressorSpecRec Spec) { return(Spec.FilterCutoffLFOs); }
/* get increasing gain decay rate (seconds per doubling) envelope */ public static EnvelopeRec GetCompressorDecayRateEnvelope(CompressorSpecRec Spec) { return(Spec.DecayRateEnvelope); }