human fly

Forum Replies Created

Viewing 20 posts - 1 through 20 (of 1,070 total)
  • Author
    Posts
  • in reply to: Appending Number to Modulator Name #118691
    human fly
    Participant
      • Topics: 124
      • Replies: 1070
      • Total: 1194
      • ★★★★

      (oh dear i’m very rusty, need to get back into it) this was to collect button states into a table (used for other stuff afterwards). initialise a table first (here it’s local/temporary). here i was collecting a component property, but it’s the same thing with a modulator value. and then use table.insert. then you can make a string from your table.

      function kgetcolour()	
      local tbl_kitcolour={}
      for i=1,5 do 
      	local kitcolour=panel:getComponent("keydata"..i-):getProperty("uiButtonTextColourOff")
      	table.insert(tbl_kitcolour,kitcolour)
      end

      edit: ah couldn’t seen the parentheses in your post!

      • This reply was modified 4 years ago by human fly.
      human fly
      Participant
        • Topics: 124
        • Replies: 1070
        • Total: 1194
        • ★★★★

        i ended up going for my long way, because i wanted other UI things to happen. so the method ended up as: (hope this posts ok)
        (edit: looking at it now, it depends on some subfunctions, and this is probably not much help to look at) (you only need to look at the first 2 lines of each option)

        function partial_ops()
        	-- This stops issues during panel bootup
        	if panel:getRestoreState() == true or panel:getProgramState() == true 
        	then return end
        --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")
        --struct12/34/clikStrct12/34//showhide for partial pairs
        	local struct12 = panel:getComponent("struct12_pt1")
        	local struct34 = panel:getComponent("struct34_pt1")
        	local clikSt12 = panel:getComponent("clikStrct12_pt1")
        	local clikSt34 = panel:getComponent("clikStrct34_pt1")
        
        -- 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
        -- 2nd pair
        	function doubleA2()
        	ledA3:setProperty("uiLabelTextColour","FF00FF00", false) --on
        	ledB3:setProperty("uiLabelTextColour","FFD28008", false) --on
        	ledA4:setProperty("uiLabelTextColour","FF0E2B01", false) --off
        	ledB4:setProperty("uiLabelTextColour","FF0E2B01", false) --off
        	end
        --
        	function doubleB2()
        	ledA3:setProperty("uiLabelTextColour","FF0E2B01", false) --off
        	ledB3:setProperty("uiLabelTextColour","FF0E2B01", false) --off
        	ledA4:setProperty("uiLabelTextColour","FF00FF00", false) --on
        	ledB4:setProperty("uiLabelTextColour","FFD28008", false) --on
        	end
        --
        	function allOff2()
        	ledA3:setProperty("uiLabelTextColour","FF0E2B01", false) --off
        	ledB3:setProperty("uiLabelTextColour","FF0E2B01", false) --off
        	ledA4:setProperty("uiLabelTextColour","FF0E2B01", false) --off
        	ledB4:setProperty("uiLabelTextColour","FF0E2B01", false) --off
        	end
        --
        	function bothOn2()
        	ledA3:setProperty("uiLabelTextColour","FF00FF00", false) --on
        	ledB3:setProperty("uiLabelTextColour","FF0E2B01", false) --off
        	ledA4:setProperty("uiLabelTextColour","FF00FF00", false) --on
        	ledB4:setProperty("uiLabelTextColour","FF0E2B01", false) --off
        	end
        
        -- 0 --bin0000//AllOff
        	if p1 == 0 and p2 == 0 and p3 == 0 and p4 == 0 then
        	panel:sendMidiMessageNow(CtrlrMidiMessage({0xf0, 0x41, 0x10, 0x16, 0x12, 0x04, 0x00, 0x0c, 0x00, 0x70, 0xf7}))
        
        	allOff1()	allOff2()
        
        	p1click:setProperty("uiButtonTextColourOff","FF0E2B01", false)
        	p2click:setProperty("uiButtonTextColourOff","FF0E2B01", false)
        	p3click:setProperty("uiButtonTextColourOff","FF0E2B01", false)
        	p4click:setProperty("uiButtonTextColourOff","FF0E2B01", false)
        	tabsWGp1:setVisible(false)
        	tabsWGp2:setVisible(false)
        	tabsWGp3:setVisible(false)
        	tabsWGp4:setVisible(false)
        	struct12:setVisible(false)
        	clikSt12:setVisible(false)
        	struct34:setVisible(false)
        	clikSt34:setVisible(false)
        
        -- 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)
        
        -- 2 --bin0010//check only p2//
        	elseif p1 == 0 and p2 == 1 and p3 == 0 and p4 == 0 then
        	panel:sendMidiMessageNow(CtrlrMidiMessage({0xf0, 0x41, 0x10, 0x16, 0x12, 0x04, 0x00, 0x0c, 0x02, 0x6e, 0xf7}))	
        		
        		if		l2 ~= 0 then doubleB1()	allOff2()
        		elseif	l2 == 0 then allOff1()	allOff2()
        		end
        
        	p1click:setProperty("uiButtonTextColourOff","FF0E2B01", false)
        	p2click:setProperty("uiButtonTextColourOff","FF1291DF", false)
        	p3click:setProperty("uiButtonTextColourOff","FF0E2B01", false)
        	p4click:setProperty("uiButtonTextColourOff","FF0E2B01", false)
        	tabsWGp1:setVisible(false)
        	tabsWGp2:setVisible(true)
        	tabsWGp3:setVisible(false)
        	tabsWGp4:setVisible(false)
        	struct12:setVisible(true)
        	clikSt12:setVisible(true)
        	struct34:setVisible(false)
        	clikSt34:setVisible(false)
        
        -- 3 --bin0011
        	elseif p1 == 1 and p2 == 1 and p3 == 0 and p4 == 0 then
        	panel:sendMidiMessageNow(CtrlrMidiMessage({0xf0, 0x41, 0x10, 0x16, 0x12, 0x04, 0x00, 0x0c, 0x03, 0x6d, 0xf7}))
        
        		if		l1 ~= 0 and l2 ~= 0 then bothOn1()	allOff2()
        		elseif	l1 ~= 0 and l2 == 0 then doubleA1()	allOff2()
        		elseif	l1 == 0 and l2 ~= 0 then doubleB1()	allOff2()
        		elseif	l1 == 0 and l2 == 0 then allOff1()	allOff2()		
        		end
        
        	p1click:setProperty("uiButtonTextColourOff","FF1291DF", false)
        	p2click:setProperty("uiButtonTextColourOff","FF1291DF", false)
        	p3click:setProperty("uiButtonTextColourOff","FF0E2B01", false)
        	p4click:setProperty("uiButtonTextColourOff","FF0E2B01", false)
        	tabsWGp1:setVisible(true)
        	tabsWGp2:setVisible(true)
        	tabsWGp3:setVisible(false)
        	tabsWGp4:setVisible(false)
        	struct12:setVisible(true)
        	clikSt12:setVisible(true)
        	struct34:setVisible(false)
        	clikSt34:setVisible(false)
        
        -- 4 --bin0100//check only p3//
        	elseif p1 == 0 and p2 == 0 and p3 == 1 and p4 == 0 then
        	panel:sendMidiMessageNow(CtrlrMidiMessage({0xf0, 0x41, 0x10, 0x16, 0x12, 0x04, 0x00, 0x0c, 0x04, 0x6c, 0xf7}))
        
        		if		l3 ~= 0 then allOff1()	doubleA2()
        		elseif	l3 == 0 then allOff1()	allOff2()
        		end
        
        	p1click:setProperty("uiButtonTextColourOff","FF0E2B01", false)
        	p2click:setProperty("uiButtonTextColourOff","FF0E2B01", false)
        	p3click:setProperty("uiButtonTextColourOff","FF1291DF", false)
        	p4click:setProperty("uiButtonTextColourOff","FF0E2B01", false)
        	tabsWGp1:setVisible(false)
        	tabsWGp2:setVisible(false)
        	tabsWGp3:setVisible(true)
        	tabsWGp4:setVisible(false)
        	struct12:setVisible(false)
        	clikSt12:setVisible(false)
        	struct34:setVisible(true)
        	clikSt34:setVisible(true)
        
        -- 5 --bin0101//two separate checks here, other partial is already off//
        	elseif p1 == 1 and p2 == 0 and p3 == 1 and p4 == 0 then
        	panel:sendMidiMessageNow(CtrlrMidiMessage({0xf0, 0x41, 0x10, 0x16, 0x12, 0x04, 0x00, 0x0c, 0x05, 0x6b, 0xf7}))
        
        		if		l1 ~= 0 then doubleA1()
        		elseif	l1 == 0 then allOff1()
        		end
        
        		if		l3 ~= 0 then doubleA2()
        		elseif	l3 == 0 then allOff2()
        		end
        
        	p1click:setProperty("uiButtonTextColourOff","FF1291DF", false)
        	p2click:setProperty("uiButtonTextColourOff","FF0E2B01", false)
        	p3click:setProperty("uiButtonTextColourOff","FF1291DF", false)
        	p4click:setProperty("uiButtonTextColourOff","FF0E2B01", false)
        	tabsWGp1:setVisible(true)
        	tabsWGp2:setVisible(false)
        	tabsWGp3:setVisible(true)
        	tabsWGp4:setVisible(false)
        	struct12:setVisible(true)
        	clikSt12:setVisible(true)
        	struct34:setVisible(true)
        	clikSt34:setVisible(true)
        
        -- 6 --bin0110
        	elseif p1 == 0 and p2 == 1 and p3 == 1 and p4 == 0 then
        	panel:sendMidiMessageNow(CtrlrMidiMessage({0xf0, 0x41, 0x10, 0x16, 0x12, 0x04, 0x00, 0x0c, 0x06, 0x6a, 0xf7}))
        
        		if		l2 ~= 0 then doubleB1()
        		elseif	l2 == 0 then allOff1()
        		end
        
        		if		l3 ~= 0 then doubleA2()
        		elseif	l3 == 0 then allOff2()
        		end
        
        	p1click:setProperty("uiButtonTextColourOff","FF0E2B01", false)
        	p2click:setProperty("uiButtonTextColourOff","FF1291DF", false)
        	p3click:setProperty("uiButtonTextColourOff","FF1291DF", false)
        	p4click:setProperty("uiButtonTextColourOff","FF0E2B01", false)
        	tabsWGp1:setVisible(false)
        	tabsWGp2:setVisible(true)
        	tabsWGp3:setVisible(true)
        	tabsWGp4:setVisible(false)
        	struct12:setVisible(true)
        	clikSt12:setVisible(true)
        	struct34:setVisible(true)
        	clikSt34:setVisible(true)
        
        -- 7 --bin0111
        	elseif p1 == 1 and p2 == 1 and p3 == 1 and p4 == 0 then
        	panel:sendMidiMessageNow(CtrlrMidiMessage({0xf0, 0x41, 0x10, 0x16, 0x12, 0x04, 0x00, 0x0c, 0x07, 0x69, 0xf7}))
        
        		if		l1 ~= 0 and l2 ~= 0 then bothOn1()
        		elseif	l1 ~= 0 and l2 == 0 then doubleA1() 
        		elseif	l1 == 0 and l2 ~= 0 then doubleB1()
        		elseif	l1 == 0 and l2 == 0 then allOff1()
        		end
        
        		if		l3 ~= 0 then doubleA2()
        		elseif  l3 == 0 then allOff2() 
        		end
        
        	p1click:setProperty("uiButtonTextColourOff","FF1291DF", false)
        	p2click:setProperty("uiButtonTextColourOff","FF1291DF", false)
        	p3click:setProperty("uiButtonTextColourOff","FF1291DF", false)
        	p4click:setProperty("uiButtonTextColourOff","FF0E2B01", false)
        	tabsWGp1:setVisible(true)
        	tabsWGp2:setVisible(true)
        	tabsWGp3:setVisible(true)
        	tabsWGp4:setVisible(false)
        	struct12:setVisible(true)
        	clikSt12:setVisible(true)
        	struct34:setVisible(true)
        	clikSt34:setVisible(true)
        
        -- 8 --bin1000
        	elseif p1 == 0 and p2 == 0 and p3 == 0 and p4 == 1 then
        	panel:sendMidiMessageNow(CtrlrMidiMessage({0xf0, 0x41, 0x10, 0x16, 0x12, 0x04, 0x00, 0x0c, 0x08, 0x68, 0xf7}))
        
        		if		l4 ~= 0 then allOff1() doubleB2()
        		elseif	l4 == 0 then allOff1() allOff2()
        		end
        
        	p1click:setProperty("uiButtonTextColourOff","FF0E2B01", false)
        	p2click:setProperty("uiButtonTextColourOff","FF0E2B01", false)
        	p3click:setProperty("uiButtonTextColourOff","FF0E2B01", false)
        	p4click:setProperty("uiButtonTextColourOff","FF1291DF", false)
        	tabsWGp1:setVisible(false)
        	tabsWGp2:setVisible(false)
        	tabsWGp3:setVisible(false)
        	tabsWGp4:setVisible(true)
        	struct12:setVisible(false)
        	clikSt12:setVisible(false)
        	struct34:setVisible(true)
        	clikSt34:setVisible(true)
        
        -- 9 --bin1001//two separate checks here, other partial is already off//
        	elseif p1 == 1 and p2 == 0 and p3 == 0 and p4 == 1 then
        	panel:sendMidiMessageNow(CtrlrMidiMessage({0xf0, 0x41, 0x10, 0x16, 0x12, 0x04, 0x00, 0x0c, 0x09, 0x67, 0xf7}))
        
        		if		l1 ~= 0 then doubleA1()
        		elseif	l1 == 0 then allOff1()
        		end
        
        		if		l4 ~= 0 then doubleB2()
        		elseif	l4 == 0 then allOff2()
        		end
        
        	p1click:setProperty("uiButtonTextColourOff","FF1291DF", false)
        	p2click:setProperty("uiButtonTextColourOff","FF0E2B01", false)
        	p3click:setProperty("uiButtonTextColourOff","FF0E2B01", false)
        	p4click:setProperty("uiButtonTextColourOff","FF1291DF", false)
        	tabsWGp1:setVisible(true)
        	tabsWGp2:setVisible(false)
        	tabsWGp3:setVisible(false)
        	tabsWGp4:setVisible(true)
        	struct12:setVisible(true)
        	clikSt12:setVisible(true)
        	struct34:setVisible(true)
        	clikSt34:setVisible(true)
        
        -- 10 --bin1010//two separate checks here, other partial is already off//
        	elseif p1 == 0 and p2 == 1 and p3 == 0 and p4 == 1 then
        	panel:sendMidiMessageNow(CtrlrMidiMessage({0xf0, 0x41, 0x10, 0x16, 0x12, 0x04, 0x00, 0x0c, 0x0a, 0x66, 0xf7}))
        
        		if		l2 ~= 0 then doubleB1()
        		elseif	l2 == 0 then allOff1()
        		end
        
        		if		l4 ~= 0 then doubleB2()
        		elseif	l4 == 0 then allOff2()
        		end
        
        	p1click:setProperty("uiButtonTextColourOff","FF0E2B01", false)
        	p2click:setProperty("uiButtonTextColourOff","FF1291DF", false)
        	p3click:setProperty("uiButtonTextColourOff","FF0E2B01", false)
        	p4click:setProperty("uiButtonTextColourOff","FF1291DF", false)
        	tabsWGp1:setVisible(false)
        	tabsWGp2:setVisible(true)
        	tabsWGp3:setVisible(false)
        	tabsWGp4:setVisible(true)
        	struct12:setVisible(true)
        	clikSt12:setVisible(true)
        	struct34:setVisible(true)
        	clikSt34:setVisible(true)
        	
        -- 11 --bin1011//compare all only where both=1//
        	elseif p1 == 1 and p2 == 1 and p3 == 0 and p4 == 1 then
        	panel:sendMidiMessageNow(CtrlrMidiMessage({0xf0, 0x41, 0x10, 0x16, 0x12, 0x04, 0x00, 0x0c, 0x0b, 0x65, 0xf7}))
        
        		if		l1 ~= 0 and l2 ~= 0 then bothOn1()
        		elseif	l1 == 0 and l2 == 0 then allOff1()
        		elseif	l1 ~= 0 and l2 == 0 then doubleA1()
        		elseif	l1 == 0 and l2 ~= 0 then doubleB1()
        		end
        
        		if		l4 ~= 0 then doubleB2()
        		elseif	l4 == 0 then allOff2()
        		end
        
        	p1click:setProperty("uiButtonTextColourOff","FF1291DF", false)
        	p2click:setProperty("uiButtonTextColourOff","FF1291DF", false)
        	p3click:setProperty("uiButtonTextColourOff","FF0E2B01", false)
        	p4click:setProperty("uiButtonTextColourOff","FF1291DF", false)
        	tabsWGp1:setVisible(true)
        	tabsWGp2:setVisible(true)
        	tabsWGp3:setVisible(false)
        	tabsWGp4:setVisible(true)
        	struct12:setVisible(true)
        	clikSt12:setVisible(true)
        	struct34:setVisible(true)
        	clikSt34:setVisible(true)
        
        -- 12 --bin1100
        	elseif p1 == 0 and p2 == 0 and p3 == 1 and p4 == 1 then
        	panel:sendMidiMessageNow(CtrlrMidiMessage({0xf0, 0x41, 0x10, 0x16, 0x12, 0x04, 0x00, 0x0c, 0x0c, 0x64, 0xf7}))
        
        		if		l3 ~= 0 and l4 ~= 0 then allOff1() bothOn2()
        		elseif	l3 ~= 0 and l4 == 0 then allOff1() doubleA2()
        		elseif	l3 == 0 and l4 ~= 0 then allOff1() doubleB2()
        		elseif	l3 == 0 and l4 == 0 then allOff1() allOff2()
        		end
        
        	p1click:setProperty("uiButtonTextColourOff","FF0E2B01", false)
        	p2click:setProperty("uiButtonTextColourOff","FF0E2B01", false)
        	p3click:setProperty("uiButtonTextColourOff","FF1291DF", false)
        	p4click:setProperty("uiButtonTextColourOff","FF1291DF", false)
        	tabsWGp1:setVisible(false)
        	tabsWGp2:setVisible(false)
        	tabsWGp3:setVisible(true)
        	tabsWGp4:setVisible(true)
        	struct12:setVisible(false)
        	clikSt12:setVisible(false)
        	struct34:setVisible(true)
        	clikSt34:setVisible(true)
        
        -- 13 -- bin1101
        	elseif p1 == 1 and p2 == 0 and p3 == 1 and p4 == 1 then
        	panel:sendMidiMessageNow(CtrlrMidiMessage({0xf0, 0x41, 0x10, 0x16, 0x12, 0x04, 0x00, 0x0c, 0x0d, 0x63, 0xf7}))
        
        		if		l1 ~= 0 then doubleA1()
        		elseif	l1 == 0 then allOff1()
        		end
        
        		if		l3 ~= 0 and l4 ~= 0 then bothOn2()
        		elseif  l3 == 0 and l4 == 0 then allOff2()
        		elseif	l3 ~= 0 and l4 == 0 then doubleA2()
        		elseif	l3 == 0 and l4 ~= 0 then doubleB2()
        		end
        
        	p1click:setProperty("uiButtonTextColourOff","FF1291DF", false)
        	p2click:setProperty("uiButtonTextColourOff","FF0E2B01", false)
        	p3click:setProperty("uiButtonTextColourOff","FF1291DF", false)
        	p4click:setProperty("uiButtonTextColourOff","FF1291DF", false)
        	tabsWGp1:setVisible(true)
        	tabsWGp2:setVisible(false)
        	tabsWGp3:setVisible(true)
        	tabsWGp4:setVisible(true)
        	struct12:setVisible(true)
        	clikSt12:setVisible(true)
        	struct34:setVisible(true)
        	clikSt34:setVisible(true)
        
        -- 14 -- bin1110
        	elseif p1 == 0 and p2 == 1 and p3 == 1 and p4 == 1 then
        	panel:sendMidiMessageNow(CtrlrMidiMessage({0xf0, 0x41, 0x10, 0x16, 0x12, 0x04, 0x00, 0x0c, 0x0e, 0x62, 0xf7}))
        
        		if		l2 ~= 0 then doubleB1()
        		elseif	l2 == 0 then allOff1()
        		end
        
        		if		l3 ~= 0 and l4 ~= 0 then bothOn2()
        		elseif	l3 ~= 0 and l4 == 0 then doubleA2()
        		elseif	l3 == 0 and l4 ~= 0 then doubleB2()
        		elseif  l3 == 0 and l4 == 0 then allOff2()
        		end
        
        	p1click:setProperty("uiButtonTextColourOff","FF0E2B01", false)
        	p2click:setProperty("uiButtonTextColourOff","FF1291DF", false)
        	p3click:setProperty("uiButtonTextColourOff","FF1291DF", false)
        	p4click:setProperty("uiButtonTextColourOff","FF1291DF", false)
        	tabsWGp1:setVisible(false)
        	tabsWGp2:setVisible(true)
        	tabsWGp3:setVisible(true)
        	tabsWGp4:setVisible(true)
        	struct12:setVisible(true)
        	clikSt12:setVisible(true)
        	struct34:setVisible(true)
        	clikSt34:setVisible(true)
        
        -- 15 -- bin1111
        	elseif p1 == 1 and p2 == 1 and p3 == 1 and p4 == 1 then
        	panel:sendMidiMessageNow(CtrlrMidiMessage({0xf0, 0x41, 0x10, 0x16, 0x12, 0x04, 0x00, 0x0c, 0x0f, 0x61, 0xf7}))
        
        		if		l1 ~= 0 and l2 ~= 0 then bothOn1()
        		elseif	l1 ~= 0 and l2 == 0 then doubleA1()
        		elseif	l1 == 0 and l2 ~= 0 then doubleB1()
        		elseif	l1 == 0 and l2 == 0 then allOff1()
        		end
        
        		if		l3 ~= 0 and l4 ~= 0 then bothOn2()
        		elseif	l3 ~= 0 and l4 == 0 then doubleA2()
        		elseif	l3 == 0 and l4 ~= 0 then doubleB2()
        		elseif  l3 == 0 and l4 == 0 then allOff2()
        		end
        
        	p1click:setProperty("uiButtonTextColourOff","FF1291DF", false)
        	p2click:setProperty("uiButtonTextColourOff","FF1291DF", false)
        	p3click:setProperty("uiButtonTextColourOff","FF1291DF", false)
        	p4click:setProperty("uiButtonTextColourOff","FF1291DF", false)
        	tabsWGp1:setVisible(true)
        	tabsWGp2:setVisible(true)
        	tabsWGp3:setVisible(true)
        	tabsWGp4:setVisible(true)
        	struct12:setVisible(true)
        	clikSt12:setVisible(true)
        	struct34:setVisible(true)
        	clikSt34:setVisible(true)
        	end
        end
        • This reply was modified 4 years, 1 month ago by human fly.
        • This reply was modified 4 years, 1 month ago by human fly.
        human fly
        Participant
          • Topics: 124
          • Replies: 1070
          • Total: 1194
          • ★★★★

          have a look at this maybe. it was 4 partial on off buttons, dependent on one message to cover all of them.

          multiple if syntax question

          in reply to: JV-XP Editor for Roland JV-XP series #118248
          human fly
          Participant
            • Topics: 124
            • Replies: 1070
            • Total: 1194
            • ★★★★

            Quick question for the people having a JV-1080 and this fantastic editor (still have to dig it properly but to have the possibility to edit this amazing synth in such a way is great!).

            So, question is about expansion cards: i don’t own any of them but i would like to know if there’s any chance to have some of them in forms of sysex file and uploaded with the editor!

            Cheers ?

            lol 🙂 it doesn’t work like that … (you need the PCMs on a hardware card)

            in reply to: Delete lost modulators #117850
            human fly
            Participant
              • Topics: 124
              • Replies: 1070
              • Total: 1194
              • ★★★★

              don’t delete them. back up the file to new version – in case you have to go back if you mess up – and in modulator list, have a look at which group the modulators belong to. what you’ve probably done is copy these from other modulators when you created them, and they inherited the original group parenthood.

              the ideal way when you copy an existing modulator to make a new one is to put it first on the workspace before taking it to the desired new location/group, and then it seems to shed that original group association.

              so, providing you’ve named the modulators in a way you can identify them and group them together in a list easily, identify at least one of them, and try removing/changing the ‘group’ column, then save and close the file, and re-open it. if it appears where it’s supposed to, you’re on the right track. could be lots of work if you just had a big session making loads of new modulators, copies of ones in another group. beware, doing this can mess things up if you get it wrong… it’s a lesson learnt for the future when you copy existing modulators. i had some horrible experiences like this 🙂

              in reply to: Using LUA to layout “stuff” – repost #117811
              human fly
              Participant
                • Topics: 124
                • Replies: 1070
                • Total: 1194
                • ★★★★

                how about if you collect each parameter set to a table? you can then refresh a single LCD display with each one as you select it, fetching the values from a table? i did something like this with my RX7 panel (also uncompleted, and have now sold the rx7…) where, instead of an LCD, i have a single set of modulators – controls, knobs etc. – to which i assigned ‘Keys’ – the equivalent of presets, but imagine a
                drum machine, with 240 individual keys – and it was working quite well. the project is stopped at the point where i began to deal with Yamaha’s ‘multi’ thing (different concept: here’s it’s a drum voice that is selected to be mapped across an octave rather than singly).

                search out that thread too, could have something to look at. lol beware: main methods depend on a library of methods, so you have to trace back a bit at times 🙂 i was trying to be an organised coder, a bit ahead of myself. but that version works – at least the UI does, there’s no sysex in it.

                (d*mn, and then came that car insurance thing, and i just couldn’t sit in front of the PC figuring out stuff anymore, had to fight for my van… and lost, and also lost the momentum to carry on, at that point. bad bad bad, get even more p*ssed off at what they did to my coding ! )

                in reply to: Using LUA to layout “stuff” – repost #117808
                human fly
                Participant
                  • Topics: 124
                  • Replies: 1070
                  • Total: 1194
                  • ★★★★

                  honestly i think knobs won’t be the best display. i can’t think of the novation panel you mean. but i did give these sorts of things a lot of thought. knobs, you’re – sometimes, depending on what it is – straining to get the value you want, if it needs to be precise. it’s ok for things like synth parameters.
                  i tried a thing with a pair of horizontal sliders (top/bottom range) – or vertical sliders, depending on your layout – if you only have 8 parts, you could do all this horizontally? just a thought. although we like to align things vertically for channels. but it doesn’t have to be like that… ??

                  if you want some ideas, in general, browsing, please feel free to peruse my D-110 effort as i suggested. go toward the end of the topic and there’s a last/latest file there. it is chaotic on load, you have to hit the ‘init view’ (‘developer’) button i made, that reloads all the defaults.

                  donaldoog also helped me with other little side projects, experimenting with creating random names, stuff like that – i’ll have to see what those threads were, or if they still exist. my current computer isn’t set up at all but i still have the files.

                  i don’t get what the multiple LCD stack is at the top – showing ‘loading’. can you give a quick runthrough of what’s going on there? i can see what the rest is, pretty much.

                  ps: i thought the horizontal layout was good for representing position on a keyboard, that was it 😉

                  • This reply was modified 4 years, 2 months ago by human fly.
                  in reply to: Using LUA to layout “stuff” – repost #117795
                  human fly
                  Participant
                    • Topics: 124
                    • Replies: 1070
                    • Total: 1194
                    • ★★★★

                    can you post an example panel to look at ?

                    in reply to: Order in Graphic Component? #117665
                    human fly
                    Participant
                      • Topics: 124
                      • Replies: 1070
                      • Total: 1194
                      • ★★★★

                      ok… *very carefully now* – providing you haven’t already started moving stuff in frustration – check the properties of the last group you copied, or copied from. you want to be looking at ‘owner tabs name’ or ‘Group’ – because when you copy modulators, they keep those properties. so next time you load, they jump to wherever that is, and disappear, or you find them where they shouldn’t be. the way to avoid this at the start is to copy things to an empty area of the workspace ( can’t remember exactly why i did this, to edit the properties, i think) before putting them where you want them.

                      to fix the mess now, have a look at the modulator list, see if you can spot the errors in the groups or tabs columns. you can edit there, and they will jump back to where they are supposed to be. beware, you can get in a mess if you get this wrong. make a backup version before you do anything.

                      (haven’t done this for a while, so anyone else, please chime in, if i’ve forgetten something)

                      in reply to: How to call a function with input from button #117384
                      human fly
                      Participant
                        • Topics: 124
                        • Replies: 1070
                        • Total: 1194
                        • ★★★★

                        hi,
                        you can have a generic random function you call whenever you need it that applies to the min and max of the target parameter. have a look at the D-110 thread and the later panels uploaded towards the end of the thread. the envelopes have a random button, check the method associated with that.

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

                          oh yes, open it with notepad 😉
                          (i’m a bit rusty these days)

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

                            i have opened it successfully here, v5.3.201, PC.

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

                              pretty sure you can get it back if you delete all your roaming folder files – maybe back these up somewhere first. this does mean that recall of other projects you’ve worked on, those will need to re-find graphics files or other resources – as far as i recall. now, the roaming folder subfolders are not always easy to identify, so it’s all or nothing, i fear, there – others please chip in if you have fresher memory of doing this.
                              if you back up first, you can just put it all back if you must.
                              hope this works for ya.

                              crashes too, can usually be tracked down to something you’ve done with LUA. make sure you know what file you were working on and want to retrieve, also.

                              > this is why i avoided versioning, and saved to my own naming convention each time, and treat what Ctrlr opens with as a ghost/temporary file, until i’ve hard-saved it with my typed name and version number.

                              btw, am thinking of re-doing mfb synth liteII panel and a panel for the mfb polylite. which might be similar in a way to sixtrak, if that can do a poly mode, or 6x mono mode. things like defining a global midi channel, and the individual channels. have not really attacked it yet, just preliminaries.

                              in reply to: AKAI S2000 #114838
                              human fly
                              Participant
                                • Topics: 124
                                • Replies: 1070
                                • Total: 1194
                                • ★★★★

                                USB floppy for S2000, forget it.
                                SCSI2SD seems like a reasonable proposition, if you can get a 3 header SCSI ribbon
                                with the back port connection on it – who wouldn’t want a silent flash hard drive?

                                but SCSI ZIP100 is very adequate, as are SCSI hard drives.
                                You still have the proprietary Akai format for samples.
                                so ideally, you’ll want ChickenSystems Translator if you just want to load up stuff
                                from a PC/Mac hard drive, converting Wavs’n’stuff.

                                another way you might use an Akai is to have a little server PC with a SCSI card,
                                and fire stuff over using Soundforge or Recycle via SCSI – pretty cool.

                                but you might get best results actually *doing some sampling* and making your own
                                sounds on the fly, in which case ZIP is good enough, and SCSI2SD is very justified
                                as a repository for all your work to date (and any other stuff you manage to load).

                                an internal ZIP is nice. have one in my ESI4000. i Translate stuff on PC with a USB
                                Zip drive, then take it over to the ESi. but i’ve got a SCSI CF reader kicking around,
                                have to get round to fitting it.

                                Jaz drive ! forgot about that… you can find Jaz drives with 2GB carts. worth getting
                                onto if you find them cheap-cheap. (no idea about reliability etc. – or speed)

                                in reply to: Need some help to add patch load/save for the Triode panel #96551
                                human fly
                                Participant
                                  • Topics: 124
                                  • Replies: 1070
                                  • Total: 1194
                                  • ★★★★

                                  it’s been a while since i did anything with Ctrlr, but i’m going to
                                  suggest you look at the last RX7 panel version. i was doing something
                                  to collect all modulator values into a table, and restore them.

                                  in that case, each drum pad had its parameter values, but i was only
                                  using one set of modulators for all (240…) pads.

                                  so you could think of each pad table as a preset, that i was sending
                                  onto the modulators.

                                  you might find it interesting to look at anyway. i hope it’s not too
                                  much of a mess to follow, lots of different methods. but the essential
                                  ones you would be looking for are the ones compiling the tables, and
                                  retrieving the table values. you will see it also has a kind of ‘autowrite’
                                  going on each time a modulator changes values, so tables are updating
                                  constantly. could be what you need if you don’t have presets.

                                  don’t have it set up on this machine atm but i may be able to remember
                                  what i was doing …

                                  in reply to: 6.0.1 release #95959
                                  human fly
                                  Participant
                                    • Topics: 124
                                    • Replies: 1070
                                    • Total: 1194
                                    • ★★★★

                                    Hi Roman, hi guys,
                                    great to see Ctrlr still getting development.
                                    i’m afraid i had to suspend my use for a long time.
                                    will i be able to migrate old projects across?
                                    cheers,
                                    D

                                    in reply to: Create NRPN where first message is different than the rest #93680
                                    human fly
                                    Participant
                                      • Topics: 124
                                      • Replies: 1070
                                      • Total: 1194
                                      • ★★★★

                                      this is where i am not 100% about NRPN.
                                      i have a feeling you only need to send the msb/lsb stuff once,
                                      to specify the target, and then the data#6s will go to that.

                                      but i’m not sure. it really is a nightmare protocol.

                                      does the ESQ1 not receive sysex ? i find sysex so much more straightforward,
                                      and it works(!) – although it is not much good in large amounts for realtime.

                                      have you had success changing parameters so far with NRPN ?
                                      i mean, have you sent at least one parameter change successfully ?

                                      i would really like some clarification, personally, on this, from
                                      someone who’s used it a lot.

                                      in reply to: Create NRPN where first message is different than the rest #93670
                                      human fly
                                      Participant
                                        • Topics: 124
                                        • Replies: 1070
                                        • Total: 1194
                                        • ★★★★

                                        are you talking about Lua?

                                        the ESQ1 should be able to receive MIDI CC messages correctly, so it shouldn’t have
                                        a problem receiving Data/CC#6.

                                        NRPN just sets up a target parameter, and then you send data to that. the assigned
                                        controller will continue sending midiCC#6 messages to that target until you specify
                                        another one – or use a Null message to deactivate it.

                                        at least that’s how i understand it. (i never use NRPN …)
                                        should be possible with Lua – and you can set up timers if you need to make something wait.

                                        in reply to: Yamaha RX7 UI #87320
                                        human fly
                                        Participant
                                          • Topics: 124
                                          • Replies: 1070
                                          • Total: 1194
                                          • ★★★★

                                          thanks !
                                          ye-eah, that was coming along quite nicely until someone
                                          wrote off my van and my insurance company ripped me off.
                                          had to spend a lot of time chasing that instead.
                                          NEVER trust those ho’s on the phone, you’ll get more honesty
                                          in a strip club. (i am naming and shaming AssurOne group,
                                          avoid like the plague.)

                                          so i don’t know when i’ll feel free-ed up enough to pick this
                                          up again.

                                          this still does not send ANY data, do not get your hopes up.
                                          the party trick here is the way the same ‘modulator’ gets
                                          re-used for each ‘key’ on the RX7 (or any drum machine or
                                          sampler, or unit with many groups of identical parameters),
                                          and reads its data, and writes its data from/to the table
                                          for that ‘key’.

                                          d*mn, maybe i’ll keep the RX7 for this after all. was about
                                          to put it on sale and abandon the project.

                                          thank you AssurOne and Allianz (your POS driver can’t drive),
                                          you know you are a bar to creativity (i told u so…)
                                          just another day at the office:
                                          rake it up

                                          in reply to: github Ctrlr repository down! #84839
                                          human fly
                                          Participant
                                            • Topics: 124
                                            • Replies: 1070
                                            • Total: 1194
                                            • ★★★★

                                            Poss’, i think we can have it if we sign the form and post
                                            it in to steinberg. either digitally or on paper. it will
                                            be on an individual basis. i have to remember to do it !

                                            don’t know if Atom got his use back as before. must assume so.
                                            (but i’ll look out for posts about this)

                                          Viewing 20 posts - 1 through 20 (of 1,070 total)
                                          Ctrlr