Fichier MIDI hexa -> décimal ?
- 56 réponses
- 4 participants
- 2 611 vues
- 5 followers
Nicolas Massot
1178
AFicionado·a
Membre depuis 21 ans
Sujet de la discussion Posté le 03/04/2017 à 18:01:30Fichier MIDI hexa -> décimal ?
Bonjour,
Je dois modifier un fichier MIDI d'un morceau joué par orgue à tuyaux doté d'un enregistreur MIDI.
J'ai la notice des contrôleurs utilisés dans l'orgue mais quand j'ouvre le fichier avec cubase, il ne m'affiche pas les mêmes numéros de contrôleurs que ceux de la notice.
Exemple : pour changer de registre de l'orgue, comme pour les sons des synthés, on utilise program change.
Sur un synthé général MIDI, program change 0 = piano etc...
Sur l'orgue, j'ai par exemple
Registre n°1 ON = program change - canal 8 - controler 00
Registre n°1 OFF = program change - canal 8 - controler 01
ou
Registre n°x ON = program change - canal 8 - controler 0A
Registre n°x OFF = program change - canal 8 - controler 0B
Sauf que dans cubase, cela n'apparaît pas de la même façon, on a plutôt des chose du style
Program Change - donnée 1 = 2 - donnée 2 = 0 - donnée 3 = (vide) - voie = 8
J'ai donc trois colonnes de données et aucune ne correspond à celles de la notice.
Est-ce que c'est parce que j'ouvre le fichier MIDI avec un logiciel qui n'est pas adéquat ?
De plus, j'ai plein de contrôleurs qui apparaissent et qui ne correspondent pas à ceux de la notice.
Quelqu'un a une idée pour la correspondance des deux langages, s'ils sont toutefois différents ?
J'ai essayé d'ouvrir avec un éditeur hexa mais j'ai un flow de chiffres incompréhensibles.
Merci
Je dois modifier un fichier MIDI d'un morceau joué par orgue à tuyaux doté d'un enregistreur MIDI.
J'ai la notice des contrôleurs utilisés dans l'orgue mais quand j'ouvre le fichier avec cubase, il ne m'affiche pas les mêmes numéros de contrôleurs que ceux de la notice.
Exemple : pour changer de registre de l'orgue, comme pour les sons des synthés, on utilise program change.
Sur un synthé général MIDI, program change 0 = piano etc...
Sur l'orgue, j'ai par exemple
Registre n°1 ON = program change - canal 8 - controler 00
Registre n°1 OFF = program change - canal 8 - controler 01
ou
Registre n°x ON = program change - canal 8 - controler 0A
Registre n°x OFF = program change - canal 8 - controler 0B
Sauf que dans cubase, cela n'apparaît pas de la même façon, on a plutôt des chose du style
Program Change - donnée 1 = 2 - donnée 2 = 0 - donnée 3 = (vide) - voie = 8
J'ai donc trois colonnes de données et aucune ne correspond à celles de la notice.
Est-ce que c'est parce que j'ouvre le fichier MIDI avec un logiciel qui n'est pas adéquat ?
De plus, j'ai plein de contrôleurs qui apparaissent et qui ne correspondent pas à ceux de la notice.
Quelqu'un a une idée pour la correspondance des deux langages, s'ils sont toutefois différents ?
J'ai essayé d'ouvrir avec un éditeur hexa mais j'ai un flow de chiffres incompréhensibles.
Merci
[ Dernière édition du message le 03/04/2017 à 18:04:15 ]
Rémy M. (chimimic)
14205
Modérateur·trice thématique
Membre depuis 22 ans
41 Posté le 30/04/2017 à 08:42:46
Citation :
Je crois donc que cubase 5 et l'éditeur hexa transcrivent le contenu du fichier MIDI en pensant qu'il s'agit d'un control change 7 avec les valeurs décrites plus haut, mais qu'en réalité il n'en est rien.
Un éditeur hexa ne peut pas se tromper, puisqu'il n'interprète rien. Il ne fait qu'afficher ce qu'il lit.
Cubase 5 est peut-être perdu, mais si les données ne sont pas aux normes MIDI, on ne peut pas lui en vouloir.
Citation :
lorsque je lis le fichier MIDI en question sur l'orgue, la pédale d'expression s'ouvre de la même manière que lorsqu'elle a été enregistrée. Par contre, j'ai crée un fichier MIDI de toute pièce en écrivant manuellement exactement les mêmes évènements : et bien, en lecture, il ne se passe rien, la pédale d'expression ne bouge pas. Donc, il ne s'agit pas d'un vrai control change 7
Ce test semble confirmer que les données correspondant aux mouvements de la pédale d'expression sont sauvegardées dans un "format" autre qu'un simple Control Change 7/39 (volume) ou 11/43 (expression)...
Formateur en techniques sonores ; électronicien ; auteur @ sonelec-musique.com
Nicolas Massot
1178
AFicionado·a
Membre depuis 21 ans
42 Posté le 30/04/2017 à 10:06:06
Citation de chimimic :
Un éditeur hexa ne peut pas se tromper, puisqu'il n'interprète rien. Il ne fait qu'afficher ce qu'il lit.
Cubase 5 est peut-être perdu, mais si les données ne sont pas aux normes MIDI, on ne peut pas lui en vouloir.)
Je comprends bien, mais ce que je veux dire par "tromper" c'est que si, par exemple, le code "original" est du code gray, l'éditeur hexa va afficher des données interprétées comme du binaire, donc faussées, dans le sens où elles ne correspondent à la réalité programmée (code gray).
00000100 en binaire = 04 en hexa
00000100 en code gray = 07 en hexa
Citation de chimimic :
Ce test semble confirmer que les données correspondant aux mouvements de la pédale d'expression sont sauvegardées dans un "format" autre qu'un simple Control Change 7/39 (volume) ou 11/43 (expression)...
C'est exactement ce que je voulais entendre. Mais alors, comment savoir quel est ce "format" ? Comment retrouver le langage natif ?
Je pensais que le langage MIDI répondait à une norme ou format bien précis. Peut-on programmer autre chose, dans un autre langage pour envoyer des informations MIDI ?
[ Dernière édition du message le 30/04/2017 à 10:09:00 ]
Rémy M. (chimimic)
14205
Modérateur·trice thématique
Membre depuis 22 ans
43 Posté le 30/04/2017 à 10:36:43
La norme MIDI spécifie comment "coder" des évènements pour qu'ils soient reconnus par n'importe quelle machine "compatible MIDI". Si les données de jeu de l'orgue ou de la pédale d'expression sont sauvegardées sous une forme non "standard MIDI", alors le fichier MIDI résultant n'est pas un fichier MIDI compatible 100%.
Si certaines données ont été stockées dans un arrangement binaire différent de l'hexa standard (code Gray, BCD ou autre), c'était sans doute pour simplifier la vie de l'électronicien qui a mis au point le système électronique. Tu peux retrouver les valeurs d'origine en traduisant / convertissant chaque octet qui a besoin de l'être. Si le fabricant peut (accepte de) t'en dire plus sur la méthode employée, tant mieux. Sinon ça va te prendre plus de temps.
Si certaines données ont été stockées dans un arrangement binaire différent de l'hexa standard (code Gray, BCD ou autre), c'était sans doute pour simplifier la vie de l'électronicien qui a mis au point le système électronique. Tu peux retrouver les valeurs d'origine en traduisant / convertissant chaque octet qui a besoin de l'être. Si le fabricant peut (accepte de) t'en dire plus sur la méthode employée, tant mieux. Sinon ça va te prendre plus de temps.
Formateur en techniques sonores ; électronicien ; auteur @ sonelec-musique.com
Nicolas Massot
1178
AFicionado·a
Membre depuis 21 ans
44 Posté le 30/04/2017 à 12:40:30
Imaginons que le code d'origine soit du code Gray. Ma valeur affichée en hexa soit un control change 07. Je converti l'hexa en gray, j'obtiens 00000100. Pour créer mon fichier MIDI, je suis obligé d'écrire en hexa. Je vais donc convertir 00000100 en hexa et je retombe sur 07. Et là ça ne marche pas.
Rémy M. (chimimic)
14205
Modérateur·trice thématique
Membre depuis 22 ans
45 Posté le 30/04/2017 à 13:10:33
Citation :
Pour créer mon fichier MIDI, je suis obligé d'écrire en hexa
Pour un fichier MIDI standard, oui.
Mais dans ton cas (fichier MIDI apparemment pas standard) il faudrait peut-être utiliser le codage prévu par le concepteur. Tu as l'avantage d'avoir créé un fichier "MIDI" ne contenant que des infos "pédale d'expression". Utilise-le comme élément de comparaison.
Formateur en techniques sonores ; électronicien ; auteur @ sonelec-musique.com
Nicolas Massot
1178
AFicionado·a
Membre depuis 21 ans
46 Posté le 30/04/2017 à 21:52:47
Je voudrais bien me servir de mon fichier MIDI ne contenant que des infos "pédale d'expression" mais avec quel logiciel l'ouvrir ? L'éditeur hexa ne m'aide pas. J'ai essayé de convertir les données dans d'autres langages que le binaire sans résultats probants.
Rémy M. (chimimic)
14205
Modérateur·trice thématique
Membre depuis 22 ans
47 Posté le 30/04/2017 à 22:40:00
Peux-tu mettre un lien vers le fichier en question ?
J'y jetterai un oeil.
J'y jetterai un oeil.
Formateur en techniques sonores ; électronicien ; auteur @ sonelec-musique.com
Nicolas Massot
1178
AFicionado·a
Membre depuis 21 ans
48 Posté le 30/04/2017 à 23:59:41
le voici
https://www.dropbox.com/s/rgewh3vkblhwqiy/_RD_0023.MID?dl=0
Je précise que dans ce fichier, je n'ai joué aucune note. J'ai simplement ouvert lentement la pédale.
https://www.dropbox.com/s/rgewh3vkblhwqiy/_RD_0023.MID?dl=0
Je précise que dans ce fichier, je n'ai joué aucune note. J'ai simplement ouvert lentement la pédale.
[ Dernière édition du message le 01/05/2017 à 00:37:33 ]
alex.d.
5593
Je poste, donc je suis
Membre depuis 9 ans
49 Posté le 01/05/2017 à 10:59:29
Bonjour,
Je m'immisce dans la conversation. Ce cas m'intrigue
Dans ce fichier MIDI, on a d'abord un message System Exclusive, avec un ID de 0x31, correspondant à "Intercontinental Electronics", qui semble être utilisé en pratique par Viscount (ont-ils racheté la société ?). C'est cohérent, Viscount fait des orgues MIDIfiés et des mécanismes de MIDIfication d'orgues. Je ne sais pas si on peut déduire le modèle exact du boîtier MIDI à partir de ce sysex.
Par la suite, on a les valeurs suivantes sur le CC #7 :
(décimal, et traduction en binaire)
60 0011 1100
56 0011 1000
04 0000 0100
24 0001 1000
36 0010 0100
32 0010 0000
28 0001 1100
16 0001 0000
44 0010 1100
40 0010 1000
20 0001 0100
08 0000 1000
52 0011 0100
48 0011 0000
12 0000 1100
Ça ne semble pas être la valeur littérale (pas proportionnelle). On remarque que les deux premiers bits sont toujours à 0 (pour le premier bit, c'est imposé par la spec MIDI), et aussi les deux derniers. Donc en pratique, seuls les 4 bits centraux sont utilisés, soit 16 valeurs. Ça ne ressemble pas à un code de Gray.
Juste une idée, comme ça, il faudrait tenter d'isoler ces 4 bits du milieux et voir ce que ça donne en décimal en prenant juste ces bits (éventuellement en ordre inverse, d'après le schéma qui semble se dessiner).
Je m'immisce dans la conversation. Ce cas m'intrigue
Dans ce fichier MIDI, on a d'abord un message System Exclusive, avec un ID de 0x31, correspondant à "Intercontinental Electronics", qui semble être utilisé en pratique par Viscount (ont-ils racheté la société ?). C'est cohérent, Viscount fait des orgues MIDIfiés et des mécanismes de MIDIfication d'orgues. Je ne sais pas si on peut déduire le modèle exact du boîtier MIDI à partir de ce sysex.
Par la suite, on a les valeurs suivantes sur le CC #7 :
(décimal, et traduction en binaire)
60 0011 1100
56 0011 1000
04 0000 0100
24 0001 1000
36 0010 0100
32 0010 0000
28 0001 1100
16 0001 0000
44 0010 1100
40 0010 1000
20 0001 0100
08 0000 1000
52 0011 0100
48 0011 0000
12 0000 1100
Ça ne semble pas être la valeur littérale (pas proportionnelle). On remarque que les deux premiers bits sont toujours à 0 (pour le premier bit, c'est imposé par la spec MIDI), et aussi les deux derniers. Donc en pratique, seuls les 4 bits centraux sont utilisés, soit 16 valeurs. Ça ne ressemble pas à un code de Gray.
Juste une idée, comme ça, il faudrait tenter d'isoler ces 4 bits du milieux et voir ce que ça donne en décimal en prenant juste ces bits (éventuellement en ordre inverse, d'après le schéma qui semble se dessiner).
Rémy M. (chimimic)
14205
Modérateur·trice thématique
Membre depuis 22 ans
50 Posté le 01/05/2017 à 11:29:25
Bonjour Alex,
tu as bien raison de t'immiscer ! Plus on est de fous...
J'ai passé plus de deux heures ce matin à décortiquer ce bout de fichier et essayer de comprendre la philosophie du fabricant. J'en suis arrivé à la même conclusion que toi : ça ne ressemble pas à du Gray. D'autant qu'une conversion en Gray de valeurs comprises entre 0 et 127 aurait conduit à des valeurs supérieures à 127, ce qui aurait posé problème (ou nécessité de la tambouille supplémentaire pour répartir l'info sur 2 octets en 2x7 bits).
L'idée du codage sur 4 bits est plausible, mais pourquoi diable se limiter à cette résolution si le fabricant affirme qu'on peut disposer de 60 valeurs (6 bits requis) ? Même en travaillant sur ces 4 bits centraux, je ne vois pas d'évolution logique progressive allant dans le sens de valeurs 0..127.
tu as bien raison de t'immiscer ! Plus on est de fous...
J'ai passé plus de deux heures ce matin à décortiquer ce bout de fichier et essayer de comprendre la philosophie du fabricant. J'en suis arrivé à la même conclusion que toi : ça ne ressemble pas à du Gray. D'autant qu'une conversion en Gray de valeurs comprises entre 0 et 127 aurait conduit à des valeurs supérieures à 127, ce qui aurait posé problème (ou nécessité de la tambouille supplémentaire pour répartir l'info sur 2 octets en 2x7 bits).
L'idée du codage sur 4 bits est plausible, mais pourquoi diable se limiter à cette résolution si le fabricant affirme qu'on peut disposer de 60 valeurs (6 bits requis) ? Même en travaillant sur ces 4 bits centraux, je ne vois pas d'évolution logique progressive allant dans le sens de valeurs 0..127.
Formateur en techniques sonores ; électronicien ; auteur @ sonelec-musique.com
- < Liste des sujets
- Charte