Пример #1
0
        public void TickData_FilledExample()
        {
            var tickData = new GtTickData();

            tickData.IsStartTick = true;

            tickData.String6 = 2;
            tickData.String5 = 4;
            tickData.String4 = 4;

            tickData.RemarkOrChordName = "F#";


            Assert.IsNull(tickData.String1);
            Assert.IsNull(tickData.String2);
            Assert.IsNull(tickData.String3);
            Assert.AreEqual(4, tickData.String4);
            Assert.AreEqual(4, tickData.String5);
            Assert.AreEqual(2, tickData.String6);

            Assert.IsTrue(tickData.IsStartTick);
            Assert.IsFalse(tickData.IsEndTick);

            Assert.AreEqual("F#", tickData.RemarkOrChordName);
        }
Пример #2
0
        public void TickDataTable_AddTickData_One()
        {
            var tickData = new GtTickData();

            tickData.RemarkOrChordName = "F#";
            tickData.String6           = 2;
            tickData.String5           = 4;
            tickData.String4           = 4;

            var tickDataTable = new GtTickDataTable(10);

            tickDataTable.AddTickData(new BeatTick(1, 0), new BeatTick(1, 0), tickData);

            Assert.AreEqual(tickData.RemarkOrChordName, tickDataTable[1, 0].RemarkOrChordName);

            Assert.AreEqual(tickData.String6, tickDataTable[1, 0].String6);
            Assert.AreEqual(tickData.String5, tickDataTable[1, 0].String5);
            Assert.AreEqual(tickData.String4, tickDataTable[1, 0].String4);
            Assert.AreEqual(tickData.String3, tickDataTable[1, 0].String3);
            Assert.AreEqual(tickData.String2, tickDataTable[1, 0].String2);
            Assert.AreEqual(tickData.String1, tickDataTable[1, 0].String1);

            Assert.IsTrue(tickDataTable[1, 0].IsStartTick);
            Assert.IsTrue(tickDataTable[1, 0].IsEndTick);
        }
Пример #3
0
        public void TickDataTable_AddTickData_Invalid()
        {
            var tickData = new GtTickData();

            var tickDataTable = new GtTickDataTable(10);

            tickDataTable.AddTickData(new BeatTick(2, 0), new BeatTick(1, 0), tickData);
        }
Пример #4
0
        public void TickDataTable_AddTickData_DifferentReference()
        {
            var tickData      = new GtTickData();
            var tickDataTable = new GtTickDataTable(10);

            tickDataTable.AddTickData(new BeatTick(1, 0), new BeatTick(1, 0), tickData);

            Assert.AreNotSame(tickData, tickDataTable[1, 0]);
        }
Пример #5
0
        public Double_GtTickDataTable_OneChord()
            : base(4)
        {
            var tickData = new GtTickData();

            tickData.RemarkOrChordName = "F#";
            tickData.String6           = 2;
            tickData.String5           = 4;
            tickData.String4           = 4;

            this.AddTickData(new BeatTick(1, 0), new BeatTick(1, 470), tickData);
        }
Пример #6
0
        public Double_GtTickDataTable_1NoteFirstBeat()
            : base(16)
        {
            var tickData = new GtTickData();

            tickData.RemarkOrChordName = "E";
            tickData.String6           = 0;

            var position = new BeatTick(1, 0);
            var duration = 8 * 480;

            this.AddTickData(position, position.AddTicks(duration), tickData);
        }
Пример #7
0
        public Double_GtTickDataTable_1Note()
            : base(16)
        {
            var tickData = new GtTickData();

            tickData.RemarkOrChordName = "E";
            tickData.String6           = 0;

            //var position = new BeatTick(4, 0); //GtSceneGuitar.SetSceneGuitarNote add 1 beat - I know, must be adjusted.
            var position = new BeatTick(5, 0);
            var duration = 8 * 480;

            this.AddTickData(position, position.AddTicks(duration), tickData);
        }
