Le SYSEX dans toute sa splendeur !!
- 45 réponses
- 5 participants
- 3 077 vues
- 6 followers
lokaz33
166
Posteur·euse AFfiné·e
Membre depuis 16 ans
Sujet de la discussion Posté le 10/02/2017 à 23:10:33Le SYSEX dans toute sa splendeur !!
bonsoir les gens ! Bon je recopie le post que jai fais sur un groupe FB ^^ Donc je fais appel à vous, j'ai besoin de conseils mais surtout de cours je pense sur un sujet très préci ! Donc pour résumer depuis quelque temps j'ai acqui quelque vieilles machines, une Roland R8, une yamaha RX11, un sampler E-MU E6400 Ultra et une Proteus 2000 ! Donc bon j'exploite bien a fond mes jolis jouets ok mais j'aimerais programmer mes propres paramètres et je galère sur le SYSEX !!! Car c'est la seule façon pour moi de controler certains paramètres via mon controller midi, mais voila après de nombreuses heures de lectures sur le sujet je galère malgré les documentations a le mettre en place ! Alors j'ai quand même compris le principe et j'ai bien acquis le vocabulaire en partie mais j'ai du mal avec la R8 par exemple a comprendre comment chercher a controller un paramètre précis, ya peut être des termes ou je pense que comme je débute pour ce type de message midi hé bien je vois pas la fin ^^ voila en gros si quelqu'un pouvais me donner un coup de main la dessus j'en serais super heureux même si je sais que c'est pas le plus simple ! Mais je me dis que une fois bien compris le truc ça doit pas être si compliqué !! Merci
lokaz33
166
Posteur·euse AFfiné·e
Membre depuis 16 ans
21 Posté le 25/10/2017 à 11:52:51
Up je remonte ce post !!@Xavier, je commence à bien comprendre le système du sysex et pour la valeur négative je suis confronté au même problème que toi et j'ai des pistes si ça t'intéresse ?
x_X_x_av
1426
AFicionado·a
Membre depuis 15 ans
22 Posté le 25/10/2017 à 15:41:13
Salut
Il y a plusieurs manières de coder des valeurs en Midi (et surtout dans des messages SysEx).
La méthode officielle: 0 (zéro) code toujours pour la valeur la plus faible. Donc par exemple pour un fine tune dont la valeur est entre -49 et +49 cents, on a: 0 −> -49, 1 -> -48, 2 −> -47,… 49 -> 0, … 98 −> +49
La seconde méthode est le codage en complément à 2 utilisé par les ordinateurs (la plupart), avec lequel les valeurs négatives viennent se ranger très naturellement avant le zéro. Il faut imaginer une boucle 0,1,2…126,127, et retour à 0,1… Donc -1 est codé par 127 (la valeur max 1111111b) qui précède 0 dans la boucle (127+1=0 car la retenue disparaît), -2 devient 126 (1111110b), … et enfin -64 est codé 64 (1000000b). Dans ce cas le bit 7 indique le signe, et les autres bits codent la valeur positive comme d'habitude; le codage des valeurs négatives nécessite quelques calculs…
La calculatrice de Windows en mode «Programmeur» permet de convertir facilement un nombre en complément à 2.
https://fr.wikipedia.org/wiki/Compl%C3%A9ment_%C3%A0_deux
Attention: en Midi, seuls 7 bits sur les 8 d'un octet sont utilisables pour coder des valeurs, donc le bit de signe est le 7ème.
Pour les valeurs nécessitant plus de 7 bits (plus de 128 valeurs possibles), on va utiliser 14 bits. Après codage (une des 2 méthodes), il faut couper le mot en 2: les bits de poids «faible» (bits 1 à 7, least significant bits en anglais: LSB) et les bits de poids «fort» (bits 8 à 14, most significant bits: MSB). Le message Midi de Pitch-bend est le seul exemple standardisé, je crois. Normalement, les LSB sont transmis en premier, comme pour les messages RPN/NRPN.
Dans l'exemple précédent de xavierbzh, le MSB des valeurs négatives est 7Fh = 127 − on a très probablement un codage en complément à 2. La valeur -10 sera codée 1111111b 1110110b = 7Fh 76h, et -49 sera codé 1111111 1001111 = 7Fh 4Fh
J'espère avoir été clair…
Il y a plusieurs manières de coder des valeurs en Midi (et surtout dans des messages SysEx).
La méthode officielle: 0 (zéro) code toujours pour la valeur la plus faible. Donc par exemple pour un fine tune dont la valeur est entre -49 et +49 cents, on a: 0 −> -49, 1 -> -48, 2 −> -47,… 49 -> 0, … 98 −> +49
La seconde méthode est le codage en complément à 2 utilisé par les ordinateurs (la plupart), avec lequel les valeurs négatives viennent se ranger très naturellement avant le zéro. Il faut imaginer une boucle 0,1,2…126,127, et retour à 0,1… Donc -1 est codé par 127 (la valeur max 1111111b) qui précède 0 dans la boucle (127+1=0 car la retenue disparaît), -2 devient 126 (1111110b), … et enfin -64 est codé 64 (1000000b). Dans ce cas le bit 7 indique le signe, et les autres bits codent la valeur positive comme d'habitude; le codage des valeurs négatives nécessite quelques calculs…
La calculatrice de Windows en mode «Programmeur» permet de convertir facilement un nombre en complément à 2.
https://fr.wikipedia.org/wiki/Compl%C3%A9ment_%C3%A0_deux
Attention: en Midi, seuls 7 bits sur les 8 d'un octet sont utilisables pour coder des valeurs, donc le bit de signe est le 7ème.
Pour les valeurs nécessitant plus de 7 bits (plus de 128 valeurs possibles), on va utiliser 14 bits. Après codage (une des 2 méthodes), il faut couper le mot en 2: les bits de poids «faible» (bits 1 à 7, least significant bits en anglais: LSB) et les bits de poids «fort» (bits 8 à 14, most significant bits: MSB). Le message Midi de Pitch-bend est le seul exemple standardisé, je crois. Normalement, les LSB sont transmis en premier, comme pour les messages RPN/NRPN.
Dans l'exemple précédent de xavierbzh, le MSB des valeurs négatives est 7Fh = 127 − on a très probablement un codage en complément à 2. La valeur -10 sera codée 1111111b 1110110b = 7Fh 76h, et -49 sera codé 1111111 1001111 = 7Fh 4Fh
J'espère avoir été clair…
[ Dernière édition du message le 25/10/2017 à 16:05:18 ]
lokaz33
166
Posteur·euse AFfiné·e
Membre depuis 16 ans
23 Posté le 25/10/2017 à 15:44:18
heuu oui mais je vais relire plusieurs fois
lokaz33
166
Posteur·euse AFfiné·e
Membre depuis 16 ans
24 Posté le 25/10/2017 à 15:45:37
Je rentre chez moi après et je t’explique en détail ce qu’il se passe avec ma BCR2000, super intéressant ton explication sinon
x_X_x_av
1426
AFicionado·a
Membre depuis 15 ans
25 Posté le 25/10/2017 à 16:06:34
J'ai fait quelques corrections dans mon explication. Ça devrait être un peu plus clair.
lokaz33
166
Posteur·euse AFfiné·e
Membre depuis 16 ans
26 Posté le 25/10/2017 à 18:11:49
Je commence déja à y voir un peu plus clair
lokaz33
166
Posteur·euse AFfiné·e
Membre depuis 16 ans
27 Posté le 25/10/2017 à 18:13:24
Après moi je rentre mon sysex sur ma BCR2000, c'est assez particulier au niveau des valeurs a rentrer et ca ne fonctionne que dans un sens ou un autre ! c'est à dire je dois paramétrer un encodeur pour les valeurs négatives et un autre pour les valeurs positives ! Je suis sur le proteus 2000, bref bizarre bizarre..... mais je vais tester ta méthode pour voir
x_X_x_av
1426
AFicionado·a
Membre depuis 15 ans
28 Posté le 25/10/2017 à 21:02:30
Je ne connais pas la BCR, mais la plupart des contrôleurs Midi respectent la norme… et ne comprennent pas le codage en complément à 2. Donc en effet, il faut 2 encodeurs, ou se contenter d'un comportement bizarre, avec +127 / -128 en position centrale.
Je crois que Peavey a produit une surface de contrôle plus «souple».
Je crois que Peavey a produit une surface de contrôle plus «souple».
lokaz33
166
Posteur·euse AFfiné·e
Membre depuis 16 ans
29 Posté le 26/10/2017 à 12:54:43
Ok j’ai trouvé la solution pour aller du négatif au positif mais wahoo super casse tête internationale la ruse du mec qui a trouvé ça pour le BCR2000
lokaz33
166
Posteur·euse AFfiné·e
Membre depuis 16 ans
30 Posté le 26/10/2017 à 15:06:43
Mais bon ça fonctionne impeccablement !! j’arrive à aller de -24 à +24 sans problème ! le mec a utilisé du checksum pour faire ca et il appel ça faire une logique trivial !! j’ai pas bien compris mais si ça intéresse du monde ici pour la BCR 2000 mais je pense que c’est valable pour pas mal de logiciel et autre !
- < Liste des sujets
- Charte