Set message value without sending midi

A very handy callback is parameterMap.onChange.
The first line in the function is enough to reach what you want.

function parameterMap.onChange(valueObjects, origin, value)
  if origin == MIDI then return end
    for i, valueObject in ipairs(valueObjects) do -- -- onChange manually or via LUA
    local parameterNumber = valueObject:getMessage ():getParameterNumber ()
    local parameterType = valueObject:getMessage ():getType ()
    if parameterType ~= PT_VIRTUAL then return end
    -- from now on only virtual parameters, manually changed
   .....
1 Like