Le SYSEX dans toute sa splendeur !!
- 45 réponses
- 5 participants
- 3 072 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
x_X_x_av
1426
AFicionado·a
Membre depuis 15 ans
41 Posté le 27/10/2017 à 00:10:45
Merci pour les détails, c'est vraiment astucieux!
Dommage que ce soit spécifique à la BCR…
Pour mieux comprendre ce qui se passe, il faut savoir ce que fait «cks-x»:
https://mountainutilities.eu/system/files/download/BC%20MIDI%20Implementation%201.2.9.pdf
Il a été choisi de calculer avec des valeurs de 0 à 255 (8 bits), pour coder de -128 à +127, selon le codage standard Midi: 0 code la valeur la plus basse (-128), 128 code pour 0, et 255 code pour +127. Donc le bit 7 (le 8ème) indique le signe à l'envers des conventions courantes: 0 pour négatif, 1 pour positif. Il est facile d'isoler ce bit dans val7.13
Donc le 1er cks transforme le bit 7 en 7Fh + 0 = 7Fh, ou 7Fh + 1 = 00h (sur 7 bits!).
Le second cks récupère ce résultat, en se débrouillant pour ignorer les valeurs suivantes avec des opérations nulles (une valeur XOR elle-même donne zéro, une valeur XOR zéro donne la valeur inchangée, et on peut faire le calcul dans n'importe quel ordre).
Normalement, il est inutile d'en savoir plus pour comprendre. Sinon, on verra demain: dodo.
Dommage que ce soit spécifique à la BCR…
Pour mieux comprendre ce qui se passe, il faut savoir ce que fait «cks-x»:
Citation :
cks-1: The sum of all the MIDI output bytes and the checksum itself is a value of which bits 0 to 6 are zero.
cks-2: The checksum is bits 0 to 6 of the sum of all the MIDI output bytes.
cks-3: First, the byte at StartByteIndex and its successor are xor’ed; then, each following MIDI output byte is xor’ed with the result of the previous xor.
https://mountainutilities.eu/system/files/download/BC%20MIDI%20Implementation%201.2.9.pdf
Il a été choisi de calculer avec des valeurs de 0 à 255 (8 bits), pour coder de -128 à +127, selon le codage standard Midi: 0 code la valeur la plus basse (-128), 128 code pour 0, et 255 code pour +127. Donc le bit 7 (le 8ème) indique le signe à l'envers des conventions courantes: 0 pour négatif, 1 pour positif. Il est facile d'isoler ce bit dans val7.13
Donc le 1er cks transforme le bit 7 en 7Fh + 0 = 7Fh, ou 7Fh + 1 = 00h (sur 7 bits!).
Le second cks récupère ce résultat, en se débrouillant pour ignorer les valeurs suivantes avec des opérations nulles (une valeur XOR elle-même donne zéro, une valeur XOR zéro donne la valeur inchangée, et on peut faire le calcul dans n'importe quel ordre).
Normalement, il est inutile d'en savoir plus pour comprendre. Sinon, on verra demain: dodo.
static volatile
1793
AFicionado·a
Membre depuis 7 ans
42 Posté le 27/10/2017 à 00:14:46
Citation de lokaz33 :
Et surtout pourquoi partir de 127 ?? pourquoi y avoir soustrait 12 puis rajouter 1 ce qui nous fais 116 ??? idem pour 127 +12 +1 = 140 !! Pourquoi ?? je suis paumé ......
Bref j'ai envie de comprendre ^^
Voici comment fonctionne le complément à 2.
C'est assez simple une fois qu'on a compris, il faut juste se faire au calcul en base 2.
En base 10, celle qu'on apprend en primaire, si je fais 9+1:
09
+01 -> 9 + 1 = 10 je note 0 et je retiens 1 pour la colonne suivante
=10
En binaire, c'est pareil, sauf qu'on "tourne" autour de 2 et non autour de 10 vu qu'on n'a que des 0 et des 1, donc pour faire 1+1:
01b
+ 01b -> 1b + 1b = 10b -> je note 0b et je retiens 1b pour la prochaine colonne
= 10b
Le complément à 2 est une manière de représenter les nombres binaires négatifs qui permet d'être systématique dans les opérations et de respecter certaines règles (comme a - (-b) = a + b).
Partant dun nombre représenté en binaire, on prend son complément (on transforme les 1 en 0 et les 0 en 1) et on ajoute 1 (en faisant gaffe à ne pas se planter dans les retenues).
Ça marche dans les deux sens (passage du positif vers le négatif et du négatif vers le positif):
la valeur 52 codée sur 7 bits:
52 -> 0110100
1001011 -> complément
+ 0000001
= 1001100 -> -52
0110011 -> complément
+ 0000001
= 0110100 -> 52
Donc, en binaire, si on veut résoudre:
a - b
on dois prendre le complément à 2 de b puis faire une addition:
a - b = a + (-b)
Je n'ai pas fait les calculs précis sur lesquels vous vous posez des questions, mais partant de ce petit tutoriel, vous saurez certainement parvenir à vos fins.
Les premières fois, ça fait un peu gymnastique mentale, mais on s'habitue vite et assez vite on se met à "parler" l'hexadécimal parce que c'est plus court et que la conversion est facile: on représente chaque groupe de 4 bits par un nombre de 0h à Fh).
Resistance is not futile... it's voltage divided by current
lokaz33
166
Posteur·euse AFfiné·e
Membre depuis 16 ans
43 Posté le 27/10/2017 à 00:33:41
Alors la les gars merci pour vos explications c'est déja beaucoup plus compréhensible !! ok je commence à comprendre !! Oui après un bon dodo ça ira mieux demain ! Mais merci car la au moins je comprend, du moins je commence a bien comprendre !! génial ce monde desfois qui nous réserve de ces surprises ^^
[ Dernière édition du message le 27/10/2017 à 00:33:59 ]
lokaz33
166
Posteur·euse AFfiné·e
Membre depuis 16 ans
44 Posté le 27/10/2017 à 11:40:36
J'avoue en relisant le tout que c'est de la sacré grosse gymnastique mentale..... Je comprend peu à peu mais c'est vraiment pas évident au départ !!! Enfin bon bon je vais finir par faire en sorte que ce milieu commence à être à l'aise dans ma tête
x_X_x_av
1426
AFicionado·a
Membre depuis 15 ans
45 Posté le 27/10/2017 à 12:55:42
Toutes ces infos arrivent un peu en désordre, j'imagine. Si tu ne connais pas les principes du binaire et que l'on te parle de bit, de complément et de xor, alors tu as le droit d'être un peu paumé!
Heureusement, on peut faire de la musique sans rien comprendre au sysex.
Heureusement, on peut faire de la musique sans rien comprendre au sysex.
lokaz33
166
Posteur·euse AFfiné·e
Membre depuis 16 ans
46 Posté le 27/10/2017 à 13:26:10
Oui heureusement, si j'ai des notions sur le binaire et l'hexadécimal, juste que dans ce milieu je me paume ! Mais oui on peut faire sans mais comme je commence a avoir du hardware qui arrive et que je veux me mettre en place une configuration histoire dêtre bien à l'aise je m'y intéresse et je lache pas l'affaire je veux y arriver et comprendre
- < Liste des sujets
- Charte