public static int GetSemitones(this BaseNoteName noteName) { switch (noteName) { case BaseNoteName.C: return(0); case BaseNoteName.D: return(2); case BaseNoteName.E: return(4); case BaseNoteName.F: return(5); case BaseNoteName.G: return(7); case BaseNoteName.A: return(9); case BaseNoteName.B: return(11); default: throw new ArgumentOutOfRangeException(nameof(noteName), noteName, null); } }
public static bool TryParse(char noteNameChar, out BaseNoteName value) { switch (noteNameChar) { case 'c': case 'C': value = BaseNoteName.C; break; case 'd': case 'D': value = BaseNoteName.D; break; case 'e': case 'E': value = BaseNoteName.E; break; case 'f': case 'F': value = BaseNoteName.F; break; case 'g': case 'G': value = BaseNoteName.G; break; case 'a': case 'A': value = BaseNoteName.A; break; case 'b': case 'B': value = BaseNoteName.B; break; default: value = BaseNoteName.C; return(false); } return(true); }
public NoteName(BaseNoteName baseName, Accidental accidental) { this.BaseName = baseName; this.Accidental = accidental; }