Я пытаюсь использовать pygame.midi в Anaconda Notebook (MacOS Mojave) для получения звуков из виртуального сэмплера. Иногда он работает нормально, иногда без очевидной причины тот же сценарий в следующий раз выдает ошибку вывода MIDI (см. Ниже).
---------------------------------------------------------------------------
Exception Traceback (most recent call last)
<ipython-input-22-59fb23bd9d1f> in <module>
5 note = [44, 46, 49, 51, 53, 56, 58, 61]
6 pygame.midi.init()
----> 7 player = pygame.midi.Output(1)
8 player.set_instrument(0)
9 for i in range (24):
~/.local/lib/python3.7/site-packages/pygame/midi.py in __init__(self, device_id, latency, buffer_size)
420 if output:
421 try:
--> 422 self._output = _pypm.Output(device_id, latency)
423 except TypeError:
424 raise TypeError("an integer is required")
pypm.pyx in pypm.Output.__init__()
Exception: b"PortMidi: `Invalid device ID'"
Между тем, pygame.midi.get_device_info (1) возвращает (b'CoreMIDI ', b'IA C Driver Bus 1', 0, 1, 1)
Мой код выглядит так:
import pygame.midi
import time
import random
note = [44, 46, 49, 51, 53, 56, 58, 61]
pygame.midi.init()
player = pygame.midi.Output(1)
player.set_instrument(0)
for i in range (24):
random.shuffle(note)
player.note_on(note[0], 127)
time.sleep(0.5)
player.note_off(note[0], 127)
del player
pygame.midi.quit()
В чем может быть проблема? Спасибо!