Пример #8
0
        public void TickDataTable_AddTickData_Many()
        {
            var tickData = new GtTickData();

            tickData.RemarkOrChordName = "F#";
            tickData.String6           = 2;
            tickData.String5           = 4;
            tickData.String4           = 4;

            var tickDataTable = new GtTickDataTable(10);

            tickDataTable.AddTickData(new BeatTick(1, 0), new BeatTick(1, 470), tickData);

            for (int tick = 0; tick < 480; tick += 10)
            {
                Assert.AreEqual(tickData.RemarkOrChordName, tickDataTable[1, tick].RemarkOrChordName);
                Assert.AreEqual(tickData.String6, tickDataTable[1, tick].String6);
                Assert.AreEqual(tickData.String5, tickDataTable[1, tick].String5);
                Assert.AreEqual(tickData.String4, tickDataTable[1, tick].String4);

                if (tick == 0)
                {
                    //first item
                    Assert.IsTrue(tickDataTable[1, tick].IsStartTick);
                    Assert.IsFalse(tickDataTable[1, tick].IsEndTick);
                }
                else if (tick == 470)
                {
                    //last item
                    Assert.IsFalse(tickDataTable[1, tick].IsStartTick);
                    Assert.IsTrue(tickDataTable[1, tick].IsEndTick);
                }
                else
                {
                    //other item
                    Assert.IsFalse(tickDataTable[1, tick].IsStartTick);
                    Assert.IsFalse(tickDataTable[1, tick].IsEndTick);
                }
            }

            Assert.AreEqual("", tickDataTable[2, 0].RemarkOrChordName);
            Assert.IsNull(tickDataTable[2, 0].String6);
            Assert.IsNull(tickDataTable[2, 0].String5);
            Assert.IsNull(tickDataTable[2, 0].String4);
        }
Пример #9
0
        public void TickData_Signature()
        {
            var tickData = new GtTickData();

            Assert.IsNull(tickData.String1);
            Assert.IsNull(tickData.String2);
            Assert.IsNull(tickData.String3);
            Assert.IsNull(tickData.String4);
            Assert.IsNull(tickData.String5);
            Assert.IsNull(tickData.String6);

            Assert.IsFalse(tickData.IsStartTick);
            Assert.IsFalse(tickData.IsEndTick);

            Assert.AreEqual("", tickData.RemarkOrChordName);

            Assert.IsFalse(tickData.DrawChord);
        }
Пример #10
0
        public void ConvertScoreMomentsInTickTable()
        {
            IList <GuitarScoreNote> scoreNotes = new List <GuitarScoreNote>();

            scoreNotes.Add(new GuitarScoreNote("G3", 1, 0, 480, null)
            {
                RemarkOrChordName = "G"
            });

            var fileLoader    = new GtFileLoader();
            var tickDataTable = fileLoader.ConvertScoreNotesInTickTable(scoreNotes);

            Assert.AreEqual(1 + GtFileLoader.NUMBER_ADITIONAL_BEATS, tickDataTable.NumberOfBeats);
            Assert.AreEqual((1 + GtFileLoader.NUMBER_ADITIONAL_BEATS) * 48, tickDataTable.fItems.Length);

            for (int i = 0; i < 48; i++)
            {
                GtTickData tickData = tickDataTable[1, i * 10];

                Assert.IsNull(tickData.String1);
                Assert.IsNull(tickData.String2);
                Assert.IsNull(tickData.String3);
                Assert.IsNull(tickData.String4);
                Assert.IsNull(tickData.String5);
                Assert.AreEqual(3, tickData.String6);

                if (i == 0)
                {
                    Assert.AreEqual("G", tickData.RemarkOrChordName);
                }
                else
                {
                    Assert.AreEqual("", tickData.RemarkOrChordName);
                }
            }
        }
Пример #11
0
        private void RenderChordPicture(SpriteBatch pSpriteBatch, GtTickData pTickData, int pY)
        {
            int notesNumber = 0;
            int minorFret   = int.MaxValue;

            #region Calculate Minor Fret

            if (pTickData.String1 != null)
            {
                notesNumber++;
                if (pTickData.String1 < minorFret)
                {
                    minorFret = pTickData.String1.Value;
                }
            }
            if (pTickData.String2 != null)
            {
                notesNumber++;
                if (pTickData.String2 < minorFret)
                {
                    minorFret = pTickData.String2.Value;
                }
            }
            if (pTickData.String3 != null)
            {
                notesNumber++;
                if (pTickData.String3 < minorFret)
                {
                    minorFret = pTickData.String3.Value;
                }
            }
            if (pTickData.String4 != null)
            {
                notesNumber++;
                if (pTickData.String4 < minorFret)
                {
                    minorFret = pTickData.String4.Value;
                }
            }
            if (pTickData.String5 != null)
            {
                notesNumber++;
                if (pTickData.String5 < minorFret)
                {
                    minorFret = pTickData.String5.Value;
                }
            }
            if (pTickData.String6 != null)
            {
                notesNumber++;
                if (pTickData.String6 < minorFret)
                {
                    minorFret = pTickData.String6.Value;
                }
            }

            #endregion

            int fretShift = 0; //real fret is the position (in picture) plus fretShift
            if (minorFret > 2)
            {
                fretShift = minorFret - 2;
            }

            var backgrouRectangle = new Rectangle(
                this.X + (6 * this.Distance) + 50,
                pY - 20,
                70,
                50);

            pSpriteBatch.Draw(
                this.Game.ChordPictureBackground,
                backgrouRectangle,
                Color.Gray);

            DrawPositionInChordPicture(pSpriteBatch, 6, pTickData.String6, backgrouRectangle, fretShift);
            DrawPositionInChordPicture(pSpriteBatch, 5, pTickData.String5, backgrouRectangle, fretShift);
            DrawPositionInChordPicture(pSpriteBatch, 4, pTickData.String4, backgrouRectangle, fretShift);
            DrawPositionInChordPicture(pSpriteBatch, 3, pTickData.String3, backgrouRectangle, fretShift);
            DrawPositionInChordPicture(pSpriteBatch, 2, pTickData.String2, backgrouRectangle, fretShift);
            DrawPositionInChordPicture(pSpriteBatch, 1, pTickData.String1, backgrouRectangle, fretShift);
        }
