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]:
[('', 0), ('3238', 6), ('3239', 24), ('3240', 24)]

In [19]:



2826

In [22]:
tk.midi_in.close_port()

In [ ]: