示例#1
0
        public void Chord_DefaultOctave()
        {
            var defaultVelocity = (SevenBitNumber)90;
            var defaultOctave   = 2;

            var chordLength = (MusicalLength)MusicalFraction.SixteenthTriplet;
            var chordTime1  = new MetricTime(0, 1, 12);
            var chordTime2  = new MathTime(chordTime1, chordLength);

            var pattern = new PatternBuilder()
                          .SetVelocity(defaultVelocity)
                          .SetOctave(defaultOctave)

                          .MoveToTime(chordTime1)
                          .Chord(new[]
            {
                NoteName.C,
                NoteName.G
            }, chordLength)
                          .Repeat()

                          .Build();

            TestNotes(pattern, new[]
            {
                new NoteInfo(NoteName.C, defaultOctave, chordTime1, chordLength, defaultVelocity),
                new NoteInfo(NoteName.G, defaultOctave, chordTime1, chordLength, defaultVelocity),
                new NoteInfo(NoteName.C, defaultOctave, chordTime2, chordLength, defaultVelocity),
                new NoteInfo(NoteName.G, defaultOctave, chordTime2, chordLength, defaultVelocity)
            });
        }
示例#2
0
        public void NotEqual()
        {
            // arrange
            var dt1 = new MetricTime(1, 2, 3, 4);
            var dt2 = new MetricTime(2, 3, 4, 5);

            // act
            var areEqual = dt1.Equals(dt2);

            // assert
            Assert.IsFalse(areEqual);
        }
示例#3
0
        public void CreateNew()
        {
            // arrange
            var dt = new MetricTime(1, 2, 3, 4);

            // act

            // assert
            Assert.AreEqual(dt.Hours, 1);
            Assert.AreEqual(dt.Minutes, 2);
            Assert.AreEqual(dt.Seconds, 3);
            Assert.AreEqual(dt.Milliseconds, 4);
        }
示例#4
0
        public void UtcToMetric(int utcHours, int utcMinutes, int utcSeconds, int utcMs,
                                int decHours, int decMinutes, int decSeconds, int decMs)
        {
            // arrange

            // act
            var mt = new MetricTime();

            mt.PopulateFromUtc(utcHours, utcMinutes, utcSeconds, utcMs);

            // assert
            Assert.AreEqual(mt.Hours, decHours);
            Assert.AreEqual(mt.Minutes, decMinutes);
            Assert.AreEqual(mt.Seconds, decSeconds);
            Assert.AreEqual(mt.Milliseconds, decMs);
        }
示例#5
0
        public void MoveToFirstAnchor_Keyed_OneUnkeyedAndOneKeyed()
        {
            var anchorTime = new MetricTime(0, 0, 30);

            var pattern = new PatternBuilder()
                          .MoveToTime(new MetricTime(0, 0, 10))
                          .StepForward(new MetricLength(0, 0, 11))
                          .Anchor()
                          .MoveToTime(anchorTime)
                          .Anchor("Test")
                          .StepBack(new MetricLength(0, 0, 5))
                          .MoveToFirstAnchor("Test")

                          .Note(OctaveDefinition.Get(0).A)

                          .Build();

            TestNotes(pattern, new[]
            {
                new NoteInfo(NoteName.A, 0, anchorTime, (MusicalLength)MusicalFraction.Quarter)
            });
        }