IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Programmation multimédia/Jeux Python Discussion :

[pygame] entrée midi


Sujet :

Programmation multimédia/Jeux Python

  1. #1
    Membre expérimenté
    Profil pro
    Développeur en systèmes embarqués retraité
    Inscrit en
    Mars 2006
    Messages
    946
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

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

    Informations forums :
    Inscription : Mars 2006
    Messages : 946
    Points : 1 351
    Points
    1 351
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 expérimenté
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 046
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 046
    Points : 1 376
    Points
    1 376
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 expérimenté
    Profil pro
    Développeur en systèmes embarqués retraité
    Inscrit en
    Mars 2006
    Messages
    946
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

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

    Informations forums :
    Inscription : Mars 2006
    Messages : 946
    Points : 1 351
    Points
    1 351
    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 expérimenté
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 046
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 046
    Points : 1 376
    Points
    1 376
    Par défaut
    as-tu essayé sans spécifier la taille du buffer ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    midi_in = pygame.midi.Input(pygame.midi.get_default_input_id())

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

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

    Informations forums :
    Inscription : Mars 2006
    Messages : 946
    Points : 1 351
    Points
    1 351
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 expérimenté
    Profil pro
    Développeur en systèmes embarqués retraité
    Inscrit en
    Mars 2006
    Messages
    946
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

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

    Informations forums :
    Inscription : Mars 2006
    Messages : 946
    Points : 1 351
    Points
    1 351
    Par défaut
    Salut,

    Bon, vraiment personne?

    A+

    Pfeuh

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

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

    Informations forums :
    Inscription : Mars 2006
    Messages : 946
    Points : 1 351
    Points
    1 351
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 expérimenté
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 046
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 046
    Points : 1 376
    Points
    1 376
    Par défaut
    demandes sur le chan: irc.freenode.net 6667 #pygame

  9. #9
    Nouveau Candidat au Club
    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 expérimenté
    Profil pro
    Développeur en systèmes embarqués retraité
    Inscrit en
    Mars 2006
    Messages
    946
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

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

    Informations forums :
    Inscription : Mars 2006
    Messages : 946
    Points : 1 351
    Points
    1 351
    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 expérimenté
    Profil pro
    Développeur en systèmes embarqués retraité
    Inscrit en
    Mars 2006
    Messages
    946
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

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

    Informations forums :
    Inscription : Mars 2006
    Messages : 946
    Points : 1 351
    Points
    1 351
    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.

Discussions similaires

  1. collision entre groupe de sprites (pygame)
    Par jean-pat dans le forum Programmation multimédia/Jeux
    Réponses: 8
    Dernier message: 17/09/2011, 17h22
  2. [Pygame] Defis entre amis
    Par josmiley dans le forum Programmation multimédia/Jeux
    Réponses: 2
    Dernier message: 01/09/2009, 10h15
  3. Différences entre Delphi et Visual Basic ?
    Par Anonymous dans le forum Débats sur le développement - Le Best Of
    Réponses: 75
    Dernier message: 30/03/2009, 21h09
  4. [réseaux] Bench en Perl pour avoir le débit entre 2 pc
    Par Frich dans le forum Programmation et administration système
    Réponses: 4
    Dernier message: 22/05/2002, 18h22
  5. communication entre programmes
    Par jérôme dans le forum C
    Réponses: 12
    Dernier message: 16/04/2002, 09h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo