Fix MIDI bridge: remove semicolons (corrupts Pd velocity parsing), retry on device busy
Validate and Test / validate-patches (push) Failing after 13s
Validate and Test / validate-patches (push) Failing after 13s
This commit is contained in:
+11
-3
@@ -46,8 +46,8 @@ def _find_midi_dev():
|
||||
|
||||
def midi_msg(status, data1, data2=None):
|
||||
if data2 is not None:
|
||||
return f"midi {status} {data1} {data2};"
|
||||
return f"midi {status} {data1};"
|
||||
return f"midi {status} {data1} {data2}"
|
||||
return f"midi {status} {data1}"
|
||||
|
||||
|
||||
def _open_midi():
|
||||
@@ -55,7 +55,15 @@ def _open_midi():
|
||||
while not os.path.exists(midi_dev):
|
||||
time.sleep(0.5)
|
||||
midi_dev = _find_midi_dev()
|
||||
fd = os.open(midi_dev, os.O_RDWR | os.O_NONBLOCK)
|
||||
while True:
|
||||
try:
|
||||
fd = os.open(midi_dev, os.O_RDWR | os.O_NONBLOCK)
|
||||
break
|
||||
except OSError as e:
|
||||
if e.errno == 16:
|
||||
time.sleep(0.5)
|
||||
continue
|
||||
raise
|
||||
os.set_blocking(fd, False)
|
||||
return fd
|
||||
|
||||
|
||||
Reference in New Issue
Block a user