[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: [pygame] BUG: MIDI Input Close on macOS



Hi,
In addition I tried to update to pygame 2.0.1 however it is the same. you'll find here after the complete outcome on the terminal:

Python 3.8.2 (default, Nov  4 2020, 21:23:28) 
[Clang 12.0.0 (clang-1200.0.32.28)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import pygame.midi
pygame 2.0.1 (SDL 2.0.14, Python 3.8.2)
Hello from the pygame community. https://www.pygame.org/contribute.html
>>> pygame.midi.init()
>>> pygame.midi.get_count()
2
>>> pygame.midi.get_device_info(0)
(b'CoreMIDI', b'P\x8eriph\x8erique MIDI USB', 1, 0, 0)
>>> midiin1 = pygame.midi.Input(0)
>>> pygame.midi.get_device_info(0)
(b'CoreMIDI', b'P\x8eriph\x8erique MIDI USB', 1, 0, 1)
>>> midiin1.close()
>>> pygame.midi.get_device_info(0)
(b'CoreMIDI', b'P\x8eriph\x8erique MIDI USB', 1, 0, 1)
>>> midiin1 = pygame.midi.Input(0)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/familleaupepin/Library/Python/3.8/lib/python/site-packages/pygame/midi.py", line 287, in __init__
    self._input = _pypm.Input(device_id, buffer_size)
  File "src_c\cython\pygame\pypm.pyx", line 547, in pygame.pypm.Input.__init__
Exception: b"PortMidi: `Invalid device ID'"
>>> 

Sincerely,

Frédéric
Le samedi 9 janvier 2021 à 19:23:16 UTC+1, Frédéric AUPÉPIN a écrit :
Hi,

I’m a macOS user under Catalina (10.15.7) and I think there might be an issue related to the closure of a MIDI Input.
I have currently Python 3.8.2 and Pygame 2.0.0 with SDL 2.0.12.

The issue is following: if I close a MIDI input it is impossible to reopen one afterwards unless I exit Python.
Here is what I did:

import pygame.midi
pygame.midi.init()
pygame.midi.get_count() #to verify that there are MIDI devices
pygame.midi.get_device_info(0) # verify information of the input (at list id 0 was my input) at verify that the input is available
midiin1 = pygame.midi.Input(0) # everything is fine and can read
midiin1.close()
pygame.midi.get_device_info(0) # then it is stated that the device is still opened preventing to reopen an Input
midiin1 = pygame.midi.Input(0) # will return error


Sincerely,

Frédéric