Home › Forums › General › Programming › Changing Images – what could be wrong in that LUA code › Re: Changing Images – what could be wrong in that LUA code
ok, I created two LUA scritps – one is assigned to Single FIlter knob modulator and another one to Multi Filter Knob modulator.
Firstly, they were also haven’t display the visualization as I requested, I checked your CtrlR ID values and found out that I used[b:1qhay9jr] "uiImageResource"[/b:1qhay9jr] which did nothing for me instead of using the right ones as shown in your ID table – [b:1qhay9jr]"uiImageButtonResource"[/b:1qhay9jr] or [b:1qhay9jr]"uiImageSliderResource"[/b:1qhay9jr]. So that is clear for me know.
1st script – works fine – visualizations working properly
[code:1qhay9jr]FilterSwitch = function(modulator, newValue)
— Images for filters on of are sixfold_selection_filteroff and sixfold_selection_filter
— Images for filte slope are led_three_upward2 and led_three_upward_off
— Images for Slider nord_led_pot_full_off and nord_led_pot_full
— Slider FilterFreq2 in Single Mode CC is 114 and in Multu Mode CC is 59
— filterslope modulator
fs = panel:getModulatorByName("FilterSlope")
— Single Filter Type modulator
sft = panel:getModulatorByName("FilterType")
— Multi Filter Type and Led Modulators
mft = panel:getModulatorByName("FilterEnvCtrl")
mftl = panel:getModulatorByName("FilterEnvCtrlLed")
— Filter Freq Dist slider
ff = panel:getModulatorByName("FilterFreq2")
filtermode=1
if filtermode == 1 then
z = sft:getComponent()
z:setPropertyString ("uiImageButtonResource" , "sixfold_selection_filter")
z = fs:getComponent()
z:setPropertyString ("uiImageButtonResource" , "led_three_upward2")
z = ff:getComponent()
z:setPropertyString ("uiImageSliderResource" , "nord_led_pot_full_off")
z = mft:getComponent()
z:setPropertyString ("uiImageButtonResource" , "sixfold_selection_filteroff")
end
— Enabling Dist Slider if DIST LP (58) is Selected on Filter Type
if newValue == 5 then
z = ff:getComponent()
z:setPropertyString ("uiImageSliderResource" , "nord_led_pot_full")
fs:setModulatorValue(1, false, true, true)
else
z = ff:getComponent()
z:setPropertyString ("uiImageSliderResource" , "nord_led_pot_full_off")
fs:setModulatorValue(2, false, true, true)
end
— Disabling Filter Slope if BR (35) is Selected on Filter Type
if newValue == 3 then
z = fs:getComponent()
z:setPropertyString ("uiImageButtonResource" , "led_three_upward_off")
else
z = fs:getComponent()
z:setPropertyString ("uiImageButtonResource" , "led_three_upward2")
end
end[/code:1qhay9jr]
2nd script -visualizations working properly as well
[code:1qhay9jr]–
— Called when a modulator value changes
— @modulator http://ctrlr.org/api/class_ctrlr_modulator.html
— @newValue new numeric value of the modulator
—
FilterSwitch2 = function(modulator, newValue)
— Images for filters on of are sixfold_selection_filteroff and sixfold_selection_filter
— Images for filte slope are led_three_upward2 and led_three_upward_off
— Images for Slider nord_led_pot_full_off and nord_led_pot_full
— Slider FilterFreq2 in Single Mode CC is 114 and in Multu Mode CC is 59
— filterslope modulator
fs = panel:getModulatorByName("FilterSlope")
— Single Filter Type modulator
sft = panel:getModulatorByName("FilterType")
— Multi Filter Type and Led Modulators
mft = panel:getModulatorByName("FilterEnvCtrl")
— Filter Freq Dist slider
ff = panel:getModulatorByName("FilterFreq2")
filtermode=2
if filtermode == 2 then
if fs ~= nil and sft ~= nil and ff ~= nil and mft ~= nil and mftl ~= nil then
z = fs:getComponent()
z:setPropertyString ("uiImageButtonResource" , "led_three_upward_off")
z = sft:getComponent()
z:setPropertyString ("uiImageButtonResource" , "sixfold_selection_filteroff")
z = ff:getComponent()
z:setPropertyString ("uiImageSliderResource" , "nord_led_pot_full")
z = mft:getComponent()
z:setPropertyString ("uiImageButtonResource" , "sixfold_selection_filter")
— Assign to FilterFreq2 CC number 59
xx=ff:getMidiMessage()
end
else
if fs ~= nil and sft ~= nil and ff ~= nil and mft ~= nil and mftl ~= nil then
z = fs:getComponent()
z:setPropertyString ("uiImageButtonResource" , "led_three_upward2")
z = sft:getComponent()
z:setPropertyString ("uiImageButtonResource" , "sixfold_selection_filter")
z = ff:getComponent()
z:setPropertyString ("uiImageSliderResource" , "nord_led_pot_full_off")
z = mft:getComponent()
z:setPropertyString ("uiImageButtonResource" , "sixfold_selection_filteroff")
filtermode=1
— Assign to FilterFreq2 CC number 114
end
end
end[/code:1qhay9jr]
But if you may see there is a code within that 2nd script . I tried to call method you have suggested to get modulator MIDI message.
[code:1qhay9jr]
— Assign to FilterFreq2 CC number 59
xx=ff:getMidiMessage()
[/code:1qhay9jr]
This code gives an error
[img:1qhay9jr]http://dl.dropbox.com/u/4202790/error2.png[/img:1qhay9jr]
Seems it is not registered in CtrlR.
I wonder is there any other way to set the CC value to modulator using LUA code? I wish I could find an examples. But nothing