예제 #1
0
        public void Scale_Major_Solfege_Is_Classic_Do_Re_Mi()
        {
            var cMajor = new ScaleBuilder().FromPattern(MidiValue.MiddleC, WellKnownIntervalPattern.Major);

            var majorSolfa = new Solfege[] {
                Solfege.Do,
                Solfege.Re,
                Solfege.Mi,
                Solfege.Fa,
                Solfege.So,
                Solfege.La,
                Solfege.Ti,
                Solfege.Do
            };

            var solfa = cMajor.AsSolfege();

            Assert.True(solfa.SequenceEqual(majorSolfa));
        }
예제 #2
0
        public Solfege AsSolfege()
        {
            Solfege[] solfa = new Solfege[] {
                Solfege.Do,
                Solfege.Di,
                Solfege.Re,
                Solfege.Ri,
                Solfege.Mi,
                Solfege.Fa,
                Solfege.Fi,
                Solfege.So,
                Solfege.Si,
                Solfege.La,
                Solfege.Li,
                Solfege.Ti
            };

            int degree = this.distance % solfa.Length;

            return(solfa[degree]);
        }