コード例 #1
0
 /* append tap to list in delay line */
 public static void AppendTapToDelayEffect(
     DelayEffectRec DelaySpec,
     DelayTapRec Tap)
 {
     Array.Resize(ref DelaySpec.List, DelaySpec.List.Length + 1);
     DelaySpec.List[DelaySpec.List.Length - 1] = Tap;
 }
コード例 #2
0
 public static void SetDelayTapFilterCutoffAccent(
     DelayTapRec Tap,
     double Value,
     int AccentNumber)
 {
     SetAccentMemberValue(ref Tap.FilterCutoffAccent, AccentNumber, Value);
 }
コード例 #3
0
 public static void SetDelayTapTargetTimeAccent(
     DelayTapRec Tap,
     double Value,
     int AccentNumber)
 {
     SetAccentMemberValue(ref Tap.TargetTimeAccent, AccentNumber, Value);
 }
コード例 #4
0
 public static void SetDelayTapScaleAccent(
     DelayTapRec Tap,
     double Value,
     int AccentNumber)
 {
     SetAccentMemberValue(ref Tap.ScaleFactorAccent, AccentNumber, Value);
 }
コード例 #5
0
        /* create a new tap record */
        public static DelayTapRec NewDelayTap()
        {
            DelayTapRec Tap = new DelayTapRec();

            Tap.SourceTimeEnvelope  = NewEnvelope();
            Tap.TargetTimeEnvelope  = NewEnvelope();
            Tap.ScaleFactorEnvelope = NewEnvelope();
            Tap.SourceTimeLFO       = NewLFOListSpecifier();
            Tap.TargetTimeLFO       = NewLFOListSpecifier();
            Tap.ScaleFactorLFO      = NewLFOListSpecifier();
            Tap.CutoffEnvelope      = NewEnvelope();
            Tap.CutoffLFO           = NewLFOListSpecifier();
            //InitializeAccentZero(out Tap.SourceTimeAccent);
            //InitializeAccentZero(out Tap.TargetTimeAccent);
            //InitializeAccentZero(out Tap.ScaleFactorAccent);
            //InitializeAccentZero(out Tap.FilterCutoffAccent);
            Tap.SourceTap = DelayChannelType.eTapMonoChannel;
            //Tap.SourceTime = 0;
            Tap.TargetTap = DelayChannelType.eTapMonoChannel;
            //Tap.TargetTime = 0;
            //Tap.ScaleFactor = 0;
            //Tap.FilterEnable = false;
            //Tap.FilterCutoff = 0;
            //Tap.Interpolate = false;
            //Tap.SourceTimeFormula = null;
            //Tap.TargetTimeFormula = null;
            //Tap.ScaleFactorFormula = null;
            //Tap.FilterCutoffFormula = null;

            return(Tap);
        }
コード例 #6
0
        public static void GetDelayTapFilterCutoffAgg(
            DelayEffectRec DelaySpec,
            int Index,
            out ScalarParamEvalRec ParamsOut)
        {
            DelayTapRec Tap = DelaySpec.List[Index];

            InitScalarParamEval(
                Tap.FilterCutoff,
                ref Tap.FilterCutoffAccent,
                Tap.FilterCutoffFormula,
                out ParamsOut);
        }
コード例 #7
0
        public static void GetDelayTapScaleAgg(
            DelayEffectRec DelaySpec,
            int Index,
            out ScalarParamEvalRec ParamsOut)
        {
            DelayTapRec Tap = DelaySpec.List[Index];

            InitScalarParamEval(
                Tap.ScaleFactor,
                ref Tap.ScaleFactorAccent,
                Tap.ScaleFactorFormula,
                out ParamsOut);
        }
コード例 #8
0
        public static void GetDelayTapTargetTimeAgg(
            DelayEffectRec DelaySpec,
            int Index,
            out ScalarParamEvalRec ParamsOut)
        {
            DelayTapRec Tap = DelaySpec.List[Index];

            InitScalarParamEval(
                Tap.TargetTime,
                ref Tap.TargetTimeAccent,
                Tap.TargetTimeFormula,
                out ParamsOut);
        }
コード例 #9
0
        public static void SetDelayTapFilterCutoff(
            DelayTapRec Tap,
            double Cutoff,
            PcodeRec Formula)
        {
#if DEBUG
            if (Tap.FilterCutoffFormula != null)
            {
                Debug.Assert(false);
                throw new ArgumentException();
            }
#endif
            Tap.FilterCutoffFormula = Formula;
            Tap.FilterCutoff        = Cutoff;
        }
コード例 #10
0
        public static void SetDelayTapScale(
            DelayTapRec Tap,
            double Scale,
            PcodeRec Formula)
        {
#if DEBUG
            if (Tap.ScaleFactorFormula != null)
            {
                Debug.Assert(false);
                throw new ArgumentException();
            }
#endif
            Tap.ScaleFactorFormula = Formula;
            Tap.ScaleFactor        = Scale;
        }
コード例 #11
0
        public static void SetDelayTapTargetTime(
            DelayTapRec Tap,
            double Time,
            PcodeRec Formula)
        {
#if DEBUG
            if (Tap.TargetTimeFormula != null)
            {
                Debug.Assert(false);
                throw new ArgumentException();
            }
#endif
            Tap.TargetTimeFormula = Formula;
            Tap.TargetTime        = Time;
        }
コード例 #12
0
 public static void SetDelayTapInterpolateFlag(
     DelayTapRec Tap,
     bool Interpolate)
 {
     Tap.Interpolate = Interpolate;
 }
コード例 #13
0
 public static void SetDelayTapFilterEnable(
     DelayTapRec Tap,
     bool EnableFilter)
 {
     Tap.FilterEnable = EnableFilter;
 }
コード例 #14
0
 public static void SetDelayTapTarget(
     DelayTapRec Tap,
     DelayChannelType Target)
 {
     Tap.TargetTap = Target;
 }
コード例 #15
0
 public static void SetDelayTapSource(
     DelayTapRec Tap,
     DelayChannelType Source)
 {
     Tap.SourceTap = Source;
 }