Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 11 sur 11
  1. #1
    Membre Expert
    Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    mars 2006
    Messages
    850
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Industrie

    Informations forums :
    Inscription : mars 2006
    Messages : 850
    Points : 1 138
    Points
    1 138

    Par défaut [pygame] entrée midi

    Salut,

    J'ai un message d'erreur généré par pygame lorsque j'essaie de créer un périphérique midi en entrée. Un appel d'une fonction d'initialisation quelconque qui m'aurait échappé?

    A+

    Pfeuh

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    #!/usr/bin/python
    # -*- coding: utf-8 -*-
     
    import pygame
    import pygame.midi
    import time
    pygame.init()
    pygame.midi.init()
    for x in range(pygame.midi.get_count()):
        print pygame.midi.get_device_info(x)
    midi_in = pygame.midi.Input(1, 1024)
     
    while 1:
        while midinput.pool():
            print midi_in.read(1)
        time.sleep(0.001)
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    >pythonw -u "midi_in.py"         
    ('MMSystem', 'Microsoft MIDI Mapper', 0, 1, 0)
    ('MMSystem', 'nanoKONTROL 1 SLIDER/KNOB', 1, 0, 0)
    ('MMSystem', 'Microsoft GS Wavetable Synth', 0, 1, 0)
    ('MMSystem', 'nanoKONTROL 1 CTRL', 0, 1, 0)
    Traceback (most recent call last):
      File "midi_in.py", line 11, in <module>
        midi_in = pygame.midi.Input(1, 1024)
      File "c:\python27\lib\site-packages\pygame\midi.py", line 262, in __init__
        self._input = _pypm.Input(device_id, buffer_size)
      File "pypm.pyx", line 531, in pypm.Input.__init__ (src/pypm.c:2797)
    Exception: PortMidi: `Insufficient memory'
    >Exit code: 1

  2. #2
    Membre émérite
    Homme Profil pro
    Inscrit en
    avril 2004
    Messages
    756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : avril 2004
    Messages : 756
    Points : 888
    Points
    888

    Par défaut

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    import pygame
    import pygame.midi
    import time
    pygame.init()
    pygame.midi.init()
    for x in range(pygame.midi.get_count()):
        print pygame.midi.get_device_info(x)
    midi_in = pygame.midi.Input(1, 1024)
     
    while 1:
        while midi_in.poll():
            print midi_in.read(1)
        time.sleep(0.001)
    j'ai corrigé 2 lignes, chez moi ça boucle sans erreur, après je ne saurai t'en dire plus ...

  3. #3
    Membre Expert
    Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    mars 2006
    Messages
    850
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Industrie

    Informations forums :
    Inscription : mars 2006
    Messages : 850
    Points : 1 138
    Points
    1 138

    Par défaut

    merci, je vois l'erreur, midinput au lieu de midi_in? Mais comme le programme plante à l'ouverture du port, il n'a pas été aussi loin et n'a donc pas signalé l'erreur. La modification n'a hélas rien apporté.

  4. #4
    Membre émérite
    Homme Profil pro
    Inscrit en
    avril 2004
    Messages
    756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : avril 2004
    Messages : 756
    Points : 888
    Points
    888

    Par défaut

    as-tu essayé sans spécifier la taille du buffer ?
    Code :
    midi_in = pygame.midi.Input(pygame.midi.get_default_input_id())

  5. #5
    Membre Expert
    Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    mars 2006
    Messages
    850
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Industrie

    Informations forums :
    Inscription : mars 2006
    Messages : 850
    Points : 1 138
    Points
    1 138

    Par défaut

    Salut,

    Je relance le topic car j'ai un projet pour lequel une surface de contrôle MIDI serait parfaite, comme celle-là par exemple. Donc voici à peu près l'état des lieux: Windows 7-64 bits, python 2.7 et pygame. Le programme suivant détecte bien la surface, mais me balance un 'Insufficient memory'. J'ai googlé un peu partout, et apparemment il n'y a vraiment pas grand monde qui utilise le MIDI, encore moins avec python/pygame. Et pour répondre à Josmiley, oui, j'avais essayé, et ça ne changeait rien

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    import pygame
    import pygame.midi
    import time
    pygame.init()
    pygame.midi.init()
    for x in range(pygame.midi.get_count()):
        print pygame.midi.get_device_info(x)
    midi_in = pygame.midi.Input(1, 32)
    et le résultat:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    ('MMSystem', 'Microsoft MIDI Mapper', 0, 1, 0)
    ('MMSystem', 'nanoKONTROL 1 SLIDER/KNOB', 1, 0, 0)
    ('MMSystem', 'Microsoft GS Wavetable Synth', 0, 1, 0)
    ('MMSystem', 'nanoKONTROL 1 CTRL', 0, 1, 0)
    Traceback (most recent call last):
      File "listener.py", line 8, in <module>
        midi_in = pygame.midi.Input(1, 32)
      File "c:\python27\lib\site-packages\pygame\midi.py", line 262, in __init__
        self._input = _pypm.Input(device_id, buffer_size)
      File "pypm.pyx", line 531, in pypm.Input.__init__ (src/pypm.c:2797)
    Exception: PortMidi: `Insufficient memory'
    >Exit code: 1
    A+

    Pfeuh

  6. #6
    Membre Expert
    Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    mars 2006
    Messages
    850
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Industrie

    Informations forums :
    Inscription : mars 2006
    Messages : 850
    Points : 1 138
    Points
    1 138

    Par défaut

    Salut,

    Bon, vraiment personne?

    A+

    Pfeuh

  7. #7
    Membre Expert
    Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    mars 2006
    Messages
    850
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Industrie

    Informations forums :
    Inscription : mars 2006
    Messages : 850
    Points : 1 138
    Points
    1 138

    Par défaut

    A priopri, le problème est bien du côté driver midi pygame car j'ai branché un autre périphérique d'entrée sur un autre système (PC 32bits avec Windows XP familial) et j'ai toujours la même erreur...

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    import pygame
    import pygame.midi
    import time
    pygame.init()
    pygame.midi.init()
    for x in range(pygame.midi.get_count()):
        print pygame.midi.get_device_info(x)
    midi_in = pygame.midi.Input(1, 32)
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    >c:/python27/pythonw -u "first.py"
    ('MMSystem', 'Mappeur MIDI Microsoft', 0, 1, 0)
    ('MMSystem', 'P\xe9riph\xe9rique audio USB', 1, 0, 0)
    ('MMSystem', 'Synth\xe9. SW table de sons GS Mic', 0, 1, 0)
    ('MMSystem', 'P\xe9riph\xe9rique audio USB', 0, 1, 0)
    Traceback (most recent call last):
      File "first.py", line 8, in <module>
        midi_in = pygame.midi.Input(1, 32)
      File "c:\python27\lib\site-packages\pygame\midi.py", line 262, in __init__
        self._input = _pypm.Input(device_id, buffer_size)
      File "pypm.pyx", line 531, in pypm.Input.__init__ (src/pypm.c:2797)
    Exception: PortMidi: `Insufficient memory'
    >Exit code: 1
    A+

    Pfeuh

  8. #8
    Membre émérite
    Homme Profil pro
    Inscrit en
    avril 2004
    Messages
    756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : avril 2004
    Messages : 756
    Points : 888
    Points
    888

    Par défaut

    demandes sur le chan: irc.freenode.net 6667 #pygame

  9. #9
    Invité de passage
    Femme Profil pro
    Étudiant
    Inscrit en
    juin 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juin 2012
    Messages : 1
    Points : 1
    Points
    1

    Par défaut Même problème..

    Hello

    Tu as trouvé une solution ?

    J'ai le même souci, aucun id supporté en Input ou Output..

  10. #10
    Membre Expert
    Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    mars 2006
    Messages
    850
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Industrie

    Informations forums :
    Inscription : mars 2006
    Messages : 850
    Points : 1 138
    Points
    1 138

    Par défaut

    Salut,

    Non, pas de solution. Et ça me fait d'autant plus braire que jusqu'à maintenant je semblais être le seul à avoir ce bug. Je me sens moins seul, d'un coup. Je suis bien sûr preneur de toute info me permettant de pouvoir utiliser ce driver.

    A+

    Pfeuh

  11. #11
    Membre Expert
    Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    mars 2006
    Messages
    850
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Industrie

    Informations forums :
    Inscription : mars 2006
    Messages : 850
    Points : 1 138
    Points
    1 138

    Par défaut

    Salut,

    C'est volontairement que je déterre ce post. J'ai trouvé une solution, en tout cas elle marche pour moi. Je suis en python 2.7x et j'ai simplement installé la dernière version de pygame, à savoir la 1.91. Et plus précisément celle ci, http://pygame.org/ftp/pygame-1.9.1.win32-py2.7.msi ... Peut être que le fait de sélectionner la version ".msi" a une importance...

    A+

    Pfeuh

+ Répondre à la discussion
Cette discussion est résolue.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •