【发布时间】:2020-02-04 16:45:02
【问题描述】:
我编写了一个 Python 脚本,如果按下键盘上的 a 键会触发钢琴声音,它会将 MIDI 数据发送到笔记本电脑上的另一个程序。
我的问题如下:在真正的钢琴上,如果我按下一个键并按住它,一个单一的音符会发出延音。但是,如果我在运行脚本时按下键盘上的 a 键,而不是像真正的原声钢琴一样,在按下键时音符会响起很多次。我想这个问题可以通过一些 if 和循环逻辑来解决。我只是不知道怎么做。
谁能给我建议?
我的脚本是这样的:
import time
import rtmidi
import mido
import keyboard
outport = mido.open_output('loopMIDI 1')
while True:
#Pad A
if keyboard.is_pressed("a"):
msg = mido.Message("note_on", note=36, velocity=100, time=10)
outport.send(msg)
time.sleep(0.05)
else:
msg = mido.Message("note_off", note=36, velocity=100, time=10)
outport.send(msg)
【问题讨论】: