Пример #1
0
        public void TestReset()
        {
            var pattern      = BuildBinaryPattern();
            var matchResults = new MatchResultCollector();
            var matcher      = PatternMatcher.Create(pattern, new PatternMatcher.Settings {
                MaxMatchingTime = 0.25f
            }, matchResults);
            var sn = new SimpleSoundId("SN", "default", "*");
            var bs = new SimpleSoundId("BS", "default", "*");

            short i = 1;

            matcher.Tick(0f);
            var beat = new TimedBeatId(0, new BeatId(i++));

            matcher.AddBeat(bs, beat, Velocity.Medium);
            Assert.Single(matchResults.Matches);

            matcher.Tick(100f);

            matcher.Reset();
            matchResults.Matches.Clear();
            matchResults.Missed.Clear();
            matcher.Tick(0f);
            matcher.AddBeat(bs, beat, Velocity.Medium);
            Assert.Single(matchResults.Matches);
        }
Пример #2
0
        private Pattern BuildBinaryPattern()
        {
            var builder = new PatternInfo.Builder();

            builder.BarsCount    = 1;
            builder.BeatsPerBar  = 4;
            builder.UnitsPerBeat = new TimeInUnits(2);
            builder.SuggestedBpm = 60;
            // SN  --o---o-
            // BS  x---xx--
            var sn     = new SimpleSoundId("SN", "default", "*");
            var bs     = new SimpleSoundId("BS", "default", "*");
            var result = new Pattern.Builder();

            result.PatternInfo = builder.Build();
            result.Add(new TimeInUnits(0), bs, Velocity.Medium);
            result.Add(new TimeInUnits(4), bs, Velocity.Medium);
            result.Add(new TimeInUnits(5), bs, Velocity.Medium);
            result.Add(new TimeInUnits(3), bs, Velocity.Medium);
            result.Add(new TimeInUnits(7), bs, Velocity.Medium);
            return(result.Build());
        }