Reply To: UI trickz – how would you like to see this coded?

Home Forums General Programming UI trickz – how would you like to see this coded? Reply To: UI trickz – how would you like to see this coded?

#72803
human fly
Participant
    • Topics: 124
    • Replies: 1070
    • Total: 1194
    • ★★★★

    yes yes 🙂 it was interesting to try this out, by trying
    to declare an ‘assign’ method just using Component: didn’t work.

    i did manage to combine my 2 method sides into a single method
    – by the time i’d finished the main ‘partialOps’, the other one
    wasn’t needed, i realised. so that was a success. but then i
    thought: what if i could pre-create the mini functions/local functions
    in a ‘miscellaneous’/’library’ type method, and call them from there?
    for this to be efficient, i’d need to pre-declare everything, in an
    ‘assign’ method.

    that has not been loading, so i looked at your DSI panel again, and
    saw that you call ‘assignModulators’ in your panel startup method.
    so i’ll try again later with that.

    but look at this, the current declarations (ha Mum, look no Modulators)
    – this works –
    first:

    function partialOps()
    	-- This stops issues during panel bootup
    	if panel:getRestoreState() == true or panel:getProgramState() == true 
    	then return end
    --note: now includes levelZero methods!
    --modulators
    --partials_onoff controls views and LEDs
    	local p1 = panel:getModulatorByName("Partial1_OnOff_Pt1"):getModulatorValue()
    	local p2 = panel:getModulatorByName("Partial2_OnOff_Pt1"):getModulatorValue()
    	local p3 = panel:getModulatorByName("Partial3_OnOff_Pt1"):getModulatorValue()
    	local p4 = panel:getModulatorByName("Partial4_OnOff_Pt1"):getModulatorValue()
    --tvaLevel zero is same as partial Off, AND with partial onoff
    	local l1 = panel:getModulatorByName("tvaLevel_p1pt1"):getModulatorValue()
    	local l2 = panel:getModulatorByName("tvaLevel_p2pt1"):getModulatorValue()
    	local l3 = panel:getModulatorByName("tvaLevel_p3pt1"):getModulatorValue()
    	local l4 = panel:getModulatorByName("tvaLevel_p4pt1"):getModulatorValue()
    --components
    --ledTextA 1st row//normal onoff//
    	local ledA1 = panel:getComponent("ledText1")
    	local ledA2 = panel:getComponent("ledText2")
    	local ledA3 = panel:getComponent("ledText3")
    	local ledA4 = panel:getComponent("ledText4")
    --ledTextB 2nd row//shows partial is at both inputs//
    	local ledB1 = panel:getComponent("ledText5")
    	local ledB2 = panel:getComponent("ledText6")
    	local ledB3 = panel:getComponent("ledText7")
    	local ledB4 = panel:getComponent("ledText8")
    --tab OnClick buttons//showhide with partial onoff
    	local p1click = panel:getComponent("tabP1OnClick")
    	local p2click = panel:getComponent("tabP2OnClick")
    	local p3click = panel:getComponent("tabP3OnClick")
    	local p4click = panel:getComponent("tabP4OnClick")
    --tab showhide
    	local tabsWGp1 = panel:getComponent("tabsWGp1pt1")
    	local tabsWGp2 = panel:getComponent("tabsWGp2pt1")
    	local tabsWGp3 = panel:getComponent("tabsWGp3pt1")
    	local tabsWGp4 = panel:getComponent("tabsWGp4pt1")

    and then:

    -- 1st pair
    	function doubleA1()
    	ledA1:setProperty("uiLabelTextColour","FF00FF00", false) --on
    	ledB1:setProperty("uiLabelTextColour","FFD28008", false) --on
    	ledA2:setProperty("uiLabelTextColour","FF0E2B01", false) --off
    	ledB2:setProperty("uiLabelTextColour","FF0E2B01", false) --off
    	end
    --
    	function doubleB1()
    	ledA1:setProperty("uiLabelTextColour","FF0E2B01", false) --off
    	ledB1:setProperty("uiLabelTextColour","FF0E2B01", false) --off
    	ledA2:setProperty("uiLabelTextColour","FF00FF00", false) --on
    	ledB2:setProperty("uiLabelTextColour","FFD28008", false) --on
    	end
    --
    	function allOff1()
    	ledA1:setProperty("uiLabelTextColour","FF0E2B01", false) --off
    	ledB1:setProperty("uiLabelTextColour","FF0E2B01", false) --off
    	ledA2:setProperty("uiLabelTextColour","FF0E2B01", false) --off
    	ledB2:setProperty("uiLabelTextColour","FF0E2B01", false) --off
    	end
    --
    	function bothOn1()
    	ledA1:setProperty("uiLabelTextColour","FF00FF00", false) --on
    	ledB1:setProperty("uiLabelTextColour","FF0E2B01", false) --off
    	ledA2:setProperty("uiLabelTextColour","FF00FF00", false) --on
    	ledB2:setProperty("uiLabelTextColour","FF0E2B01", false) --off
    	end

    (etc.)
    and then a load of options like this (the 16 configs 0000-1111):

    -- 1 --bin0001//only checkp1, p2 is off,no need to compare 2nd pair, p3 and p4 are off//
    	elseif p1 == 1 and p2 == 0 and p3 == 0 and p4 == 0 then
    	panel:sendMidiMessageNow(CtrlrMidiMessage({0xf0, 0x41, 0x10, 0x16, 0x12, 0x04, 0x00, 0x0c, 0x01, 0x6f, 0xf7}))		
    		
    		if		l1 ~= 0 then doubleA1()	allOff2()
    		elseif	l1 == 0 then allOff1()	allOff2()
    		end
    
    	p1click:setProperty("uiButtonTextColourOff","FF1291DF", false)
    	p2click:setProperty("uiButtonTextColourOff","FF0E2B01", false)
    	p3click:setProperty("uiButtonTextColourOff","FF0E2B01", false)
    	p4click:setProperty("uiButtonTextColourOff","FF0E2B01", false)
    	tabsWGp1:setVisible(true)
    	tabsWGp2:setVisible(false)
    	tabsWGp3:setVisible(false)
    	tabsWGp4:setVisible(false)
    	--struct12:setVisible(true)
    	--clikSt12:setVisible(true)
    	--struct34:setVisible(false)
    	--clikSt34:setVisible(false)

    (etc.)
    which is looking ok to me 😀 .. better if i can work in those other
    actions, but ok for now, and much reduced. note that i don’t mention
    Modulator for any of the label text modulators, i go straight to
    component.
    ???

    Ctrlr