Beispiel #1
0
        public void ApplySelectedNotesToFretboard()
        {
            if (SelectedNotes == null || !SelectedNotes.Any())
            {
                return;
            }

            //TODO: This should happen when you're building the fretboard, the strings are being constructed... and then reiterated over... the first step is wasteful

            foreach (InstrumentString guitarString in Fretboard.InstrumentStrings)
            {
                foreach (InstrumentNote fretboardNote in guitarString.Notes)
                {
                    var currentNote = SelectedNotes.SingleOrDefault(s => s.Equals(fretboardNote));

                    if (currentNote != null)
                    {
                        fretboardNote.Selected = currentNote.Selected;
                    }

                    if (SelectedScale != null && SelectedScale.Scale.NoteSet.Contains(fretboardNote.Note))
                    {
                        fretboardNote.InSelectedScale = true;
                    }
                }
            }
        }
Beispiel #2
0
        public void ProcessNotesAndScale(string selectedScale, IEnumerable <string> selectedNotes)
        {
            UpdateSelectedNotes(selectedNotes);

            if (SelectedNotes.Count > 1)
            {
                Scales = _dictionaryService.FindScales(SelectedNotes.Select(a => a.Note)).ToList();
            }
            else
            {
                if (Scales != null && Scales.Any(a => a.Selected))
                {
                    Scales.SingleOrDefault(a => a.Selected).Selected = false;
                }

                Scales.Clear();

                ResetNotesInScale();

                SelectedScale = null;

                if (!selectedNotes.Any())
                {
                    ResetSelectedNotes();
                }
            }

            ApplySelectedScales(selectedScale);

            ApplySelectedNotesToFretboard();
        }
Beispiel #3
0
 bool Filter(Note x) => SelectedTags.All(t => x.Tags.Contains(t)) && (SelectedNotes.Any() ? SelectedNotes.Any(n => n == x.Name) : true);