Esempio n. 1
0
        public void TwoNotes()
        {
            var midiEvents = new MidiEventCollection();

            midiEvents.Add(new NoteOn(0, 1, "C#4", 100));
            midiEvents.Add(new NoteOn(120, 1, "C#4", 0));
            midiEvents.Add(new NoteOn(0, 1, "G#3", 100));
            midiEvents.Add(new NoteOn(120, 1, "G#3", 0));

            var midiImporter = new MidiImporter(midiEvents, 120);

            Assert.AreEqual(2, midiImporter.ScoreNotes.Count);

            {
                var scoreNote = midiImporter.ScoreNotes.ElementAt(0).Value;

                Assert.AreEqual(1, scoreNote.Beat);
                Assert.AreEqual(0, scoreNote.Tick);
                Assert.AreEqual(NoteValue.Db, scoreNote.Note.Value);
                Assert.AreEqual(4, scoreNote.Note.Number);
            }

            {
                var scoreNote = midiImporter.ScoreNotes.ElementAt(1).Value;

                Assert.AreEqual(2, scoreNote.Beat);
                Assert.AreEqual(0, scoreNote.Tick);
                Assert.AreEqual(NoteValue.Ab, scoreNote.Note.Value);
                Assert.AreEqual(3, scoreNote.Note.Number);
            }
        }
Esempio n. 2
0
        public void NoteDuration_NotFinalized()
        {
            var midiEvents = new MidiEventCollection();

            midiEvents.Add(new NoteOn(0, 1, "C4", 100));

            var midiImporter = new MidiImporter(midiEvents, 120);
        }
Esempio n. 3
0
        public void OneNote()
        {
            var midiEvents = new MidiEventCollection();

            midiEvents.Add(new NoteOn(480, 1, "C#4", 100)); //480 = 4 x 120 (4 beats)
            midiEvents.Add(new NoteOn(120, 1, "C#4", 0));

            var midiImporter = new MidiImporter(midiEvents, 120);

            Assert.AreEqual(1, midiImporter.ScoreNotes.Count);

            var firstScoreNote = midiImporter.ScoreNotes.ElementAt(0).Value;

            //Time is 5:0 (beat:tick)
            Assert.AreEqual(5, firstScoreNote.Beat);
            Assert.AreEqual(0, firstScoreNote.Tick);

            //Note is C#4
            Assert.AreEqual(NoteValue.Db, firstScoreNote.Note.Value);
            Assert.AreEqual(4, firstScoreNote.Note.Number);
        }
Esempio n. 4
0
        public void NoteDuration_OneNote_TwoChords()
        {
            var midiEvents = new MidiEventCollection();

            midiEvents.Add(new NoteOn(480, 1, "C4", 100));
            midiEvents.Add(new NoteOn(0, 1, "G4", 100));
            midiEvents.Add(new NoteOn(0, 1, "C5", 100));

            midiEvents.Add(new NoteOn(30, 1, "C4", 0));
            midiEvents.Add(new NoteOn(0, 1, "G4", 0));
            midiEvents.Add(new NoteOn(0, 1, "C5", 0));

            midiEvents.Add(new NoteOn(30, 1, "G3", 100));
            midiEvents.Add(new NoteOn(0, 1, "D4", 100));
            midiEvents.Add(new NoteOn(0, 1, "G4", 100));

            midiEvents.Add(new NoteOn(180, 1, "G3", 0));
            midiEvents.Add(new NoteOn(0, 1, "D4", 0));
            midiEvents.Add(new NoteOn(0, 1, "G4", 0));

            var midiImporter = new MidiImporter(midiEvents, 120);

            Assert.AreEqual(6, midiImporter.ScoreNotes.Count);

            //Get the first chord (and test the position/duration)
            var firstChord = midiImporter.ScoreNotes.Where(
                p => (p.Value.Beat == 5) &&
                (p.Value.Tick == 0) &&
                (p.Value.DurationInTicks == 120)).ToList();

            Assert.AreEqual(3, firstChord.Count);

            //Get the second chord (and test the position/duration)
            var secondChord = midiImporter.ScoreNotes.Where(
                p => (p.Value.Beat == 5) &&
                (p.Value.Tick == 240) &&
                (p.Value.DurationInTicks == 480 + 240)).ToList();

            Assert.AreEqual(3, secondChord.Count);
        }
Esempio n. 5
0
        public void NoteDuration_OneNote_OneBeat()
        {
            var midiEvents = new MidiEventCollection();

            midiEvents.Add(new NoteOn(0, 1, "C#4", 100));
            midiEvents.Add(new NoteOn(120, 1, "C#4", 0));

            var midiImporter = new MidiImporter(midiEvents, 120);

            Assert.AreEqual(1, midiImporter.ScoreNotes.Count);

            {
                var scoreNote = midiImporter.ScoreNotes.ElementAt(0).Value;

                Assert.AreEqual(1, scoreNote.Beat);
                Assert.AreEqual(0, scoreNote.Tick);
                Assert.AreEqual(NoteValue.Db, scoreNote.Note.Value);
                Assert.AreEqual(4, scoreNote.Note.Number);

                //Duration in Beats
                Assert.AreEqual(480, scoreNote.DurationInTicks);
            }
        }