示例#1
0
        public Relation MajorityRelation(Clef clef)
        {
            var relations = Notes.Select(x => x.Note.RelationToMidpoint(clef)).ToList();
            var higher    = relations.Where(x => x == Relation.Higher).ToList().Count;
            var lower     = relations.Where(x => x == Relation.Lower).ToList().Count;

            return(higher > lower ? Relation.Higher : (lower == higher ? Relation.Equal : Relation.Lower));
        }
示例#2
0
        public ChordSection Transpose(int semitones)
        {
            var newNotes = new List <Note>();
            var notes    = Music.Notes.NotesInClef(Clef.Bass);

            foreach (var note in Notes.Select(x => x.Note))
            {
                var idx = notes.IndexOf(note);
                newNotes.Add(notes[idx + semitones]);
            }
            Notes = newNotes.Select(x => new NoteViewModel(x)).ToList();
            return(this);
        }