public void SerializeMidiFile() { var path = Directory.GetCurrentDirectory() + "/Assets/Plugins/jp.goma_recorder.midity/Tests/Runtime/Sample.mid"; using (var fileStream = new FileStream(path, FileMode.Open, FileAccess.Read)) { var memoryStream = new MemoryStream(); fileStream.CopyTo(memoryStream); var midiFile1 = new MidiDeserializer(memoryStream, CodeName).Load(); using (memoryStream) { MidiSerializer.SerializeFile(midiFile1, memoryStream); var midiFile2 = new MidiDeserializer(memoryStream, CodeName).Load(); Assert.That(midiFile1.Tracks.Count == midiFile2.Tracks.Count); for (var i = 0; i < midiFile1.Tracks.Count; i++) { Assert.That(midiFile1.Tracks[i].Events.Count == midiFile2.Tracks[i].Events.Count); for (var j = 0; j < midiFile1.Tracks[i].Events.Count; j++) { Assert.That( midiFile1.Tracks[i].Events[j].GetType() == midiFile2.Tracks[i].Events[j].GetType()); } } } } }
private static T ReDeserialize <T>(T mTrkEvent) where T : MTrkEvent { var encoding = Encoding.GetEncoding(CodeName); using (var stream = new MemoryStream()) { MidiSerializer.SerializeEvent(mTrkEvent, encoding, stream, 0); stream.Seek(0, SeekOrigin.Begin); var deserializer = new MidiDeserializer(stream, encoding); byte status = 0; return((T)deserializer.ReadEvent(ref status, 0)); } }
public void SerializeTrack() { var track1 = new MidiTrack(null, "Name", 94); MidiTrack track2; using (var stream = new MemoryStream()) { var encoding = Encoding.GetEncoding(CodeName); MidiSerializer.SerializeTrack(track1, encoding, stream); stream.Seek(0, SeekOrigin.Begin); var midiFIle = new MidiFile(94, encoding); new MidiDeserializer(stream, encoding).ReadTrack(0, midiFIle); track2 = midiFIle.Tracks[0]; } Assert.That(track1.Events.Count == track2.Events.Count); for (var i = 0; i < track1.Events.Count; i++) { Assert.That(track1.Events[i].GetType() == track2.Events[i].GetType()); } }