Se connecter
Se connecter

ou
Créer un compte

ou

Sujet Fichier MIDI hexa -> décimal ?

  • 56 réponses
  • 4 participants
  • 2 498 vues
  • 5 followers
1 Fichier 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

[ Dernière édition du message le 03/04/2017 à 18:04:15 ]

Afficher le premier post
41
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

42
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 ]

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.

Formateur en techniques sonores ; électronicien ; auteur @ sonelec-musique.com

44
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.
45
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

46
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.
47
Peux-tu mettre un lien vers le fichier en question ?
J'y jetterai un oeil.

Formateur en techniques sonores ; électronicien ; auteur @ sonelec-musique.com

48
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.

[ Dernière édition du message le 01/05/2017 à 00:37:33 ]

49
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).
50
Bonjour Alex,

tu as bien raison de t'immiscer ! Plus on est de fous... :bravo:

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