Le SYSEX dans toute sa splendeur !!
- 45 réponses
- 5 participants
- 3 071 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
31 Posté le 26/10/2017 à 16:05:52
Je n'ai pas de BCR mais je suis curieux de savoir…
lokaz33
166
Posteur·euse AFfiné·e
Membre depuis 16 ans
32 Posté le 26/10/2017 à 21:55:09
Alors je vais essayer d'être clair, mais ça va pas être simple car moi même ayant rien compris, enfin aps tout, et surtout le checksum j'ai vraiment du mal à définir son rôle dans mon code final, alors tout à commencer sur le forum du dévellopeur de BCmanager, le gros éditeur pour la BCR2000, au départ le dévellopeur m'a dit que c'était pas possible de faire des valeurs négative à postive avec un seul encodeur, et qu'il fallait ruser, apès un membre est arrivé en me disant que lui y arrive sans problème et qu'il avait posté la solution sur le groupe yahoo pour ce controlleur, voici ce quil dit:
I had some success in dealing with negative numbers.
The Emu Morpheus LFO amt uses the following encoding:
-128 is 007F, -1 is 7F7F, 0 is 0000, and 127 is 7F00.
(Two's complement with lsb first.)
This can be dealt with in the BCR2000 using a value of range 0-255 and the following tx code.
$F0 $7D val7.13 cks-1 2 $4E val0.6 $F7 $F0 $18 $0C $00 $03 $61 $40 val0.6 cks-3 3 $F7
As I sweep the BCR pot from 0-255, the Emu Morpheus LFO amt sweeps smoothly from -128 to 127.
The way this works is that there are two sysex messages (plus the junk that the BCR inserts between them).
The first sysex message will be ignored (manufacturer 7D=None).
The second sysex message is used (Manufacturer 18=Emu).
I am using checksums carefully to get the bcr2000 to do some trivial logic.
The first sysex message will be discarded: it is only used to form the "checksum" in the second message, which is not actually used as a checksum but as the MSB of the LFO amt.
The first checksum, in the first sysex msg, is 7F if the pot MSB is 01 and 00 if the pot MSB is 00. The second checksum, in the second sysex msg, is 00 if the pot MSB is 01 and 7f if the pot MSB is 01.
The number 4E is chosen to make sure everything works. It is chosen so that 7f = 4e xor f7 xor f0 xor 18 xor 0c xor 03 xor 61 xor 40.
Figuring out what 4E should be is a bit of a hassle. I'd be interested to hear if anyone has found a better method.
Je vous laisse le soin de traduire ^^ en gros il utilise le checksum pour faire une méthode triviale !! Heuu la j'ai rien compris !
Donc je test son code en adaptant avec le mien, ça marche toujours pas, je lui en fais part et la il revient me dire ça:
Hi, I don't have a Proteus 2000 and the sysex is a bit different so I can't test it myself.
However, I used the following string:
$F0 $7D $00 $00 val7.13 $7F cks-2 2 val0.6 $10 $55 $01 $02 $03 $02 $F7 $F0 $18 $0F $00 $55 $01 $02 $03 $02 val0.6 cks-3 6 $F7 $F7
with Value 1 as 116 and Value 2 as 140 (decimal). (These numbers are 12 either side of 127.)
This generates
F0 18 0F 00 55 01 02 03 02 74 7F F7
at the lower end through to
F0 18 0F 00 55 01 02 03 02 0C 00 F7
at the top end. Hope that is roughly what you need? Maybe I am out by 1.
By the way, I designed the code string above so that hopefully you can easily modify it to change a different parameter -- you should just need to change the parameter choice and instruction (55 01 02 03 02) which appears twice in the string.
Donc moi je tape ceçi pour ma part:
F0 7D 00 00 val7.13 7F cks-2 2 val0.6 10 55 01 02 03 02 F7 F0 18 0F 00 55 01 02 03 02 val0.6 cks-3 6 F7 F7
Donc mon ID 03 02 controle le master transpose sur la série Proteus, je l'ai remplacé la ou il fallait, sur mon BCmanager ensuite j'ai mis la value 1 à 116 et la value 2 à 140 comme il m'a dit et la miracle !! J'ai réussi à aller de -12 à + 12 sans problèmes !! Mais seulement il fallait descendre jusqua -24 et +24, donc j'ai réadapté les value, donc la value 1 à 104 et la value 2 à 152 ! Et nikel hop de -24 à +24 sans problèmes
Bon c'est bien que ça fonctionne mais la j'ai pas compris ce que le checksum vient faire la et surtout comment il calcul les value que je dois renseigner, la je suis paumé, ça marche mais j'aimerais en savoir un peu plus !! Si les experts du sysex sur ce forum pouvaient m'expliquer ce mystère et pourquoi le checksum est la je vous serais reconnaissant
Voici une image pour que vous compreniez comment je paramètre cela
Voila voila si ça peut aider quelqu'un encore je vais expérimenter cela ailleurs, mais le mec m'a enlevé un problème que je pensais vraiment pas résoudre, bravo à ce cher monsieur qui m'a filé cet astuce !! Bref qui à envi de m'expliquer ? ^^ Merci
I had some success in dealing with negative numbers.
The Emu Morpheus LFO amt uses the following encoding:
-128 is 007F, -1 is 7F7F, 0 is 0000, and 127 is 7F00.
(Two's complement with lsb first.)
This can be dealt with in the BCR2000 using a value of range 0-255 and the following tx code.
$F0 $7D val7.13 cks-1 2 $4E val0.6 $F7 $F0 $18 $0C $00 $03 $61 $40 val0.6 cks-3 3 $F7
As I sweep the BCR pot from 0-255, the Emu Morpheus LFO amt sweeps smoothly from -128 to 127.
The way this works is that there are two sysex messages (plus the junk that the BCR inserts between them).
The first sysex message will be ignored (manufacturer 7D=None).
The second sysex message is used (Manufacturer 18=Emu).
I am using checksums carefully to get the bcr2000 to do some trivial logic.
The first sysex message will be discarded: it is only used to form the "checksum" in the second message, which is not actually used as a checksum but as the MSB of the LFO amt.
The first checksum, in the first sysex msg, is 7F if the pot MSB is 01 and 00 if the pot MSB is 00. The second checksum, in the second sysex msg, is 00 if the pot MSB is 01 and 7f if the pot MSB is 01.
The number 4E is chosen to make sure everything works. It is chosen so that 7f = 4e xor f7 xor f0 xor 18 xor 0c xor 03 xor 61 xor 40.
Figuring out what 4E should be is a bit of a hassle. I'd be interested to hear if anyone has found a better method.
Je vous laisse le soin de traduire ^^ en gros il utilise le checksum pour faire une méthode triviale !! Heuu la j'ai rien compris !
Donc je test son code en adaptant avec le mien, ça marche toujours pas, je lui en fais part et la il revient me dire ça:
Hi, I don't have a Proteus 2000 and the sysex is a bit different so I can't test it myself.
However, I used the following string:
$F0 $7D $00 $00 val7.13 $7F cks-2 2 val0.6 $10 $55 $01 $02 $03 $02 $F7 $F0 $18 $0F $00 $55 $01 $02 $03 $02 val0.6 cks-3 6 $F7 $F7
with Value 1 as 116 and Value 2 as 140 (decimal). (These numbers are 12 either side of 127.)
This generates
F0 18 0F 00 55 01 02 03 02 74 7F F7
at the lower end through to
F0 18 0F 00 55 01 02 03 02 0C 00 F7
at the top end. Hope that is roughly what you need? Maybe I am out by 1.
By the way, I designed the code string above so that hopefully you can easily modify it to change a different parameter -- you should just need to change the parameter choice and instruction (55 01 02 03 02) which appears twice in the string.
Donc moi je tape ceçi pour ma part:
F0 7D 00 00 val7.13 7F cks-2 2 val0.6 10 55 01 02 03 02 F7 F0 18 0F 00 55 01 02 03 02 val0.6 cks-3 6 F7 F7
Donc mon ID 03 02 controle le master transpose sur la série Proteus, je l'ai remplacé la ou il fallait, sur mon BCmanager ensuite j'ai mis la value 1 à 116 et la value 2 à 140 comme il m'a dit et la miracle !! J'ai réussi à aller de -12 à + 12 sans problèmes !! Mais seulement il fallait descendre jusqua -24 et +24, donc j'ai réadapté les value, donc la value 1 à 104 et la value 2 à 152 ! Et nikel hop de -24 à +24 sans problèmes
Bon c'est bien que ça fonctionne mais la j'ai pas compris ce que le checksum vient faire la et surtout comment il calcul les value que je dois renseigner, la je suis paumé, ça marche mais j'aimerais en savoir un peu plus !! Si les experts du sysex sur ce forum pouvaient m'expliquer ce mystère et pourquoi le checksum est la je vous serais reconnaissant
Voici une image pour que vous compreniez comment je paramètre cela
Voila voila si ça peut aider quelqu'un encore je vais expérimenter cela ailleurs, mais le mec m'a enlevé un problème que je pensais vraiment pas résoudre, bravo à ce cher monsieur qui m'a filé cet astuce !! Bref qui à envi de m'expliquer ? ^^ Merci
lokaz33
166
Posteur·euse AFfiné·e
Membre depuis 16 ans
33 Posté le 26/10/2017 à 22:05:54
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 ^^
Bref j'ai envie de comprendre ^^
lokaz33
166
Posteur·euse AFfiné·e
Membre depuis 16 ans
34 Posté le 26/10/2017 à 22:10:38
Je viens de tester cette méthode avec le master Tune, et ca fonctionne, j'ai fais cette fameuse addition, tout roule...mystère la !!
xavierbzh
1642
AFicionado·a
Membre depuis 19 ans
35 Posté le 26/10/2017 à 22:17:18
j'essaye de trouver un moment aussi pour faire le test sachant que c'est pour piloter un E-mu pour ma part
X
X
lokaz33
166
Posteur·euse AFfiné·e
Membre depuis 16 ans
36 Posté le 26/10/2017 à 22:21:02
Ah oui c'est le vintage key c'est ça ? Au fait une petite question, sur le vintage key quand tu souhaite modifier le cutoff d'un preset, tu es obligé d'indiquer dans le code sysex le numéro de preset et le layer ? Je bute aussi un peu la dessus, dsl j'en profite un peu hein ^^
xavierbzh
1642
AFicionado·a
Membre depuis 19 ans
37 Posté le 26/10/2017 à 23:07:35
le cutoff, soit tu le fait par sysex et oui c'est chaque preset de 0 à 255
Ou tout simplement avec un contrôleur midi sur 0 à 127
Par contre je ne te suis pas sur "le layer", tu as dans un programme un preset primaire et secondaire, c'est tout.
X
Ou tout simplement avec un contrôleur midi sur 0 à 127
Par contre je ne te suis pas sur "le layer", tu as dans un programme un preset primaire et secondaire, c'est tout.
X
lokaz33
166
Posteur·euse AFfiné·e
Membre depuis 16 ans
38 Posté le 26/10/2017 à 23:13:31
lokaz33
166
Posteur·euse AFfiné·e
Membre depuis 16 ans
39 Posté le 26/10/2017 à 23:15:06
Et tu peux linker jusqua 3 preset ! Ce qui peut nous faire 12 son jouant en simultané !! la je parle en mode normal, en poly tu a 16 part X 12 son imagine le bordel que ca peut devenir niveau sonorité ^^ bon après je vais pas juque la hein
lokaz33
166
Posteur·euse AFfiné·e
Membre depuis 16 ans
40 Posté le 26/10/2017 à 23:21:37
Je voulais surtout faire un controleur sysex pour le filtre des layers car je me dis que tout le monde n'a pas forcément le même controleur continu réglé sur le filtre selon la série proteus ou à tout simplement affecté un de ces controleur pour autre chose, ce qui veut dire que la personne peut affecter les CC midi dispo la ou il veut et le sysex lui est bien à part ! ca serait très intéressant a faire je pense car une fois mon patch pour rack de la série proteus terminé je compte le partager et le distribuer si ça peut aider certains
[ Dernière édition du message le 26/10/2017 à 23:22:15 ]
- < Liste des sujets
- Charte