Reply To: Radio button in a modulator group needs a default setting

Home Forums General Programming Radio button in a modulator group needs a default setting Reply To: Radio button in a modulator group needs a default setting

#118984
damien
Participant
  • Topics: 15
  • Replies: 62
  • Total: 77

Hi Dnaldoog,

This is awesome! it’s working perfectly.
In my case pressing buttons requires 2 messages : pressing (00) and releasing (08), because there is combo with 2 or 3 button pressing at the same time. In the latter case, you have 2 “press” button registered then a 3rd one that defines the task to do like saving banks or switching FX from Unit A or B etc… the implementation of sysex in this DP4 is very complex.

So the script is :

UnitSelect = function(--[[ CtrlrModulator --]] mod, --[[ number --]] value, --[[ number --]] source)
if source==4 then -- should stop this code running on start
	
	local n=L(mod:getName())
	local t={ViButComA=0,ViButComB=1,ViButComC=2,ViButComD=3}
	
	for k,v in pairs(t)do
		if k==n then
			panel:sendMidiMessageNow(CtrlrMidiMessage({0xf0, 0x0f, 0x40, 0x00, 0x00, 0x01, 0x00, 0x02, 0, v, 0xf7})) -- press button
			panel:sendMidiMessageNow(CtrlrMidiMessage({0xf0, 0x0f, 0x40, 0x00, 0x00, 0x01, 0x00, 0x02, value*8, t[n], 0xf7})) -- release button
		else
			panel:getModulatorByName(k):setValue(0,false) -- true can create an infinite loop			
		end -- fi
	end -- for
	
end -- source ==4 (user clicked on a button - not lua generated
end

I wonder were did you get this “source” tag from and since manually is value = 4 I really want to know what other values represent. This is secret weapon.

I blocked/allowed sending param value on refresh for all the knobs with a statement in my “send message” script :

-- BLOCK UPDATE IF THE VALUE CHANGE IS FROM AN EDIT BUFFER REQUEST
if AllowStatusUpdate == 0 then
	console("Param BLOCKED Because AllowStatusUpdate is OFF")
else
	panel:sendMidiMessageNow(CtrlrMidiMessage(m:toHexString(1)))
end

So the parameter value message bond to the modulators is only sent by hand command.

And added a mousedown method on every knobs


ParamAllowStatusUpdate = function(--[[ CtrlrComponent --]] comp, --[[ MouseEvent --]] event)

-------------------------------------------------------------------------
--	BLOCK CTRLR TO SEND PARAM CHANGE AFTER RECEIVING EDIT BUFFER MESSAGE
--	ONLY PARAM CHANGE FROM MOUSEDOWN ARE ALLOWED
-------------------------------------------------------------------------

AllowStatusUpdate = 1
console("AllowStatusUpdare ON via MouseDown on Param Knob")
end

This source == 4 condition will help me a lot cleaning up my script at the final stage.

Thank you so much for your help and sharing your knowledge, I really improved my logic skills with this project.

  • This reply was modified 6 months, 3 weeks ago by damien. Reason: typo, missing part
Do NOT follow this link or you will be banned from the site!