计算使用Python收到的Midi输入的数量

时间:2018-11-27 03:41:40

标签: python count counter midi

我正在使用Mido(https://mido.readthedocs.io/en/latest/)来接收Python中的Midi消息。 我希望能够对每次有新输入时接收到多少消息进行计数。

问题:

如何将所有输入包装在列表中?

然后如何将新的输入项添加到列表?

当列表不断变化时,我该如何计算该列表中的项目数?

class MyThread(threading.Thread):
def run(self):
    for msg in inport:
        print msg       
m = MyThread()
m.start()

这将产生如下输出:

control_change channel=0 control=16 value=1 time=0
control_change channel=0 control=16 value=2 time=0
control_change channel=0 control=16 value=3 time=0
control_change channel=0 control=16 value=4 time=0
control_change channel=0 control=16 value=5 time=0
control_change channel=0 control=16 value=6 time=0
control_change channel=0 control=16 value=7 time=0

1 个答案:

答案 0 :(得分:0)

您可以修改线程类以对inport列表进行操作,如下所示:

class MyThread(threading.Thread):
    inport = []

    def add(ele):
        inport.append(ele)
    def count(): 
        return len(inport)
    def run(self):
        for msg in self.inport:
            print msg       
    m = MyThread()
    m.start() 

如果您在列表上运行多线程,则可以使用Queue之类的同步结构。了解更多here