public bool Activate(
            ActivationParams ap
#if UNITY_EDITOR
            ,
            Patch patch
#endif
            )
        {
            var delayed = !Mathf.Approximately(ap.delay, 0f);

            if (delayed || (!randomize && !increment) || (lastFrame != Time.frameCount) || !Application.isPlaying)
            {
                if (!delayed)
                {
                    lastFrame = Time.frameCount;
                }

                return(Synthesizer.Activate(
                           this,
                           ap
#if UNITY_EDITOR
                           ,
                           patch
#endif
                           ));
            }

            return(false);
        }
        public bool Activate(ActivationParams ap)
        {
            if ((lastHandle != ap.handle) || !Application.isPlaying)
            {
                lastHandle = ap.handle;
                return(Synthesizer.Activate(this, ap));
            }

            return(false);
        }
        public bool Activate(ActivationParams ap, AudioParameters.EnvelopeParams ep)
        {
            return(program.Activate(
                       ap,
                       ep
#if UNITY_EDITOR
                       ,
                       this
#endif
                       ));
        }
        public bool Activate(ActivationParams ap)
        {
            return(hasTimings
                ? sequence.Activate(ap)
                : program.Activate(
                       ap
#if UNITY_EDITOR
                       ,
                       this
#endif
                       ));
        }