示例#1
0
 public Note(
     DiatonicNote diatonicNote,
     Accidental accidental)
 {
     DiatonicNote  = diatonicNote;
     Accidental    = accidental;
     DistanceFromC = new Semitone((int)DiatonicNote + Accidental);
 }
示例#2
0
        public int CompareTo(Note other)
        {
            if (ReferenceEquals(this, other))
            {
                return(0);
            }
            if (ReferenceEquals(null, other))
            {
                return(1);
            }
            var diatonicNoteResult = DiatonicNote.CompareTo(other.DiatonicNote);

            if (diatonicNoteResult != 0)
            {
                return(diatonicNoteResult);
            }

            var accidentalResult = Accidental.CompareTo(other.Accidental);

            return(accidentalResult);
        }
示例#3
0
 public NoteAttribute(DiatonicNote diatonicNote, Accidental accidental)
 {
     DiatonicNote = diatonicNote;
     Accidental   = accidental;
 }
示例#4
0
 /// <summary>
 /// Gets the key note, given a diatonic note.
 /// </summary>
 /// <param name="diatonicNote">The <see cref="DiatonicNote"/>.</param>
 /// <returns>The key <see cref="Note"/>.</returns>
 public Note this[DiatonicNote diatonicNote] => _keyNotesByDiatonicNote[diatonicNote];
示例#5
0
 public Note(DiatonicNote diatonicNote)
     : this(diatonicNote, Accidental.None)
 {
 }