Exemple #1
0
            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());
                            }
                        }
                    }
                }
            }
Exemple #2
0
            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));
                }
            }
Exemple #3
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());
                }
            }