Exemplo n.º 1
0
        private Point3[] GetOcclusionMapping(Dominant dominant, XDir xDir, YDir yDir, ZDir zDir)
        {
            if (dominant == Dominant.X)
            {
                return(new[]
                {
                    new Point3((int)xDir, 0, (int)zDir),
                    new Point3((int)xDir, (int)yDir, 0),
                    new Point3((int)xDir, (int)yDir, (int)zDir),
                });
            }

            if (dominant == Dominant.Y)
            {
                return(new[]
                {
                    new Point3(0, (int)yDir, (int)zDir),
                    new Point3((int)xDir, (int)yDir, 0),
                    new Point3((int)xDir, (int)yDir, (int)zDir),
                });
            }

            if (dominant == Dominant.Z)
            {
                return(new[]
                {
                    new Point3(0, (int)yDir, (int)zDir),
                    new Point3((int)xDir, 0, (int)zDir),
                    new Point3((int)xDir, (int)yDir, (int)zDir),
                });
            }

            throw new NotSupportedException();
        }
Exemplo n.º 2
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)));
        }
Exemplo n.º 3
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();
        }
Exemplo n.º 5
0
 private int GetOcclusion(Dominant dominant, XDir xDir, YDir yDir, ZDir zDir)
 {
     return(CalculateOcclusion(GetOcclusionValues(GetOcclusionMapping(dominant, xDir, yDir, zDir))));
 }