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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Profil pro
    Développeur en systèmes embarqués retraité
    Inscrit en
    Mars 2006
    Messages
    952
    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 : 952
    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 Expert
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 068
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 068
    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 Expert
    Profil pro
    Développeur en systèmes embarqués retraité
    Inscrit en
    Mars 2006
    Messages
    952
    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 : 952
    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 Expert
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 068
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 068
    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 Expert
    Profil pro
    Développeur en systèmes embarqués retraité
    Inscrit en
    Mars 2006
    Messages
    952
    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 : 952
    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 Expert
    Profil pro
    Développeur en systèmes embarqués retraité
    Inscrit en
    Mars 2006
    Messages
    952
    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 : 952
    Par défaut
    Salut,

    Bon, vraiment personne?

    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, 16h22
  2. [Pygame] Defis entre amis
    Par josmiley dans le forum Programmation multimédia/Jeux
    Réponses: 2
    Dernier message: 01/09/2009, 09h15
  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, 20h09
  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, 17h22
  5. communication entre programmes
    Par jérôme dans le forum C
    Réponses: 12
    Dernier message: 16/04/2002, 08h05

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