コード例 #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();
        }
コード例 #2
0
ファイル: Scale.cs プロジェクト: heyx3/ProcGen-Exploration
        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)));
        }
コード例 #3
0
ファイル: Scale.cs プロジェクト: heyx3/ProcGen-Exploration
 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)));
 }
コード例 #4
0
        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();
        }
コード例 #5
0
 private int GetOcclusion(Dominant dominant, XDir xDir, YDir yDir, ZDir zDir)
 {
     return(CalculateOcclusion(GetOcclusionValues(GetOcclusionMapping(dominant, xDir, yDir, zDir))));
 }