MIDI Rx for 14 bit CC values

Hello everyone,

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.

Any help would be appreciated.

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```
1 Like

Looks good!

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.