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))); }
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(); }