Fichier MIDI hexa -> décimal ?
- 56 réponses
- 4 participants
- 2 601 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)
14203
Modérateur·trice thématique
Membre depuis 22 ans
2 Posté le 04/04/2017 à 11:22:28
Bonjour Nicolas,
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.
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
1178
AFicionado·a
Membre depuis 21 ans
3 Posté le 04/04/2017 à 19:34:53
Merci pour la réponse.
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
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)
14203
Modérateur·trice thématique
Membre depuis 22 ans
4 Posté le 04/04/2017 à 20:53:19
L'événement Program Change ne comporte qu'un seul octet de valeur, ici 25 (donnée 1).
Formateur en techniques sonores ; électronicien ; auteur @ sonelec-musique.com
Nicolas Massot
1178
AFicionado·a
Membre depuis 21 ans
5 Posté le 04/04/2017 à 21:46:08
D'accord. Alors "données 2 = 0" c'est quoi ?
Rémy M. (chimimic)
14203
Modérateur·trice thématique
Membre depuis 22 ans
6 Posté le 04/04/2017 à 23:39:34
Une idée du développeur de ce soft
N'en tiens pas compte.
N'en tiens pas compte.
Formateur en techniques sonores ; électronicien ; auteur @ sonelec-musique.com
Nicolas Massot
1178
AFicionado·a
Membre depuis 21 ans
7 Posté le 05/04/2017 à 00:04:59
D'accord. Ca a l'air simple à comprendre.
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.
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)
14203
Modérateur·trice thématique
Membre depuis 22 ans
8 Posté le 05/04/2017 à 08:22:10
Et tu utilises toujours un instrument virtuel ou synthé "GM" (compatible General MIDI) pour le son de ta trompette ?
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 ?
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
1178
AFicionado·a
Membre depuis 21 ans
9 Posté le 05/04/2017 à 13:04:19
c'était un exemple pour illustrer mon pb.
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.
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
442
Posteur·euse AFfamé·e
Membre depuis 19 ans
10 Posté le 05/04/2017 à 13:25:50
Si tu pouvais nous fournir le tableau de description MIDI de l'orgue, ainsi que la suite Hexa de ton fichier sysex on pourrait regarder à quoi ça correspond.
- < Liste des sujets
- Charte