我的 python 程序从 C 库接收 MIDI 数据。有时数据会如下所示:
[[[[240,0,1,116]]],[[[3,100,8,1]]],[[[107,247,0,0]]]]
有时它会包括这样的时间戳:
[[[[240,0,1,116],26738]],[[[3,100,8,1],26738]],[[[107,247,0,0],26738]]]
我需要字节数组中的数据,并丢弃时间戳值。我为此编写的代码是:
def convertMidiSysex(data):
while isinstance(data[0][0], list):
out = []
for index, value in enumerate(data):
out = out+value
data = out
out = array.array('B')
for i in range(len(data)):
if isinstance(data[i], list):
for j in range(len(data[i])):
out.append(data[i][j])
if out[-1] == 247: # 0xF7 is marker to end sysex message
return out
我情不自禁地感觉到我正在艰难地做这件事。有更好的方法吗?