Пример #1
0
    def test_write_event(self):
        mtw = MidiTrackWriter.CreateWithBytesIO()
        mtw.WriteEvent(MidiFileEvent(400, [0x90, 0x40, 0x40]))
        track_io = mtw.Output
        track_io.seek(0)

        mtr = MidiTrackReader(track_io)
        evt = mtr.ReadEvent()
        self.assertEqual(evt.Tick, 400)
        self.assertEqual(evt.Message, [0x90, 0x40, 0x40])
Пример #2
0
    def test_write(self):
        mtw = MidiTrackWriter.CreateWithBytesIO()
        mtw.Write(None)
        evt1 = MidiFileEvent(400, [0x90, 0x40, 0x40])
        evt2 = MidiFileEvent(600, [0x80, 0x40, 0x40])
        mtw.Write([evt1, evt2])
        track_io = mtw.Output
        track_io.seek(0)

        mtr = MidiTrackReader(track_io)
        events = mtr.Read()
        self.assertEqual(events[0].Tick, 400)
        self.assertEqual(events[0].Message, [0x90, 0x40, 0x40])
        self.assertEqual(events[1].Tick, 600)
        self.assertEqual(events[1].Message, [0x80, 0x40, 0x40])
Пример #3
0
 def test_exclusive_f7(self):
     content = b'\0\xF7\4\0\1\2\3'
     mtr = MidiTrackReader.CreateFromBytes(content)
     evt = mtr.ReadEvent()
     self.assertTrue(isinstance(evt, MidiFileEvent))
     self.assertEqual(evt.Tick, 0)
     self.assertEqual(evt.Message, [0xF7, 4, 0, 1, 2, 3])
Пример #4
0
 def test_pitch(self):
     content = b'\0\xE0\x40\x40'
     mtr = MidiTrackReader.CreateFromBytes(content)
     evt = mtr.ReadEvent()
     self.assertTrue(isinstance(evt, MidiFileEvent))
     self.assertEqual(evt.Tick, 0)
     self.assertEqual(evt.Message, [0xE0, 0x40, 0x40])
Пример #5
0
 def test_delta_tick(self):
     content = b'\0\x90\x40\x40\x81\x81\0\x80\x40\x40'
     mtr = MidiTrackReader.CreateFromBytes(content)
     events = mtr.Read()
     self.assertEqual(len(events), 2)
     self.assertEqual(events[0].Tick, 0)
     self.assertEqual(events[0].Message, [0x90, 0x40, 0x40])
     self.assertEqual(events[1].Tick, (1 << 14) + (1 << 7))
     self.assertEqual(events[1].Message, [0x80, 0x40, 0x40])
Пример #6
0
    def test_meta(self):
        content = b'\0\xFF\1\4Test\x40\xFF\1\4Meta'
        msg1 = [0xFF, 0x1, 0x4, ord('T'), ord('e'), ord('s'), ord('t')]
        msg2 = [0xFF, 0x1, 0x4, ord('M'), ord('e'), ord('t'), ord('a')]

        mtr = MidiTrackReader.CreateFromBytes(content)
        events = mtr.Read()
        self.assertEqual(len(events), 2)
        self.assertEqual(events[0].Tick, 0)
        self.assertEqual(events[0].Message, msg1)
        self.assertEqual(events[1].Tick, 0x40)
        self.assertEqual(events[1].Message, msg2)
Пример #7
0
 def test_running_status(self):
     content = b'\0\x90\x40\x40\0\x60\x40\0\xB0\x0A\x7F\0\x0A\x40'
     mtr = MidiTrackReader.CreateFromBytes(content)
     events = mtr.Read()
     self.assertEqual(len(events), 4)
     self.assertEqual(events[0].Tick, 0)
     self.assertEqual(events[0].Message, [0x90, 0x40, 0x40])
     self.assertEqual(events[1].Tick, 0)
     self.assertEqual(events[1].Message, [0x90, 0x60, 0x40])
     self.assertEqual(events[2].Tick, 0)
     self.assertEqual(events[2].Message, [0xB0, 0x0A, 0x7F])
     self.assertEqual(events[3].Tick, 0)
     self.assertEqual(events[3].Message, [0xB0, 0x0A, 0x40])
Пример #8
0
 def test_read(self):
     content = b''
     mtr = MidiTrackReader.CreateFromBytes(content)
     events = mtr.Read()
     self.assertEqual(events, None)
Пример #9
0
 def test_ctor(self):
     with self.assertRaises(Exception):
         MidiTrackReader(None)