Partage
  • Partager sur Facebook
  • Partager sur Twitter

Analyse d'un fichier Midi

(Affichage d'une note lorsque celle-ci est jouée)

Sujet résolu
    9 juillet 2010 à 2:00:21

    Bonjour (ou bonsoir à tous), étant nouveau sur le site (mais ayant suivi de nombreuses fois les divers cours de programmation) je souhaite féliciter l'ensemble des personnes ayant contribué à la qualité des informations de ce site).

    Pour en revenir au sujet, voici la question que je me posait, quelqu'un saurait s'il est possible de retrouver la note qui est jouée à un instant T dans un fichier midi? (un peut à la manière de guitar pro cf le lien pour ceux qui ne connaitraient pas http://www.youtube.com/watch?v=fE2d2nX [...] ature=related)

    En fait je souhaiterai réaliser un petit programme qui affiche les notes sur le manche de la guitare en fonction de la note jouée (en associant un fichier texte au fichier midi ou en réalisant une fonction qui retrouve la note à partir des informations midi, peut importe).

    En ce qui concerne le langage, peut importe aussi, je cherche surtout une voie a explorer pour réaliser ceci dans la mesure ou je ne connais pas la structure des fichiers midi ni les API disponibles pour réaliser des traitements dessus.

    Si quelqu'un a une idée qui pourait m'aider...

    Merci ^^
    • Partager sur Facebook
    • Partager sur Twitter
      5 août 2010 à 4:03:50

      Bonjour.

      Alors pour répondre à ta question : oui, c'est possible. :D
      Le propre du fichier midi est justement d'être enregistré sous cette forme ("A l'instant ..., la note ... a été joué avec une vélocité de ... et pour une durée de ...", en un peu plus évolué bien sûr) Le plus simple serait de te renseigner d'abord sur le format midi pour comprendre comment il est conçu, puis ensuite de trouver un langage de programmation qui possède une librairie pour manipuler le midi. Effectivement, peu importe, je pense que la plupart des langages courants en possèdent, donc dans la mesure du possible, prends un langage avec lequel tu sois à l'aise et que tu maîtrise déjà un minimum.

      Quelques liens, mais tu pourras trouver bien plus sur le sujet sans problème en cherchant un peu :
      Une page qui explique le format Midi
      jMusic, une librairie pour le langage JAVA
      Juce, une librairie pour le langage C++
      PureData, logiciel de programmation apparemment spécialisé dans le domaine musical

      Voilà, en te souhaitant bon courage,
      Damneth
      • Partager sur Facebook
      • Partager sur Twitter
        15 août 2010 à 14:35:35

        Salut,
        Taratata, je vous arrête tout de suite. Vous utilisez des bibliothèques spécifiques pour lire des fichiers texte ? Non. Alors pourquoi en utiliser pour lire des midifiles ?
        Je n'ai pas lu les liens de Damneth, mais pour les très nombreuses recherches effectuées dans le passé, le seul et unique lien que je t'incite à lire, expliquant parfaitement les midifiles, c'est celui-ci :
        http://www.sonicspot.com/guide/midifiles.html
        Quand tu auras lu ça, tu seras incollable sur les midifiles.
        Je te conseille le langage C par exemple. Ou le Java si tu n'as pas envie de te prendre la tête.

        • Partager sur Facebook
        • Partager sur Twitter
          15 août 2010 à 21:19:53

          Hé bien là, merci pour l'info. C'est vrai que la page que tu proposes permet à elle seule de bien comprendre toute la structure du midi, et je me suis fait un plaisir de la lire ^^ Maintenant, je comprends tout à fait qu'un simple éditeur de texte suffise.

          Cependant, il faut rappeler que le but d'une bibliothèque est de simplifier la tâche du programmeur. Je comprends que maîtrisant le fichier midi, tu préfères faire toutes les manipulations toi-même, mais n'oublions pas que si de telles bibliothèques existent, c'est qu'elles trouvent des feignants programmeurs pour les utiliser :D . A mon avis, tout dépend du but recherché. S'il s'agit simplement de créer un petit logiciel en vitesse, il est plus qu'agréable de pouvoir en profiter. Mais dans le cas où l'on n'est pas pressé, et où l'on cherche à se "faire la main" en programmation, je rejoins ton idée de n'utiliser que la manipulation de fichier texte, quitte a créer soi-même des fonctions que proposent déjà les librairies, ce qui est à mon avis un bon entraînement. Selon moi, ta réponse est donc effectivement plus adaptée à quelqu'un pour qui la programmation est un loisir en soi, ce qui me semble être le cas de Kyoaku. :)
          • Partager sur Facebook
          • Partager sur Twitter
            16 août 2010 à 0:32:17

            J'avoue que j'ai un penchant pour tout faire à la main (maitrise totale du code, pas de bouts de code encombrants ou inutiles, etc).
            Mais j'ai nuancé, en parlant du Java, au cas où il voudrait se simplifier la tâche. C'est le seul langage que je connaisse qui dispose en natif de classes de manipulation des midifiles (donc pas de bibliothèques tierces à rajouter).
            http://www.jsresources.org/examples/midi_files.html (explications + extraits de code).
            • Partager sur Facebook
            • Partager sur Twitter
              25 août 2010 à 10:37:52

              Merci beaucoup pour vos réponses, effectivement après la lecture de vos liens, le fonctionnement des fichiers midi ne semble plus si "magique" ^^
              • Partager sur Facebook
              • Partager sur Twitter
                26 janvier 2013 à 16:16:03

                Désolé de déterrer, mais le lien suivant est dead:

                http://www.sonicspot.com/guide/midifiles.html

                Ce qui est dommage, vu qu'il avait l'air tellement utile... :'(

                Quelqu'un sait où je pourrais retrouver les mêmes infos?

                • Partager sur Facebook
                • Partager sur Twitter
                  26 janvier 2013 à 18:30:52

                  http://sander.vanzoest.com/talks/2002/audio_and_apache/midispec.html

                  http://www.omega-art.com/midi/mfiles.html

                  • Partager sur Facebook
                  • Partager sur Twitter

                  Analyse d'un fichier Midi

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown