Forum Replies Created
-
AuthorPosts
-
(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 3 years, 6 months ago by
human fly.
May 14, 2020 at 10:03 pm in reply to: Stuck Again – Trying to construct a byte from individual bits #118397i 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
May 14, 2020 at 9:54 pm in reply to: Stuck Again – Trying to construct a byte from individual bits #118396have a look at this maybe. it was 4 partial on off buttons, dependent on one message to cover all of them.
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)
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 🙂
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 ! )
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 3 years, 7 months ago by
human fly.
can you post an example panel to look at ?
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)
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.March 8, 2020 at 6:25 pm in reply to: SOLVED: Panel in developement can’t be opened any more #117312oh yes, open it with notepad 😉
(i’m a bit rusty these days)March 8, 2020 at 6:13 pm in reply to: SOLVED: Panel in developement can’t be opened any more #117310i have opened it successfully here, v5.3.201, PC.
March 8, 2020 at 6:09 pm in reply to: SOLVED: Panel in developement can’t be opened any more #117309pretty 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.
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)February 16, 2019 at 4:54 pm in reply to: Need some help to add patch load/save for the Triode panel #96551it’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 …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,
DJanuary 22, 2019 at 9:28 am in reply to: Create NRPN where first message is different than the rest #93680this 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.January 22, 2019 at 7:02 am in reply to: Create NRPN where first message is different than the rest #93670are 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.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 upPoss’, 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) -
This reply was modified 3 years, 6 months ago by
-
AuthorPosts