Beispiel #1
0
        public Scale Transpose(Note key)
        {
            int shift = key.NHalfSteps - Tonic.NHalfSteps;

            return(new Scale(Tonic.MoveSteps(shift), Supertonic.MoveSteps(shift),
                             Mediant.MoveSteps(shift), Subdominant.MoveSteps(shift),
                             Dominant.MoveSteps(shift), Submediant.MoveSteps(shift),
                             Subtonic.MoveSteps(shift)));
        }
Beispiel #2
0
 public Scale ChangeOctave(sbyte octaveChange)
 {
     return(new Scale(Tonic.MoveOctave(octaveChange),
                      Supertonic.MoveOctave(octaveChange),
                      Mediant.MoveOctave(octaveChange),
                      Subdominant.MoveOctave(octaveChange),
                      Dominant.MoveOctave(octaveChange),
                      Submediant.MoveOctave(octaveChange),
                      Subtonic.MoveOctave(octaveChange)));
 }
        public static void Main(string[] args)
        {
            Scale       scale = new Scale();
            Tonic       tonic = new Tonic(scale);
            Subdominant subD  = new Subdominant(scale);
            Dominant    dom   = new Dominant(scale);

            scale.SetDiatonicScale(new string[] { "C", "D", "E", "F", "G", "A", "B" });

            scale.RemoveObserver(tonic);
            scale.RemoveObserver(subD);
            Submediant subM = new Submediant(scale);

            scale.SetDiatonicScale(new string[] { "Ab", "Bb", "C", "Db", "Eb", "F", "G" });

            Console.ReadLine();
        }