예제 #1
0
class MidiDispatcherTests(TestCase, ClockRunner):
    def setUp(self):
        checkPypm()
        tempo = Tempo(153)
        self.meter = Meter(4, 4, tempo=tempo)
        self.clock = BeatClock(tempo=tempo,
                               meter=self.meter,
                               reactor=TestReactor())
        self.midiin = FakeMidiInput()
        self.midiin._buffer.extend([[NOTEON_CHAN1, i % 128, 100, 0], i]
                                   for i in range(32 * 3 + 5))
        self.handler = TestHandler()
        self.dispatcher = MidiDispatcher(self.midiin, [self.handler],
                                         clock=self.clock)
        self.dispatcher.start()

    def test_scheduling(self):
        self.runTicks(97)
        expected = [('noteon', 1, i % 128, 100, i) for i in range(64)]
        self.assertEquals(self.handler.events, expected)

        self.handler.events[:] = []
        self.runTicks(1)
        expected = [('noteon', 1, i % 128, 100, i) for i in range(64, 96)]
        self.assertEquals(self.handler.events, expected)

        self.handler.events[:] = []
        self.runTicks(1)
        expected = [('noteon', 1, i % 128, 100, i) for i in range(96, 101)]
        self.assertEquals(self.handler.events, expected)

        self.handler.events[:] = []
        self.runTicks(1)
        self.failIf(self.handler.events)
예제 #2
0
파일: test_midi.py 프로젝트: csv/beatlounge
class MidiDispatcherTests(TestCase, ClockRunner):

    def setUp(self):
        checkPypm()
        tempo = Tempo(153)
        self.meter = Meter(4, 4, tempo=tempo)
        self.clock = BeatClock(tempo=tempo, meter=self.meter,
                               reactor=TestReactor())
        self.midiin = FakeMidiInput()
        self.midiin._buffer.extend([[NOTEON_CHAN1, i % 128, 100, 0], i]
                                    for i in range(32 * 3 + 5))
        self.handler = TestHandler()
        self.dispatcher = MidiDispatcher(self.midiin, [self.handler],
                                         clock=self.clock)
        self.dispatcher.start()

    def test_scheduling(self):
        self.runTicks(97)
        expected = [('noteon', 1, i % 128, 100, i) for i in range(64)]
        self.assertEquals(self.handler.events, expected)

        self.handler.events[:] = []
        self.runTicks(1)
        expected = [('noteon', 1, i % 128, 100, i) for i in range(64, 96)]
        self.assertEquals(self.handler.events, expected)

        self.handler.events[:] = []
        self.runTicks(1)
        expected = [('noteon', 1, i % 128, 100, i) for i in range(96, 101)]
        self.assertEquals(self.handler.events, expected)

        self.handler.events[:] = []
        self.runTicks(1)
        self.failIf(self.handler.events)
예제 #3
0
 def setUp(self):
     checkPypm()
     tempo = Tempo(153)
     self.meter = Meter(4, 4, tempo=tempo)
     self.clock = BeatClock(tempo=tempo,
                            meter=self.meter,
                            reactor=TestReactor())
     self.midiin = FakeMidiInput()
     self.midiin._buffer.extend([[NOTEON_CHAN1, i % 128, 100, 0], i]
                                for i in range(32 * 3 + 5))
     self.handler = TestHandler()
     self.dispatcher = MidiDispatcher(self.midiin, [self.handler],
                                      clock=self.clock)
     self.dispatcher.start()
예제 #4
0
파일: test_midi.py 프로젝트: csv/beatlounge
 def setUp(self):
     checkPypm()
     tempo = Tempo(153)
     self.meter = Meter(4, 4, tempo=tempo)
     self.clock = BeatClock(tempo=tempo, meter=self.meter,
                            reactor=TestReactor())
     self.midiin = FakeMidiInput()
     self.midiin._buffer.extend([[NOTEON_CHAN1, i % 128, 100, 0], i]
                                 for i in range(32 * 3 + 5))
     self.handler = TestHandler()
     self.dispatcher = MidiDispatcher(self.midiin, [self.handler],
                                      clock=self.clock)
     self.dispatcher.start()