Pygame MIDI 功能仅用于按下或按下而不是 MIDIIN?
Pygame MIDI function for just key down or key up rather than MIDIIN?
所以我使用这个函数来检测来自我的 MIDI 键盘的事件,然后将其打印为 sheet 音乐:
for e in events:
if
if e.type in [pygame.midi.MIDIIN]:
这 returns 2 个事件,一个是按下键时,另一个是按下键时 up.This 对单个笔记非常有用,因为我只是创建了一个函数来只触发 if 语句每隔一段时间就会有一个事件,但和弦很难,因为事件可能会以各种顺序出现,如 note 40 keydown、note 41 keydown、note 41 key up、note 40 key up。或音符 40 向下,音符 41 向上,音符 40 向下,音符 41 向上。等等等等。除了它没有说 'key up' 或 'key down' 它只是触发 if 语句。所以我的问题是是否有一个功能只会在按下或向上按下键时触发?像 pygame.midi.MIDI_KEYDOWN
read()
函数只是 returns MIDI 消息的原始字节,而不对其进行解析。
midis2events()
函数实际上对这些字节也没有做任何事情:
((status,data1,data2,data3),timestamp) = midi
e = pygame.event.Event(MIDIIN,
status=status,
data1=data1,
data2=data2,
data3=data3,
timestamp=timestamp,
vice_id = device_id)
因此您必须自己解析消息:0x90
和 0x9F
之间的任何状态字节都是音符打开,0x80
和 0x8F
之间的音符关闭。
所以我使用这个函数来检测来自我的 MIDI 键盘的事件,然后将其打印为 sheet 音乐:
for e in events:
if
if e.type in [pygame.midi.MIDIIN]:
这 returns 2 个事件,一个是按下键时,另一个是按下键时 up.This 对单个笔记非常有用,因为我只是创建了一个函数来只触发 if 语句每隔一段时间就会有一个事件,但和弦很难,因为事件可能会以各种顺序出现,如 note 40 keydown、note 41 keydown、note 41 key up、note 40 key up。或音符 40 向下,音符 41 向上,音符 40 向下,音符 41 向上。等等等等。除了它没有说 'key up' 或 'key down' 它只是触发 if 语句。所以我的问题是是否有一个功能只会在按下或向上按下键时触发?像 pygame.midi.MIDI_KEYDOWN
read()
函数只是 returns MIDI 消息的原始字节,而不对其进行解析。
midis2events()
函数实际上对这些字节也没有做任何事情:
((status,data1,data2,data3),timestamp) = midi
e = pygame.event.Event(MIDIIN,
status=status,
data1=data1,
data2=data2,
data3=data3,
timestamp=timestamp,
vice_id = device_id)
因此您必须自己解析消息:0x90
和 0x9F
之间的任何状态字节都是音符打开,0x80
和 0x8F
之间的音符关闭。