Is there a good way to capture a Sysex string, change a single byte, then resend the whole string?
I imagine a solution would involve capturing the bytes before and after the “target” byte and reassembling the string to send. I have no clue how to do that in BMTP.
For context:
I’m trying to assert Midi control over “multi mode” in my Blofeld synth (activate/deactivate multi mode). The only way to do that is to capture the “global parameters” with a Sysex “request” and to change the 2nd byte to 0 or 1 (off, on) then to send the string back as a Sysex “dump.”
Just capture the entire string as absolute execept for the byte you want to change. If you don’t like to type, then you can just click “capture incoming” on the incoming message, and capture it that way. Then edit the byte you want to change with the variable you want, change the variable value in rules and then send the same string (including the changed variable ) back out. I do this all the time with my FC-300 in SysEX mode to convert volume pedal SysEX to CC message.
You can capture pretty much as long as a string as you want (I haven’t found the limit). There is no need to capture everything into variables. Only the bytes you want to change.
I understand your suggestion. I’m sure it would work.
That said, I’m capturing the operating configuration of a synth in that Sysex. If something gets changed in the synth, I would have to recapture the Sysex string all over again.
I was hoping there’s a more “dynamic” way to capture the Sysex string and slice/dice it.
You;; find that there are usually only a few bytes that very for a given SysEX message, so I just substitute those bytes for variables. I like to use local variables so they don’t interfere with other translators but there are only 10 of them. If you use global variables, you must be careful not to have two translators that use the same variables. If they do, I usually use “Stop Processing” so that once the current translator realizes it belongs to it, further translators down the chain don’t also try to process that variable.
Locals variables are oo,pp,qq,rr,ss,tt,uu,vv, ww and xx.
You can set up different translators for differing incoming patterns so you may indeed need to have multiple translators.
This is the way it is done for now.
Steve Caldwell
Bome Customer Care
Also available for paid consulting services: bome@sniz.biz