[Solved] 14 bit sysex message adds an extra "00"

Hi Guys, I had a command test App open watching what sysex commands were being sent out to the synth from the Electra One. I noticed that 14-bit commands were adding an extra “00” on the end in front of the “F7”.
It should have sent out F0 43 10 5E 10 00 18 23 2A F7.
Instead, it sent out F0 43 10 5E 10 00 18 23 2A 00 F7.

I haven’t tested it on my FS1R yet, so I don’t know if the command works with the extra 00 in there or not. My guess is that it won’t.

In the same session all of the 7-bit commands were just fine, no extra bytes.

All sysex commands are user programmed in a preset. You should check where that particular sysex is coming from.
Is it assigned to a control? Or is it programmed in lua?

Once you found it, you should see that extra byte pair at the end in the shape of a constant or a variable. Another explanation might be that the ‘23’ in the sysex is generated by a function that can deliver 2 results. There are ways though in lua to limit that to one.

So you need to check the particular preset first, and perhaps share it with the community.

EDIT: You can force a call to return exactly one result by enclosing it in an extra pair of parentheses:


Do you send that SysEx messages with a SysEx template defined for a control or with a Lua function? In both cases you need to instruct E1 on how to split the 14bit value to smaller chunks that can be transferred as 7bit “bytes” in the SysEx message body.

Thanks Guys! I found my error. I went through my code and traced it backwards to the preset just like you suggested. I had a typo in the loading spreadsheet, it was reading in one extra byte for that one control when it created the epr file.
Wow, that kind of error is really hard to locate.