protected override void UpdateHitObject(HitObject currHitObject)
        {
            SliderOsu slider = currHitObject as SliderOsu;

            if (slider != null)
            {
                if (AudioEngine.Time >= slider.StartTime && AudioEngine.Time <= slider.EndTime)
                {
                    slider.InitSlide();
                    sliderActive = true;
                }
            }

            if (AudioEngine.AudioState == AudioStates.Playing && AudioEngine.FrameAverage < 300)
            {
                if ((currHitObject.StartTime <= AudioEngine.Time &&
                     currHitObject.StartTime >= AudioEngine.TimeLastFrame &&
                     !currHitObject.IsType(HitObjectType.Spinner))
                    ||
                    (currHitObject.EndTime <= AudioEngine.Time &&
                     currHitObject.EndTime >= AudioEngine.TimeLastFrame))
                {
                    if (!currHitObject.Sounded)
                    {
                        currHitObject.PlaySound();
                        currHitObject.Sounded = true;
                    }
                }
                else if (currHitObject.Sounded &&
                         Math.Abs(currHitObject.StartTime - AudioEngine.Time) > AudioEngine.FrameAverage * 4)
                {
                    currHitObject.Sounded = false;
                }
            }

            base.UpdateHitObject(currHitObject);
        }