In [1]:
from rtmidi_python import MidiIn, MidiOut
from time import sleep
from datetime import datetime
In [2]:
class TickKeeper(object):
def __init__(self):
self.midi_in = MidiIn()
self.midi_in.ignore_types(False, False, False)
self.midi_in.callback = self.callback
self.midi_in.open_virtual_port('--input--')
self.ticks = 0
self.time_key = ""
self.seconds =[]
def callback(self, message, time_stamp):
print message
if message[0] == 248:
now = datetime.now()
if self.time_key == '{now.minute}{now.second}'.format(now=now):
self.ticks += 1
else:
run = (self.time_key, self.ticks)
print '{} - {}'.format(*run)
self.seconds.append(run)
self.ticks = 1
self.time_key = '{now.minute}{now.second}'.format(now=now)
In [3]:
tk = TickKeeper()
In [5]:
tk.seconds
Out[5]:
In [19]:
In [22]:
tk.midi_in.close_port()
In [ ]: