private void GenerateDifficultiesForTrack(
            Track trackG5,
            Track trackG6,
            GuitarDifficulty guitarDifficulties,
            GenDiffConfig config)
        {
            if (guitarDifficulties.IsUnknownOrNone())
                return;

            var diffs = guitarDifficulties.GetDifficulties().Where(x => x.IsEasyMediumHard());

            EditorPro.SetTrack(trackG6, GuitarDifficulty.Expert);
            EditorG5.SetTrack(trackG5, GuitarDifficulty.Expert);

            var expertChords = EditorPro.Messages.Chords.ToList();

            foreach (var diff in diffs)
            {
                var sourceDifficulty =
                    diff == GuitarDifficulty.Easy ? GuitarDifficulty.Medium :
                    diff == GuitarDifficulty.Medium ? GuitarDifficulty.Hard :
                    GuitarDifficulty.Expert;

                EditorPro.CurrentDifficulty = sourceDifficulty;

                var sourceChords = EditorPro.Messages.Chords.ToList();
                var sourceArpeggio = EditorPro.Messages.Arpeggios.ToList();

                EditorPro.CurrentDifficulty = diff;
                EditorG5.CurrentDifficulty = diff;

                EditorPro.Messages.Chords.ToList().ForEach(x => x.DeleteAll());

                EditorPro.Messages.Arpeggios.Where(x => x.Difficulty == diff).ToList().ForEach(x => x.DeleteAll());

                GenDiffNotes(expertChords, sourceChords, sourceArpeggio, diff, config);

            }
        }