Подсчитать количество входов Midi, полученных с помощью Python - PullRequest
0 голосов
/ 27 ноября 2018

Я использую Mido (https://mido.readthedocs.io/en/latest/) для получения Midi-сообщений в Python. Я хотел бы иметь возможность хранить счетчик того, сколько сообщений получают каждый раз, когда появляется новый ввод.

Вопросы:

Как мне обернуть все входы в список?

Как я могу добавить новые элементы ввода в список?

Как мне тогда подсчитатьколичество элементов в этом списке, поскольку этот список постоянно меняется?

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 голосов
/ 27 ноября 2018

Вы можете просто изменить свой класс потока для выполнения операций со списком 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.Узнать больше здесь

...