Пример #12
0
        public Double_GtTickDataTable_3200Notes()
            : base(3200)
        {
            var tickData1 = new GtTickData();

            tickData1.RemarkOrChordName = "B";
            tickData1.String5           = 2;
            tickData1.String4           = 4;
            tickData1.String3           = 4;

            var tickData2 = new GtTickData();

            tickData2.RemarkOrChordName = "F#";
            tickData2.String6           = 2;
            tickData2.String5           = 4;
            tickData2.String4           = 4;

            var tickData3 = new GtTickData();

            tickData3.RemarkOrChordName = "G#";
            tickData3.String6           = 4;
            tickData3.String5           = 6;
            tickData3.String4           = 6;

            var tickData4 = new GtTickData();

            tickData4.RemarkOrChordName = "E";
            tickData4.String6           = 0;
            tickData4.String5           = 2;
            tickData4.String4           = 2;

            var position = new BeatTick(1, 0);
            var duration = 120;
            var distance = 240;


            for (int j = 0; j < 100; j++)
            {
                //Insert 8 B (2 for each beat)
                for (int i = 0; i < 8; i++)
                {
                    this.AddTickData(position, position.AddTicks(duration), tickData1);
                    position = position.AddTicks(distance);
                }

                //Insert 8 F# (2 for each beat)
                for (int i = 0; i < 8; i++)
                {
                    this.AddTickData(position, position.AddTicks(duration), tickData2);
                    position = position.AddTicks(distance);
                }

                //Insert 8 G# (2 for each beat)
                for (int i = 0; i < 8; i++)
                {
                    this.AddTickData(position, position.AddTicks(duration), tickData3);
                    position = position.AddTicks(distance);
                }

                //Insert 8 E (2 for each beat)
                for (int i = 0; i < 8; i++)
                {
                    this.AddTickData(position, position.AddTicks(duration), tickData4);
                    position = position.AddTicks(distance);
                }
            }
        }
Пример #13
0
        public Double_GtTickDataTable_ChromaticScale()
            : base(600)
        {
            var tickData1 = new GtTickData();

            tickData1.RemarkOrChordName = "C";
            tickData1.String5           = 3;

            var tickData2 = new GtTickData();

            tickData2.RemarkOrChordName = "C#";
            tickData2.String5           = 4;

            var tickData3 = new GtTickData();

            tickData3.RemarkOrChordName = "D";
            tickData3.String5           = 5;

            var tickData4 = new GtTickData();

            tickData4.RemarkOrChordName = "D#";
            tickData4.String5           = 6;

            var tickData5 = new GtTickData();

            tickData5.RemarkOrChordName = "E";
            tickData5.String4           = 2;

            var tickData6 = new GtTickData();

            tickData6.RemarkOrChordName = "F";
            tickData6.String4           = 3;

            var tickData7 = new GtTickData();

            tickData7.RemarkOrChordName = "F#";
            tickData7.String4           = 4;

            var tickData8 = new GtTickData();

            tickData8.RemarkOrChordName = "G";
            tickData8.String4           = 5;

            var tickData9 = new GtTickData();

            tickData9.RemarkOrChordName = "G#";
            tickData9.String3           = 1;

            var tickData10 = new GtTickData();

            tickData10.RemarkOrChordName = "A";
            tickData10.String3           = 2;

            var tickData11 = new GtTickData();

            tickData11.RemarkOrChordName = "A#";
            tickData11.String3           = 3;

            var tickData12 = new GtTickData();

            tickData12.RemarkOrChordName = "B";
            tickData12.String3           = 4;

            var position = new BeatTick(3, 0);
            var duration = 230;
            var distance = 240;

            var ntimes = 1;

            for (int j = 0; j < 50; j++)
            {
                for (int i = 0; i < ntimes; i++)
                {
                    this.AddTickData(position, position.AddTicks(duration), tickData1);
                    position = position.AddTicks(distance);
                }

                for (int i = 0; i < ntimes; i++)
                {
                    this.AddTickData(position, position.AddTicks(duration), tickData2);
                    position = position.AddTicks(distance);
                }

                for (int i = 0; i < ntimes; i++)
                {
                    this.AddTickData(position, position.AddTicks(duration), tickData3);
                    position = position.AddTicks(distance);
                }

                for (int i = 0; i < ntimes; i++)
                {
                    this.AddTickData(position, position.AddTicks(duration), tickData4);
                    position = position.AddTicks(distance);
                }

                for (int i = 0; i < ntimes; i++)
                {
                    this.AddTickData(position, position.AddTicks(duration), tickData5);
                    position = position.AddTicks(distance);
                }

                for (int i = 0; i < ntimes; i++)
                {
                    this.AddTickData(position, position.AddTicks(duration), tickData6);
                    position = position.AddTicks(distance);
                }

                for (int i = 0; i < ntimes; i++)
                {
                    this.AddTickData(position, position.AddTicks(duration), tickData7);
                    position = position.AddTicks(distance);
                }

                for (int i = 0; i < ntimes; i++)
                {
                    this.AddTickData(position, position.AddTicks(duration), tickData8);
                    position = position.AddTicks(distance);
                }

                for (int i = 0; i < ntimes; i++)
                {
                    this.AddTickData(position, position.AddTicks(duration), tickData9);
                    position = position.AddTicks(distance);
                }

                for (int i = 0; i < ntimes; i++)
                {
                    this.AddTickData(position, position.AddTicks(duration), tickData10);
                    position = position.AddTicks(distance);
                }

                for (int i = 0; i < ntimes; i++)
                {
                    this.AddTickData(position, position.AddTicks(duration), tickData11);
                    position = position.AddTicks(distance);
                }

                for (int i = 0; i < ntimes; i++)
                {
                    this.AddTickData(position, position.AddTicks(duration), tickData12);
                    position = position.AddTicks(distance);
                }
            }
        }
Пример #14
0
        public Double_GtTickDataTable_32Notes()
            : base(16)
        {
            var tickData1 = new GtTickData();

            tickData1.RemarkOrChordName = "B";
            tickData1.String5           = 2;
            tickData1.String4           = 4;
            tickData1.String3           = 4;

            var tickData2 = new GtTickData();

            tickData2.RemarkOrChordName = "F#";
            tickData2.String6           = 2;
            tickData2.String5           = 4;
            tickData2.String4           = 4;

            var tickData3 = new GtTickData();

            tickData3.RemarkOrChordName = "G#";
            tickData3.String6           = 4;
            tickData3.String5           = 6;
            tickData3.String4           = 6;

            var tickData4 = new GtTickData();

            tickData4.RemarkOrChordName = "E";
            tickData4.String6           = 0;
            tickData4.String5           = 2;
            tickData4.String4           = 2;

            var position = new BeatTick(1, 0);
            var duration = 120;
            var distance = 240;
            var distanceInMiliseconds = 500; //0.5 sec (60 BPM)
            var positionInMiliseconds = 0;

            //Insert 8 B (2 for each beat)
            for (int i = 0; i < 8; i++)
            {
                tickData1.MomentInMiliseconds = positionInMiliseconds;
                this.AddTickData(position, position.AddTicks(duration), tickData1);
                position = position.AddTicks(distance);
                positionInMiliseconds += distanceInMiliseconds;
            }

            //Insert 8 F# (2 for each beat)
            for (int i = 0; i < 8; i++)
            {
                tickData2.MomentInMiliseconds = positionInMiliseconds;
                this.AddTickData(position, position.AddTicks(duration), tickData2);
                position = position.AddTicks(distance);
                positionInMiliseconds += distanceInMiliseconds;
            }

            distanceInMiliseconds = 250; //0.25 sec (120 BPM)

            //Insert 8 G# (2 for each beat)
            for (int i = 0; i < 8; i++)
            {
                tickData3.MomentInMiliseconds = positionInMiliseconds;
                this.AddTickData(position, position.AddTicks(duration), tickData3);
                position = position.AddTicks(distance);
                positionInMiliseconds += distanceInMiliseconds;
            }

            //Insert 8 E (2 for each beat)
            for (int i = 0; i < 8; i++)
            {
                tickData4.MomentInMiliseconds = positionInMiliseconds;
                this.AddTickData(position, position.AddTicks(duration), tickData4);
                position = position.AddTicks(distance);
                positionInMiliseconds += distanceInMiliseconds;
            }
        }