Настройка вывода MIDI в pygame - Python .3 - PullRequest
1 голос
/ 28 мая 2020

Я пытаюсь использовать 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()

В чем может быть проблема? Спасибо!

...