I am using 14 bit MIDI for the endless encoders on a TEK2 module. Sending 14 bit MIDI works fine and the PC detects it and also sends 14 bit MIDI values for parameter changes, in my case on CCs 16 and 48. But I am at a loss on how to handle the incoming 14 bit values in a MIDI Rx code block and assign them to the endless encoder internal value, so the next movement start from whatever 14 bit value I received. I could only find documentation about “normal” 7 bit CC MIDI Rx.
Nevermind, I found a solution for my TEK2 with this MIDI Rx callback function in the Setup script for System, I am using endless encoder addresses 16 and 17 (-> 48 and 49 for the 14bit low bytes)::
function self.midirx_cb(self, event, header)
addr = event[3]
val = event[4]
if header[1] == 13 and event[1] == 0 and event[2] == 176 then
if addr == 16 then
element[8].lasthi = val
elseif addr == 17 then
element[9].lasthi = val
elseif addr == 48 then
element[8]:endless_value(val + element[8].lasthi * 128)
elseif addr == 49 then
element[9]:endless_value(val + element[9].lasthi * 128)
end
end
end```
It should be something like this, yes. Ableton for example properly reports both LSB and MSB in two messages, so you can just take off the parameter 1 difference by subtracting 32 from it.