It would be very useful to have a global callback which is fired whenever a control is touched via knob or screen. This callback would provide the control id as a parameter.
The use case that I have is creating a map between an external controller and the controls in the E1.
I’m currently using the onPotTouched callback, but the interaction for my use case isn’t the best. Better would be onControlTouched, which is a reasonable contract “if this control is interacted with let me know”
If you define a group label across the top of 2 or 3 controls, I think you can get 40 characters in there. For debugging, sometimes I’ll throw up 2 labels and have 80 characters for messages.
(I have a preset that does that - don’t know if it’s public).
-- Use pot touched to save initial value and then use pot released touched=false
-- As the last value. Then calculate how many arrows up or down and send them ??
function events.onPotTouch(potId, controlId, touched)
--print ("controlId: " .. controlId)
local myCtl = controls.get(controlId)
local myVal = myCtl:getValue("value")
local myMsg = myVal:getMessage()
currentParameterNumber = myMsg:getParameterNumber()
lastTouchValue = myMsg:getValue()
end
I have a “Learn” control which when trigger will listen for incoming midi from external devices and then map these to E1 controls. The way I select which controls are being mapped is with events.onPotTouch but this is sub-optimal, due to having to first having to select the right section of the screen and then tapping the pot instead of just tapping the control directly on the touch screen.
I’m using pot touch in the Ub-Xa preset. When you touch a pot it shows briefly the key combination of the control, so you don’t have to memorize how on the physical synth the menu diving or shift / hold combinations take place.
In other words it turns the E1 in an interactive manual for the synth