Récupérer les notes (tonalité+vélocité+durée) d'un fichier Midi

Récupérer les notes (tonalité+vélocité+durée) d'un fichier Midi - Divers - Programmation

Marsh Posté le 21-06-2010 à 21:35:36    

Bonjour,
Je souhaiterais récupérer les notes d'un fichier midi.
je fais appel au professionnel et néanmoins amateur parmi nous pour résoudre ce problème efficacement.
Une utilitaire plus un autre plus un autre, nous parviendrons à notre fin.
Le problème :

  • Les fichier midi de type 1 ::= je cherche le format.
  • Le fichier cible ::= je veux récupérer la tonalité+la vélocité+la durée de la note sous forme d'entiers compris entre 0 et 127, tous ça calé comme on peut.


Merci pour votre aide.
Si je peu apporter des précision.

Reply

Marsh Posté le 21-06-2010 à 21:35:36   

Reply

Marsh Posté le 21-06-2010 à 21:57:25    

J'ai trouvé un lien sur le format midi mais c'est en english. je ne lis pas l'english.
sonicspot.com/guide/midifiles

Reply

Marsh Posté le 21-06-2010 à 22:22:02    

j'ai trouvé un autre document mais j'y pige rien pour le moment ::= http://www.onicos.com/staff/iz/formats/midi.html
 
Par contre j'ai retrouvé une bibliothèque avec Ada que j'ai déjà utilisé, http://pfreydiere.free.fr/ada-midi.tar.gz ,mais si je me souviens bien... C'est pour caler les notes que je vais galérer.
Je m'en vais tester ça sous linux et je vous préciserais mais problème si j'avance.

Reply

Marsh Posté le 22-06-2010 à 00:02:03    

Voici un dump d'un fichier midi d'une ou deux phrases de drums avec ada-midi.

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  


Faudrait que je repère la note.
Et je je comprenne comment on mesure le temps.
 
J'ai repéré les octets de status, data1 data2.
 
Reste le temps, c'est le premier chiffre qui indique le temps.. Mais comment ça marche...  :p


Message édité par Profil supprimé le 22-06-2010 à 00:09:25
Reply

Marsh Posté le 22-06-2010 à 13:54:05    

Un petit document sur le format de fichier midi ::= http://www.supinfo-projects.com/en/2004/midi_files/
Le Wiki sur la signature ::= http://fr.wikipedia.org/wiki/Signature_rythmique
je vais voir ce que je peux faire avec ça.


Message édité par Profil supprimé le 22-06-2010 à 13:54:25
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed