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);
            }
        }
Example #2
0
        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);
        }
Example #3
0
 public NoteName(BaseNoteName baseName, Accidental accidental)
 {
     this.BaseName   = baseName;
     this.Accidental = accidental;
 }