Ejemplo n.º 1
0
 /* set output gain accent */
 public static void PutCompressorOutputGainAccent(
     CompressorSpecRec Spec,
     double Value,
     int AccentNum)
 {
     SetAccentMemberValue(ref Spec.OutputGainAccent, AccentNum, Value);
 }
Ejemplo n.º 2
0
 /* set threshhold power accent */
 public static void PutCompressorThreshPowerAccent(
     CompressorSpecRec Spec,
     double Value,
     int AccentNum)
 {
     SetAccentMemberValue(ref Spec.ThreshPowerAccent, AccentNum, Value);
 }
Ejemplo n.º 3
0
 /* 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);
 }
Ejemplo n.º 4
0
 /* 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);
 }
Ejemplo n.º 5
0
 /* set power estimator filter cutoff frequency accent */
 public static void PutCompressorFilterFreqAccent(
     CompressorSpecRec Spec,
     double Value,
     int AccentNum)
 {
     SetAccentMemberValue(ref Spec.FilterCutoffAccent, AccentNum, Value);
 }
Ejemplo n.º 6
0
 /* add a compressor to the spec list */
 public static void AddCompressorToEffectSpecList(
     EffectSpecListRec EffectSpecList,
     CompressorSpecRec CompressorSpec,
     bool EnabledFlag)
 {
     AddGenericToEffectSpecList(EffectSpecList, EffectTypes.eCompressorEffect, CompressorSpec, EnabledFlag);
 }
Ejemplo n.º 7
0
 /* 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);
 }
Ejemplo n.º 8
0
 /* 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);
 }
Ejemplo n.º 9
0
 /* 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);
 }
Ejemplo n.º 10
0
 /* get aggregated compression ratio info */
 public static void GetCompressorRatioAgg(
     CompressorSpecRec Spec,
     out ScalarParamEvalRec ParamsOut)
 {
     InitScalarParamEval(
         Spec.Ratio,
         ref Spec.RatioAccent,
         Spec.RatioFormula,
         out ParamsOut);
 }
Ejemplo n.º 11
0
 /* get aggregated threshhold power info */
 public static void GetCompressorThreshPowerAgg(
     CompressorSpecRec Spec,
     out ScalarParamEvalRec ParamsOut)
 {
     InitScalarParamEval(
         Spec.ThreshPower,
         ref Spec.ThreshPowerAccent,
         Spec.ThreshPowerFormula,
         out ParamsOut);
 }
Ejemplo n.º 12
0
 /* 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);
 }
Ejemplo n.º 13
0
        /* 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);
        }
Ejemplo n.º 14
0
        /* 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;
        }
Ejemplo n.º 15
0
        /* 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;
        }
Ejemplo n.º 16
0
        /* 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;
        }
Ejemplo n.º 17
0
        /* 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;
        }
Ejemplo n.º 18
0
        /* 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;
        }
Ejemplo n.º 19
0
        /* 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;
        }
Ejemplo n.º 20
0
 /* get increasing gain decay rate (seconds per doubling) LFO list */
 public static LFOListSpecRec GetCompressorDecayRateLFOList(CompressorSpecRec Spec)
 {
     return(Spec.DecayRateLFOs);
 }
Ejemplo n.º 21
0
 /* get compression ratio envelope */
 public static EnvelopeRec GetCompressorRatioEnvelope(CompressorSpecRec Spec)
 {
     return(Spec.RatioEnvelope);
 }
Ejemplo n.º 22
0
 /* get power estimating mode for compressor */
 public static CompressorPowerEstType GetCompressorPowerEstimatorMode(CompressorSpecRec Spec)
 {
     return(Spec.PowerEstimatorMode);
 }
Ejemplo n.º 23
0
 /* get limiting excess (above 1) for soft clipping LFO list */
 public static LFOListSpecRec GetCompressorLimitingExcessLFOList(CompressorSpecRec Spec)
 {
     return(Spec.LimitingExcessLFOs);
 }
Ejemplo n.º 24
0
 /* get limiting excess (above 1) for soft clipping envelope */
 public static EnvelopeRec GetCompressorLimitingExcessEnvelope(CompressorSpecRec Spec)
 {
     return(Spec.LimitingExcessEnvelope);
 }
Ejemplo n.º 25
0
 /* get compression ratio LFO list */
 public static LFOListSpecRec GetCompressorRatioLFOList(CompressorSpecRec Spec)
 {
     return(Spec.RatioLFOs);
 }
Ejemplo n.º 26
0
 /* get power estimator filter cutoff frequency envelope */
 public static EnvelopeRec GetCompressorFilterFreqEnvelope(CompressorSpecRec Spec)
 {
     return(Spec.FilterCutoffEnvelope);
 }
Ejemplo n.º 27
0
 /* get decreasing gain attack rate (seconds per doubling) LFO list */
 public static LFOListSpecRec GetCompressorAttackRateLFOList(CompressorSpecRec Spec)
 {
     return(Spec.AttackRateLFOs);
 }
Ejemplo n.º 28
0
 /* get decreasing gain attack rate (seconds per doubling) envelope */
 public static EnvelopeRec GetCompressorAttackRateEnvelope(CompressorSpecRec Spec)
 {
     return(Spec.AttackRateEnvelope);
 }
Ejemplo n.º 29
0
 /* get power estimator filter cutoff frequency LFO list */
 public static LFOListSpecRec GetCompressorFilterFreqLFOList(CompressorSpecRec Spec)
 {
     return(Spec.FilterCutoffLFOs);
 }
Ejemplo n.º 30
0
 /* get increasing gain decay rate (seconds per doubling) envelope */
 public static EnvelopeRec GetCompressorDecayRateEnvelope(CompressorSpecRec Spec)
 {
     return(Spec.DecayRateEnvelope);
 }