public void ImportMidiAndSaveToFile(string pMidiFile, string pXmlFile, string pArtist, string pTitle, int pTrack, int pBpm, int pSkipBeats) { var sequence = MidiSequence.Import(pMidiFile); var track = sequence.GetTracks()[pTrack]; MidiEventCollection midiEvents = track.Events; var midiImporter = new GuitarMidiImporter(midiEvents, pBpm, pSkipBeats); var song = new Song() { Author = pArtist, Name = pTitle, }; var xmlScoreWriter = new XmlScoreWriter(song, PlayingMode.EletricGuitarScore, midiImporter.ScoreNotes); if (File.Exists(pXmlFile)) { File.Delete(pXmlFile); } xmlScoreWriter.SaveXmlNotesToFile(pXmlFile); Assert.IsTrue(File.Exists(pXmlFile)); }
public void NoteDuration_NewInitializationWithoutFinalization() { var midiEvents = new MidiEventCollection(); midiEvents.Add(new NoteOn(0, 1, "C4", 100)); midiEvents.Add(new NoteOn(0, 1, "C4", 100)); var midiImporter = new GuitarMidiImporter(midiEvents, 120); }
public void Skip3Beats() { var midiEvents = new MidiEventCollection(); midiEvents.Add(new NoteOn(0, 1, "C4", 100)); midiEvents.Add(new NoteOn(120, 1, "C4", 0)); var midiImporter = new GuitarMidiImporter(midiEvents, 120, 3); var firstScoreNote = midiImporter.ScoreNotes.ElementAt(0).Value; Assert.AreEqual(1 + 3, firstScoreNote.Beat); Assert.AreEqual(0, firstScoreNote.Tick); }
//private static string MIDI_for_whom_the_bell_tolls = TestConfig.AudioPath + "metallica-for_whom_the_bell_tolls.mid"; private void TestFirstNotePosition(NoteValue pNoteValue, string pNoteId, int pString, int pPosition) { var midiEvents = new MidiEventCollection(); midiEvents.Add(new NoteOn(0, 1, pNoteId, 100)); midiEvents.Add(new NoteOn(120, 1, pNoteId, 0)); var midiImporter = new GuitarMidiImporter(midiEvents, 120); var firstScoreNote = midiImporter.ScoreNotes.ElementAt(0).Value; Assert.AreEqual(pNoteValue, firstScoreNote.Note.Value, firstScoreNote.NoteId); Assert.AreEqual(pString, firstScoreNote.NotePositions.ElementAt(0).Value.String, firstScoreNote.NoteId); Assert.AreEqual(pPosition, firstScoreNote.NotePositions.ElementAt(0).Value.Fret, firstScoreNote.NoteId); }
public void NoteDuration_AdmitTheSameNote() { var midiEvents = new MidiEventCollection(); midiEvents.Add(new NoteOn(0, 1, "C4", 100)); midiEvents.Add(new NoteOn(0, 1, "C4", 100)); midiEvents.Add(new NoteOn(120, 1, "C4", 0)); midiEvents.Add(new NoteOn(120, 1, "C4", 0)); var midiImporter = new GuitarMidiImporter(midiEvents, 120); Assert.AreEqual(2, midiImporter.ScoreNotes.Count); var firstChord = midiImporter.ScoreNotes.Where(p => (p.Value.Beat == 1) && (p.Value.Tick == 0)).ToList(); Assert.AreEqual(2, firstChord.Count); }