Publicité

Annonce

Réduire
Aucune annonce.

Mesure du temps et calcul des durée en musique et fichier Midi.

Réduire
X
 
  • Filtre
  • Heure
  • Afficher
Tout nettoyer
nouveaux messages

  • Mesure du temps et calcul des durée en musique et fichier Midi.

    Bonjour,
    J'ai quelques besoin en matière de mesure du temps et calcul des durée en musique et fichier midi.
    - Je doit calculer la durée des notes.
    - calculer le délais entre chaque message de syncro Midi
    - calculer le tempo.
    Je m'était brièvement penché que le problème il y a quelque temps mais je manquais d'informations sur les calcule à effectuer en fonction de la signature.

    Je devrais aussi savoir lire un fichier Midi pour récupérer les information nécessaire à ces calculs.
    Si vous aviez quelque indication à donner...
    Merci pour votre aide.
    Lightman : a small MIDI composer : download

  • #2
    En fait, pour parer au plus urgent, j'ai récupérer un fichier midi au format texte et je doit transformer les indication de mesure du temps en quadruple triple simple croche, noire blanche et ronde pour les note à jouer.
    Mon fichier midi au format texte ressemble à ceci :
    Track 1
    -- 0, Meta Event 58--00 FF 58 02 02 18 08
    -- 0, Meta Event 51--00 FF 51 07 27 0E
    -- 0, Meta Event 03--00 FF 03 54 48 20 32 2D 34 20 4E 6D 6C 53 74 72 20 54 30 37 31 20 46 75 6C 6C 4B 69 74
    -- 0, Meta Event 02--00 FF 02 43 6F 70 79 72 69 67 68 74 20 A9 20 32 30 30 39 20 50 43 20 44 4F 43 54 4F 52 53 2C 20 4C 4C 43
    -- 0, Meta Event 2F--00 FF 2F
    Track 2
    -- 0, Meta Event 03--00 FF 03 54 48 20 32 2D 34 20 4E 6D 6C 53 74 72 20 54 30 37 31 20 46 75 6C 6C 4B 69 74
    -- 0, Midi Event NOTEON for channel 9 -> 00 99 29 56
    -- 0, Midi Event NOTEON for channel 9 -> 00 99 3C 60
    -- 0, Midi Event NOTEON for channel 9 -> 00 99 2A 60
    -- 0, Midi Event NOTEON for channel 9 -> 00 99 24 54
    -- 30, Midi Event NOTEOFF for channel 9 -> 1E 89 29 00
    -- 0, Midi Event NOTEOFF for channel 9 -> 00 89 3C 00
    -- 0, Midi Event NOTEOFF for channel 9 -> 00 89 2A 00
    -- 0, Midi Event NOTEOFF for channel 9 -> 00 89 24 00
    -- 206, Midi Event NOTEON for channel 9 -> 81 4E 99 2A 47
    -- 0, Midi Event NOTEON for channel 9 -> 00 99 20 47
    -- 0, Midi Event NOTEON for channel 9 -> 00 99 3D 47
    -- 34, Midi Event NOTEOFF for channel 9 -> 22 89 2A 00
    -- 0, Midi Event NOTEOFF for channel 9 -> 00 89 20 00
    -- 0, Midi Event NOTEOFF for channel 9 -> 00 89 3D 00
    -- 86, Midi Event NOTEON for channel 9 -> 56 99 20 35
    -- 34, Midi Event NOTEOFF for channel 9 -> 22 89 20 00
    -- 86, Midi Event NOTEON for channel 9 -> 56 99 26 56
    -- 0, Midi Event NOTEON for channel 9 -> 00 99 3C 60
    -- 0, Midi Event NOTEON for channel 9 -> 00 99 20 60
    -- 0, Midi Event NOTEON for channel 9 -> 00 99 29 56
    -- 0, Midi Event NOTEON for channel 9 -> 00 99 24 54
    -- 34, Midi Event NOTEOFF for channel 9 -> 22 89 24 00
    -- 0, Midi Event NOTEOFF for channel 9 -> 00 89 29 00
    -- 0, Midi Event NOTEOFF for channel 9 -> 00 89 20 00
    -- 0, Midi Event NOTEOFF for channel 9 -> 00 89 26 00
    -- 0, Midi Event NOTEOFF for channel 9 -> 00 89 3C 00
    -- 206, Midi Event NOTEON for channel 9 -> 81 4E 99 20 47
    -- 0, Midi Event NOTEON for channel 9 -> 00 99 2A 47
    -- 34, Midi Event NOTEOFF for channel 9 -> 22 89 20 00
    -- 0, Midi Event NOTEOFF for channel 9 -> 00 89 2A 00
    -- 206, Midi Event NOTEON for channel 9 -> 81 4E 99 20 60
    -- 0, Midi Event NOTEON for channel 9 -> 00 99 24 54
    -- 0, Midi Event NOTEON for channel 9 -> 00 99 29 56
    -- 0, Midi Event NOTEON for channel 9 -> 00 99 3C 60
    -- 34, Midi Event NOTEOFF for channel 9 -> 22 89 24 00
    -- 0, Midi Event NOTEOFF for channel 9 -> 00 89 20 00
    -- 0, Midi Event NOTEOFF for channel 9 -> 00 89 29 00
    -- 0, Midi Event NOTEOFF for channel 9 -> 00 89 3C 00
    -- 206, Midi Event NOTEON for channel 9 -> 81 4E 99 2A 47
    -- 0, Midi Event NOTEON for channel 9 -> 00 99 20 47
    -- 0, Midi Event NOTEON for channel 9 -> 00 99 3D 47
    -- 34, Midi Event NOTEOFF for channel 9 -> 22 89 20 00
    -- 0, Midi Event NOTEOFF for channel 9 -> 00 89 2A 00
    -- 0, Midi Event NOTEOFF for channel 9 -> 00 89 3D 00
    -- 86, Midi Event NOTEON for channel 9 -> 56 99 20 35
    -- 34, Midi Event NOTEOFF for channel 9 -> 22 89 20 00
    -- 86, Midi Event NOTEON for channel 9 -> 56 99 20 60
    -- 0, Midi Event NOTEON for channel 9 -> 00 99 26 56
    -- 0, Midi Event NOTEON for channel 9 -> 00 99 24 54
    -- 0, Midi Event NOTEON for channel 9 -> 00 99 29 56
    -- 0, Midi Event NOTEON for channel 9 -> 00 99 3C 60
    -- 34, Midi Event NOTEOFF for channel 9 -> 22 89 29 00
    -- 0, Midi Event NOTEOFF for channel 9 -> 00 89 3C 00
    -- 0, Midi Event NOTEOFF for channel 9 -> 00 89 24 00
    -- 0, Midi Event NOTEOFF for channel 9 -> 00 89 20 00
    -- 0, Midi Event NOTEOFF for channel 9 -> 00 89 26 00
    -- 206, Midi Event NOTEON for channel 9 -> 81 4E 99 2A 47
    -- 0, Midi Event NOTEON for channel 9 -> 00 99 20 47
    -- 34, Midi Event NOTEOFF for channel 9 -> 22 89 2A 00
    -- 0, Midi Event NOTEOFF for channel 9 -> 00 89 20 00
    -- 206, Midi Event NOTEON for channel 9 -> 81 4E 99 29 56
    -- 0, Midi Event NOTEON for channel 9 -> 00 99 24 54
    -- 0, Midi Event NOTEON for channel 9 -> 00 99 20 60
    -- 0, Midi Event NOTEON for channel 9 -> 00 99 3C 60
    -- 34, Midi Event NOTEOFF for channel 9 -> 22 89 24 00
    -- 0, Midi Event NOTEOFF for channel 9 -> 00 89 29 00
    -- 0, Midi Event NOTEOFF for channel 9 -> 00 89 20 00
    -- 0, Midi Event NOTEOFF for channel 9 -> 00 89 3C 00
    -- 206, Midi Event NOTEON for channel 9 -> 81 4E 99 2A 47
    -- 0, Midi Event NOTEON for channel 9 -> 00 99 3D 47
    -- 0, Midi Event NOTEON for channel 9 -> 00 99 20 47
    -- 34, Midi Event NOTEOFF for channel 9 -> 22 89 3D 00
    -- 0, Midi Event NOTEOFF for channel 9 -> 00 89 2A 00
    -- 0, Midi Event NOTEOFF for channel 9 -> 00 89 20 00
    -- 86, Midi Event NOTEON for channel 9 -> 56 99 20 35
    -- 34, Midi Event NOTEOFF for channel 9 -> 22 89 20 00
    -- 86, Midi Event NOTEON for channel 9 -> 56 99 26 56
    -- 0, Midi Event NOTEON for channel 9 -> 00 99 29 56
    -- 0, Midi Event NOTEON for channel 9 -> 00 99 24 54
    -- 0, Midi Event NOTEON for channel 9 -> 00 99 20 60
    -- 0, Midi Event NOTEON for channel 9 -> 00 99 3C 60
    -- 34, Midi Event NOTEOFF for channel 9 -> 22 89 29 00
    -- 0, Midi Event NOTEOFF for channel 9 -> 00 89 3C 00
    -- 0, Midi Event NOTEOFF for channel 9 -> 00 89 20 00
    -- 0, Midi Event NOTEOFF for channel 9 -> 00 89 26 00
    -- 0, Midi Event NOTEOFF for channel 9 -> 00 89 24 00
    -- 206, Midi Event NOTEON for channel 9 -> 81 4E 99 2A 47
    -- 0, Midi Event NOTEON for channel 9 -> 00 99 20 47
    -- 34, Midi Event NOTEOFF for channel 9 -> 22 89 2A 00
    -- 0, Midi Event NOTEOFF for channel 9 -> 00 89 20 00
    -- 206, Midi Event NOTEON for channel 9 -> 81 4E 99 20 60
    -- 0, Midi Event NOTEON for channel 9 -> 00 99 29 56
    -- 0, Midi Event NOTEON for channel 9 -> 00 99 24 54
    -- 0, Midi Event NOTEON for channel 9 -> 00 99 3C 60
    -- 34, Midi Event NOTEOFF for channel 9 -> 22 89 20 00
    -- 0, Midi Event NOTEOFF for channel 9 -> 00 89 29 00
    -- 0, Midi Event NOTEOFF for channel 9 -> 00 89 24 00
    -- 0, Midi Event NOTEOFF for channel 9 -> 00 89 3C 00
    -- 206, Midi Event NOTEON for channel 9 -> 81 4E 99 3D 47
    -- 0, Midi Event NOTEON for channel 9 -> 00 99 20 47
    -- 0, Midi Event NOTEON for channel 9 -> 00 99 2A 47
    -- 34, Midi Event NOTEOFF for channel 9 -> 22 89 20 00
    -- 0, Midi Event NOTEOFF for channel 9 -> 00 89 3D 00
    -- 0, Midi Event NOTEOFF for channel 9 -> 00 89 2A 00
    -- 86, Midi Event NOTEON for channel 9 -> 56 99 20 35
    -- 34, Midi Event NOTEOFF for channel 9 -> 22 89 20 00
    -- 86, Midi Event NOTEON for channel 9 -> 56 99 26 56
    -- 0, Midi Event NOTEON for channel 9 -> 00 99 20 60
    -- 0, Midi Event NOTEON for channel 9 -> 00 99 29 56
    -- 0, Midi Event NOTEON for channel 9 -> 00 99 3C 60
    -- 34, Midi Event NOTEOFF for channel 9 -> 22 89 3C 00
    -- 0, Midi Event NOTEOFF for channel 9 -> 00 89 29 00
    -- 0, Midi Event NOTEOFF for channel 9 -> 00 89 20 00
    -- 0, Midi Event NOTEOFF for channel 9 -> 00 89 26 00
    -- 206, Midi Event NOTEON for channel 9 -> 81 4E 99 2A 47
    -- 0, Midi Event NOTEON for channel 9 -> 00 99 20 47
    -- 34, Midi Event NOTEOFF for channel 9 -> 22 89 20 00
    -- 0, Midi Event NOTEOFF for channel 9 -> 00 89 2A 00
    -- 0, Meta Event 2F--00 FF 2F

    Je sais que l'indication sur le temps se trouve dans la première colonne de nombre, mais après, je suis perdu.
    Voila, comment transformer ces 206, 34, 86 en quadruple..Ronde ?
    S'il vous plait ?
    Merci.
    Lightman : a small MIDI composer : download

    Commentaire


    • #3
      Bonjour,

      J'ai quelques besoin en matière de mesure du temps et calcul des durée en musique et fichier midi.
      Il me semble que tu n'as pas forcément choisi la facilité, notamment avec la notation hexadécimale que, pour ma part je ne maîtrise pas du tout.
      Avant toute chose, peux-tu indiquer pour quelle utilisation comptes-tu faire cette conversion. C'est si, j'ai bien compris sur un fichier midi ? D'où cette autre question, avec quel séquenceur travailles-tu et sur quelle plateforme ?
      Parce que logiquement, selon ton séquenceur que tu utilises, notamment Cubase, Samplitude, Logic je suppose aussi, tu pourrais faire cette conversion bien plus facilement avec leur piano roll.
      Mais ce n'est peut-être pas ce que tu souhaires.

      Commentaire


      • #4
        Aucune idée en hexa, mais pour la gestion du temps et les "ticks" du séquenceur, regarde mon didacticiel sur le MIDI.
        Kronoscopie, tout sur le Kronos

        http://www.kronoscopie.fr

        Commentaire


        • #5
          Envoyé par deb76 Voir le message
          Bonjour,



          Il me semble que tu n'as pas forcément choisi la facilité, notamment avec la notation hexadécimale que, pour ma part je ne maîtrise pas du tout.
          Avant toute chose, peux-tu indiquer pour quelle utilisation comptes-tu faire cette conversion. C'est si, j'ai bien compris sur un fichier midi ? D'où cette autre question, avec quel séquenceur travailles-tu et sur quelle plateforme ?
          Parce que logiquement, selon ton séquenceur que tu utilises, notamment Cubase, Samplitude, Logic je suppose aussi, tu pourrais faire cette conversion bien plus facilement avec leur piano roll.
          Mais ce n'est peut-être pas ce que tu souhaires.
          Bonjour,
          J'écris un petit programme pour piloter un instrument midi de type synthétiseur et je voudrais adapter un fichier midi au type de donnée attendu pas ce programme, des note avec la tonalité, la vélocité, et la durée de la note. Mais je ne sais pas comment convertir les données sur le temps d'un fichier midi en figure de temps.
          Lightman : a small MIDI composer : download

          Commentaire


          • #6
            Tu pourrais me mettre le doigt dessus ? Je trouve pas... Désolé. Merci
            Lightman : a small MIDI composer : download

            Commentaire


            • #7
              Préparation des pistes
              -------------------------

              Les valeurs qui vont suivre dépendent de la résolution de votre séquenceur. Si cette dernière est de 480, plus ou moins la norme aujourd'hui, cela veut dire que pour une mesure à quatre temps, soit quatre noires par mesure (indiqué par le symbole 4/4 ou C sur une partition), nous aurons la division suivante :

              1ère mesure
              1er temps = position 1-1-0
              2ème temps = position 1-2-0
              3ème temps = position 1-3-0
              4ème temps = position 1-4-0

              2ème mesure
              1er temps = position 2-1-0
              2ème temps = position 2-2-0
              3ème temps = position 2-3-0
              4ème temps = position 2-4-0

              quant à la division de 480 ticks, cela signifie que la valeur de la :

              noire = 480
              croche = 240
              double-croche = 120
              triple-croche = 60
              quadruple croche = 30

              Un exemple, avec une mesure à quatre temps qui indique une noire, une blanche puis deux croches, le séquenceur indiquera la position suivante pour la note concernée :

              noire = position 1-1-0
              blanche = position 1-2-0
              1ère croche = position 1-4-0
              2ème croche = position 1-4-240

              Avec un triolet de croche (cad jouer trois croches dans le temps qu'il faudrait pour en jour deux), il faudra donc diviser 480 par trois (160) et la position du séquenceur sera :

              croche = 1-1-0
              croche = 1-1-160
              croche = 1-1-320
              note d'après = 1-2-0

              Maintenant que la position de l'horloge du séquenceur est comprise, passons donc à la préparation des pistes.
              Kronoscopie, tout sur le Kronos

              http://www.kronoscopie.fr

              Commentaire


              • #8
                Merci François.
                j'avais vu ce document déjà, mais j'arrive pas à tirer ce que je souhaite, surtout que je ne sais pas vraiment comment ça fonctionne, quel calcul effectué, en fonction de quoi, je suis perdu complètement sur le coup. Non pas que je ne sache pas faire une division par 4 ou par 3 mais je me demande pourquoi dans mon fichier midi ci-dessus, j'ai des valeur comme 34, 86, 206. Pourtant la signature doit être 4/4, le tempo je ne sais pas, et je ne sais pas ce qui est lié.
                Désolé, je fais le boulet. :mefie
                Lightman : a small MIDI composer : download

                Commentaire


                • #9
                  Je n'ai pas mon Christian Braut sous la main mais je suis sûr que c'est expliqué dans l'un de ses deux ouvrages sur la norme MIDI. Peut-être un achat à faire ?
                  Kronoscopie, tout sur le Kronos

                  http://www.kronoscopie.fr

                  Commentaire


                  • #10
                    JE n'ai pas les moyen technique actuellement de me procurer le livre d'or et les rare fois où ce serait l'occase ne j'y ai pas pensé en tout cas. Désolé, c'est ma faute.. Va falloir que j'attende deux mois pour faire la conversion. Merci quand même.
                    Lightman : a small MIDI composer : download

                    Commentaire


                    • #11
                      eBay ?
                      Kronoscopie, tout sur le Kronos

                      http://www.kronoscopie.fr

                      Commentaire


                      • #12
                        Envoyé par Francois Voir le message
                        eBay ?
                        ... et fouiner sur Internet en attendant .

                        C'est effectivement expliqué, décortiqué dans le Braut tome 1 - indigeste tout de même :?
                        Dernière modification par iaorana, 22 juin 2010, 21h03. Motif: ajout

                        Commentaire


                        • #13
                          Envoyé par DMNL Voir le message
                          -- 0, Meta Event 58--00 FF 58 02 02 18 08
                          -- 0, Meta Event 51--00 FF 51 07 27 0E
                          -- 0, Meta Event 03--00 FF 03 54 48 20 32 2D 34 20 4E 6D 6C 53 74 72 20 54 30 37 31 20 46 75 6C 6C 4B 69 74
                          -- 0, Meta Event 02--00 FF 02 43 6F 70 79 72 69 67 68 74 20 A9 20 32 30 30 39 20 50 43 20 44 4F 43 54 4F 52 53 2C 20 4C 4C 43
                          -- 0, Meta Event 2F--00 FF 2F
                          Track 2
                          -- 0, Meta Event 03--00 FF 03 54 48 20 32 2D 34 20 4E 6D 6C 53 74 72 20 54 30 37 31 20 46 75 6C 6C 4B 69 74

                          -- 0, Midi Event NOTEON for channel 9 -> 00 99 29 56
                          -- 0, Midi Event NOTEON for channel 9 -> 00 99 3C 60
                          -- 0, Midi Event NOTEON for channel 9 -> 00 99 2A 60
                          -- 0, Midi Event NOTEON for channel 9 -> 00 99 24 54
                          -- 30, Midi Event NOTEOFF for channel 9 -> 1E 89 29 00
                          -- 0, Midi Event NOTEOFF for channel 9 -> 00 89 3C 00
                          -- 0, Midi Event NOTEOFF for channel 9 -> 00 89 2A 00
                          -- 0, Midi Event NOTEOFF for channel 9 -> 00 89 24 00
                          -- 206, Midi Event NOTEON for channel 9 -> 81 4E 99 2A 47
                          .....
                          -- 0, Meta Event 2F--00 FF 2F
                          Dans un fichier MIDI:
                          - les évenements (notes, pitch,bend, messages spéciaux, etc...) sont déclarés avec un delta time,puis les infos de l'évenement. ex: 00 99 29 56 = delta time = 00 , note on canal 10* = 99 , note = 29, velocité = 56
                          - les durées sont exprimées en delta time, c'est à dire la différence de temps par rapport à l'evenement précédant.
                          - les informations de timing sont compressées pour tenir le moins de place possible. on doit pouvoir trouver sur le web les explications pour écrire le bout de programme necessaire à ce transcodage.
                          - Les infos de delta time sont aussi tributaires de la resolution du fichier MIDI.

                          (* le canal 1 => 0, le canal 16 => F)

                          Dans tous les cas les informations du fichier MIDI ne sont pas écrites "en clair" et nécessitent un décodage. Une fois que les routines sont écrites, c'est beaucoup plus simple à décortiquer.

                          Le livre d'or MIDI de Christian BRAUT reste une base incontournable ou toutes ces explications sont fournies avec des exemples.

                          Dans ton fichier, on reconnait par exemple les évenements suivants:
                          Track 1
                          58 = time signature
                          51 = Tempo change
                          03 = Track name
                          02 = copyright
                          2F = End of track
                          Track 2
                          03 = Track name
                          ... evenements de notes
                          2F = End of track

                          @+
                          Montage 8, Motif ES8, Korg M1, MACKIE Onyx 1620 FW, Sonar 6.21 PE, Fostex PM1

                          Commentaire


                          • #14
                            François et iaoranaemaeva, justement, je ne peux faire d'achat sur internet actuellement.

                            tinorocky, merci pour cette contribution.

                            Même si le delta-time n'est pas écrit en claire, dans le fichier midi que j'ai présenté, il apparait clairement dans la première colonne de nombres en décimal.

                            Ce que je cherche à savoir, c'est l'opération à effectuer pour transformer un delta-time en figure.

                            A chaque écoulement de temps entre deux évènement on a un delta-time différent de zéro.
                            Après un note-on j'ai un note-off accompagné du delta-time.
                            Ce delta time est une durée de quel ordre ? Quelle est la durée, je crois qu'on appelle ça, des ticks ?
                            Normalement il est fonction du tempo et je crois aussi de la signature.
                            Mais moi ce que je veux, c'est la durée non relative au tempo ni à la signature.
                            Quelque soit la signature et le tempo, la durée des note est toujours indiquée par une des 7 figures de note.

                            Malheureusement, je cherchais ce calcul pour convertir des fichier midi dans une autre système mais je craint que ça ne puisse être possible.
                            Lightman : a small MIDI composer : download

                            Commentaire


                            • #15
                              Envoyé par DMNL Voir le message
                              François et iaoranaemaeva, justement, je ne peux faire d'achat sur internet actuellement.
                              En disant "fouiner sur Internet", je ne parlais pas d'achat, mais de la recherche d'articles (gratuits) sur le sujet . Il me paraît invraisemblable que tu n'en trouves pas :o !

                              Commentaire

                              Chargement...
                              X