private void TestRepeat(Score score, int[] expectedIndexes)
        {
            var controller = new MidiPlaybackController(score);
            int i          = 0;

            while (!controller.Finished)
            {
                var index = controller.Index;
                controller.ProcessCurrent();
                if (controller.ShouldPlay)
                {
                    Trace.WriteLine(string.Format("Checking index {0}, expected[{1}]", i, expectedIndexes[i]));
                    Assert.AreEqual(expectedIndexes[i], index);
                    i++;
                }
                controller.MoveNext();
            }

            Assert.AreEqual(expectedIndexes.Length, i);
            Assert.IsTrue(controller.Finished);
        }
Example #2
0
        private void TestRepeat(Score score, int[] expectedIndexes)
        {
            var controller = new MidiPlaybackController(score);
            int i          = 0;

            while (!controller.Finished)
            {
                var index = controller.Index;
                controller.ProcessCurrent();
                if (controller.ShouldPlay)
                {
                    Logger.Debug("Test", $"Checking index {i}, expected[{expectedIndexes[i]}]");
                    Assert.AreEqual(expectedIndexes[i], index);
                    i++;
                }
                controller.MoveNext();
            }

            Assert.AreEqual(expectedIndexes.Length, i);
            Assert.IsTrue(controller.Finished);
        }
Example #3
0
        public static MidiTickLookup BuildTickLookup(Score score)
        {
            var lookup = new MidiTickLookup();

            var controller = new MidiPlaybackController(score);

            while (!controller.Finished)
            {
                var index = controller.Index;
                controller.Process();

                if (controller.ShouldPlay)
                {
                    var bar = new BarTickLookup();
                    bar.Bar   = score.MasterBars[index];
                    bar.Start = controller.RepeatMove + bar.Bar.Start;
                    bar.End   = bar.Start + bar.Bar.CalculateDuration();
                    lookup.Bars.Add(bar);
                }
            }

            return(lookup);
        }
Example #4
0
        public static MidiTickLookup BuildTickLookup(Score score)
        {
            var lookup = new MidiTickLookup();

            var controller = new MidiPlaybackController(score);

            while (!controller.Finished)
            {
                var index       = controller.Index;
                var currentTick = controller.CurrentTick;
                controller.ProcessCurrent();
                if (controller.ShouldPlay)
                {
                    var bar = new BarTickLookup();
                    bar.Bar   = score.MasterBars[index];
                    bar.Start = currentTick;
                    bar.End   = bar.Start + bar.Bar.CalculateDuration();
                    lookup.AddBar(bar);
                }
                controller.MoveNext();
            }

            return(lookup);
        }