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