void setDifficulty(GuitarDifficulty diff)
        {
            if (!diff.IsEasyMediumHardExpert())
            {
                diff = GuitarDifficulty.Expert;
            }

            if (SelectedDifficulty != diff)
            {
                SelectedDifficulty = diff;

                this.track.IfObjectNotNull(tr =>
                                           TrackDifficultyChanged.IfObjectNotNull(x => x(this, tr, this.SelectedDifficulty)));
            }
            else
            {
                TrackClicked.IfObjectNotNull(x => x(this, this.track, this.SelectedDifficulty));
            }
        }
        void setDifficulty(GuitarDifficulty diff)
        {
            if (!diff.IsEasyMediumHardExpert())
                diff = GuitarDifficulty.Expert;

            if (SelectedDifficulty != diff)
            {
                SelectedDifficulty = diff;

                this.track.IfObjectNotNull(tr =>
                    TrackDifficultyChanged.IfObjectNotNull(x => x(this, tr, this.SelectedDifficulty)));
            }
            else
            {
                TrackClicked.IfObjectNotNull(x => x(this, this.track, this.SelectedDifficulty));
            }
        }
        public bool SetTrack6(Sequence seq, Track t, GuitarDifficulty difficulty = GuitarDifficulty.Unknown)
        {
            bool ret = true;

            if (settingTrack6)
                return ret;

            settingTrack6 = true;
            try
            {
                if (!difficulty.IsEasyMediumHardExpert())
                {
                    if (!CurrentDifficulty.IsEasyMediumHardExpert())
                        difficulty = GuitarDifficulty.Expert;
                    else
                        difficulty = CurrentDifficulty;
                }
                guitarTrack.SetTrack(t, difficulty);

                ret = guitarTrack.IsLoaded;

            }
            catch { }

            try
            {
                if (ret == true && OnLoadTrack != null)
                {
                    this.OnLoadTrack(this, this.Sequence, t);
                }
            }
            catch { }
            try
            {

                SetTrackMaximum();
            }
            catch { }

            settingTrack6 = false;

            Invalidate();
            return ret;
        }
        public bool SetTrack5(Sequence seq, Track t, GuitarDifficulty difficulty = GuitarDifficulty.Unknown)
        {
            bool ret = false;
            if (settingTrack5)
                return true;

            settingTrack5 = true;
            if (!difficulty.IsEasyMediumHardExpert())
            {
                difficulty = GuitarDifficulty.Expert;
            }
            try
            {
                guitarTrack.SetTrack(t, difficulty);
                ret = guitarTrack.IsLoaded;
            }
            catch{}

            try
            {
                if (ret == true && OnLoadTrack != null)
                {
                    OnLoadTrack(this, seq, t);
                }
            }
            catch{}

            try
            {
                SetTrackMaximum();
            }
            catch{}

            settingTrack5 = false;

            return ret;
        }