public void Scale_Mode_C_Major_Ionian_Mode_Is_C() { var cMajor = new ScaleBuilder().FromPattern(MidiValue.MiddleC, WellKnownIntervalPattern.Major); Assert.Equal("C", cMajor.Root().Name); string[] dModal = new string[] { "C", "D", "E", "F", "G", "A", "B", "C" }; var modeNames = cMajor.ToMode(Mode.Ionian).Values.Select(n => n.Name); Assert.True(modeNames.SequenceEqual(dModal)); }
public void Scale_Transpose_Progresses_Around_Circle_Of_Fourths() { var cMajor = new ScaleBuilder().FromPattern(MidiValue.MiddleC, WellKnownIntervalPattern.Major); Assert.Equal("C", cMajor.Root().Name); string[] circleOfFourths = new string[] { "F", "A#", "D#", "G#", "C#", "F#", "B", "E", "A", "D", "G", "C" }; var start = cMajor; foreach (string root in circleOfFourths) { var next = start.Transpose(Interval.Fourth); Assert.Equal(root, next.Root().Name); start = next; } }