Fichier MIDI hexa -> décimal ?
- 56 réponses
- 4 participants
- 2 846 vues
- 5 followers

Nicolas Massot

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)

un fichier Midi est structuré d'une manière bien précise, et pour en comprendre le contenu affiché dans un éditeur hexa, il faut déjà connaître cette structure. Sans connaissance précise de cette structure et pour modifier son contenu, il faut utiliser un soft comme Cubase, Reaper ou autre qui gère les fichiers MIDI en import et en export.
Un évènement MIDI peut comporter 1, 2, 3 ou plus octets.
Un évènement de type Program Change ne comporte que deux octets :
- 1 premier octet "Status" qui englobe l'info "Program Change" et "Numéro de canal MIDI"
- 1 second octet "Data" qui est le numéro du programme
Cubase, comme Reaper ou autres softs de cette catégorie, sont censés extraire les données de la même façon. Mais chacun peut procéder de façon différente pour afficher les données extraites. Une table avec trois colonnes permet d'afficher plusieurs types d'évènements MIDI, ceux qui ne nécessitent pas toutes les colonnes laissent simplement des places vides. Il te faut donc juste localiser les colonnes "Canal MIDI" et "Valeur Program Change" et faire les modifs qui s'imposent.
Formateur en techniques sonores ; électronicien ; auteur @ sonelec-musique.com

Nicolas Massot

Dans ce cas concret que faut-il interpréter :
Program Change → donnée 1 = 25 - donnée 2 = 0 - donnée 3 = (vide) - voie = 8
Ce dont je suis certain est que voie 8 est le canal 8
Donnée 1 & 2 peuvent prendre comme valeur de 1 à 128, donc pour traduire en valeur hexa, il faut enlever -1 à la valeur décimale. Donc 25 - 1 = 24 decimal → 18 hexa
Sur le manuel de l'orgue il n'y a rien qui correspond à 18 hexa car les fonctions et registres s'arrêtent à 16.
Bizarre

Rémy M. (chimimic)

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

Nicolas Massot


Rémy M. (chimimic)


N'en tiens pas compte.
Formateur en techniques sonores ; électronicien ; auteur @ sonelec-musique.com

Nicolas Massot

Pourtant, en tenant compte uniquement du premier octet (25) et en enlevant -1 (ou pas) puisque ça fonctionne de 1 à 128 au lieu de 0 à 127, j'obtiens en hexa une valeur incompatible avec le manuel de la liste des contrôleur et program change fourni par le fabriquant.
Pour faire simple, c'est comme si je m'enregistre dans un logiciel de musique, en train de jouer le son trompette du synthé.
Celui-ci porte le n°56 du program change (données fabriquant).
Quand j'ouvre le fichier MIDI, il est marqué n°41 (au lieu de 56 : trompette), mais quand je clique sur lecture, il joue pourtant le son de la trompette.
C'est comme si le fabriquant s'était trompé dans la liste des program change. Pourtant, c'est une boîte très sérieuse et reconnue dans le monde entier.
[ Dernière édition du message le 05/04/2017 à 00:07:15 ]

Rémy M. (chimimic)

Si oui, alors il y a un truc qui cloche, car le numéro 56 (plage 0..127) ou 57 (plage 1..128) correspond à Trumpet, alors que le numéro 41 (plage 0..127) ou 42 (plage 1..128) correspond à Viola.
Si non, tout dépend de la façon dont sont interprétés tes messages de Program Change par l'instrument utilisé.
Pas de Control Change (bank select et autres) en plus des Program Change ?
Formateur en techniques sonores ; électronicien ; auteur @ sonelec-musique.com

Nicolas Massot

Sauf que là, ce n'est pas un synthé mais un orgue à tuyaux gigantesque dont les tuyaux sont pilotés électroniquement par 5 claviers et un pédalier/ Les banques de son (registres sur l'orgue à tuyaux) ne sont évidemment pas général midi.
http://www.orgue-roquevaire.fr/
Sur un orgue il y a plusieurs rangées de tuyaux qui produisent des sonorités différentes. On leur donne des noms d'instruments, comme trompette, flûte, hautbois etc. L'orgue est un instrument multi-timbres comme le synthé.
Le manuel donne une affection de numéro program change à chaque registre de l'orgue. Le manuel donne par exemple : flûte → program change 00 (hexa), canal 1
Mais dans cubase j'ai le bon canal mais un autre numéro de program change qui ne correspond à rien dans le manuel.
Les control change servent à activer ou désactiver des accessoires de l'orgue comme l'accouplement de plusieurs claviers. Là par contre, le manuel donne bien les valeurs retrouvées dans cubase.
[ Dernière édition du message le 05/04/2017 à 13:09:24 ]

zedbee


Rémy M. (chimimic)

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

Nicolas Massot

https://www.dropbox.com/sh/g9ljnowy6ri7kol/AABKa0dBsmzAymhtkQkUB-oka?dl=0
Le fichier sysex se trouve au tout début de la piste 1. Je ne suis pas chez moi et je n'ai pas de soft pour l'ouvrir.
Les 2 premières pages du pdf sont les program change répartis par clavier et les deux dernières sont les controleurs, répartis également par clavier.
Pour actionner un contrôleur → 127, pour le désactiver → 0
Pour activer un program change on indique son numéro de prog change et le canal, pour le désactiver, on indique son numéro +1 et le canal.
Exemple pour le registre bourdon 8' pedale
Activer → program cchange 00, canal 8
Désactiver → program change 01, canal 8
[ Dernière édition du message le 05/04/2017 à 13:53:11 ]

Nicolas Massot

Faut-il absolument exclure une erreur dans le manuel, même s'il s'agit d'un fabricant sérieux ?
Oui car ils utilisent le même protocole depuis 20 ans. C'est eux qui font la maintenance des orgues et ils n'ont pas intérêt à se planter. Ils m'ont fourni la doc ces jours ci.
[ Dernière édition du message le 05/04/2017 à 13:57:06 ]

Rémy M. (chimimic)

C'est sans doute la raison pour laquelle certaines données ne correspondent pas à celles attendues quand tu l'ouvres dans un éditeur/séquenceur...
Formateur en techniques sonores ; électronicien ; auteur @ sonelec-musique.com

zedbee

j'ai 6 pistes séparées plus une petite entête en sysex.
sur chaque piste j'ai la composition sous forme de notes, plus des commandes midi
ex sur le canal 1 :
N° controleur | Valeur
36 | 127
38 | 127
% | 22
% | 0
....
sous logic il y une fonction qui permet de visualiser l'intégralité des événements midi sous forme de liste, que l'on peut modifier facilement.
je ne me souviens plus il n'y a pas ça sous cubase ?

Rémy M. (chimimic)

Pas essayé de voir ce que ça donnait dans Cubase ou Reaper, j'ai simplement regardé l'entête du fichier, et celle qui caractérise les SMF ne s'y trouve pas.
Formateur en techniques sonores ; électronicien ; auteur @ sonelec-musique.com

Nicolas Massot

Si je modifie le fichier et que je l'enregistre sous ci basé, j'aurais un fichier midi standard qui ne pourra pas être lu avec le lecteur midi de l'orgue.

Rémy M. (chimimic)

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

Nicolas Massot


Nicolas Massot

ex sur le canal 1 :
N° controleur | Valeur
36 | 127
38 | 127
% | 22
% | 0
....
Sous cubase, j'obtiens ceci pour la voie 1
https://www.dropbox.com/s/36uy5qcyn31lej4/voie1.jpg?dl=0

Rémy M. (chimimic)

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

Rémy M. (chimimic)

J'avais récupéré le fichier .MID sur Dropbox avec le menu contextuel "enregistrer la cible du lien..." et le fichier ainsi sauvegardé était "enveloppé" dans une couche HTML. En utilisant le bouton Télécharger de Dropbox, j'obtiens un fichier bien moins volumineux, et surtout avec l'entête SMF (MThd et MTrk). Donc déjà plus cohérent...
Formateur en techniques sonores ; électronicien ; auteur @ sonelec-musique.com

Nicolas Massot

C'est comme si sur le synthé on pouvait sélectionner trompette, violon, hautbois, piano etc etc en même temps et sur le même canal.
Dans le cas de l'orgue, l'information du program change donne l'ordre d'ouvrir un relais électrique qui active un registre de l'orgue.
En envoyant plusieurs program change en même temps, on ouvre autant de relais en même temps.
[ Dernière édition du message le 05/04/2017 à 22:52:50 ]

Nicolas Massot

Est-ce qu'il contient des ordres du genre banque de son ?

Rémy M. (chimimic)

J'ai oublié de préciser que sur l'orgue, contrairement au synthé, on peut additionner les registres, c'est donc normal que l'on trouve plusieurs program change en même temps.
C'est comme si sur le synthé on pouvait sélectionner trompette, violon, hautbois, piano etc etc en même temps et sur le même canal.
Dans le cas de l'orgue, l'information du program change donne l'ordre d'ouvrir un relais électrique qui active un registre de l'orgue.
En envoyant plusieurs program change en même temps, on ouvre autant de relais en même temps.
OK, je comprends mieux...
Contenu fichier "sysex" :
≡1 RD70 Recorded _RD_0006≈
Formateur en techniques sonores ; électronicien ; auteur @ sonelec-musique.com
[ Dernière édition du message le 05/04/2017 à 23:34:41 ]
- < Liste des sujets
- Charte