Hi,
Thanks very much for the explanation. I actually assumed that’s how it was ordered and structured my code as such, and as mentioned it worked in previous versions, but its not working now despite my not making any changes other than updating the firmware. I’ve attached my broken config as maybe that can help you find the issue. It’s for a PO16. Since I can’t attach a file I’ve had to paste in the json
{
"id": "0912a442-9376-4a6b-af11-c3dce4ad0896",
"modifiedAt": "2025-07-08T16:21:57.760Z",
"name": "BrokenConfig",
"description": "Click here to add description",
"type": "PO16",
"version": {
"major": "1",
"minor": "5",
"patch": "8-nightly"
},
"configType": "profile",
"configs": [
{
"controlElementNumber": 0,
"events": [
{
"event": 0,
"config": "--[[@l]] local num,val,red,gre,blu,cc=self:ind(),self:pva(),221,143,255,37--[[@glc]] glc(num,1,red,gre,blu)--[[@glp]] glp(num,1,val)--[[@cb]] function sendCCDataOut(num,cc,val)gms(FP-1,176,cc,val)lvals[FP][num]=val;if deadzone(val)then glp(num,1,0)else glp(num,1,val)end end"
},
{
"event": 1,
"config": "--[[@l]] local num,val,cc=self:ind(),self:pva(),37--[[@cb]] if locked[num]==1 then if isWithinRange(val,lvals[FP][num],3)then locked[num]=0;glf(num,1,0)sendCCDataOut(num,cc,val)end else sendCCDataOut(num,cc,val)end"
},
{
"event": 6,
"config": "--[[@cb]] print('tick')"
}
]
},
{
"controlElementNumber": 1,
"events": [
{
"event": 0,
"config": "--[[@l]] local num,val,red,gre,blu=self:ind(),self:pva(),98,0,255--[[@glc]] glc(num,1,red,gre,blu)--[[@glp]] glp(num,1,val)--[[@cb]] function isWithinRange(a,b,x)return(a>=b-x)and(a<=b+x)end;function deadzone(val)return isWithinRangeOfArray(val,INDCBNDS,3)end"
},
{
"event": 1,
"config": "--[[@l]] local num,val,cc=self:ind(),self:pva(),38--[[@cb]] if locked[num]==1 then if isWithinRange(val,lvals[FP][num],3)then locked[num]=0;glf(num,1,0)sendCCDataOut(num,cc,val)end else sendCCDataOut(num,cc,val)end"
},
{
"event": 6,
"config": "--[[@cb]] print('tick')"
}
]
},
{
"controlElementNumber": 2,
"events": [
{
"event": 0,
"config": "--[[@l]] local num,val,red,gre,blu=self:ind(),self:pva(),255,255,255--[[@glc]] glc(num,1,red,gre,blu)--[[@glp]] glp(num,1,val)--[[@cb]] function has_value(tab,val)for index,value in ipairs(tab)do if value==val then return true end end;return false end"
},
{
"event": 1,
"config": "--[[@l]] local num,val,cc=self:ind(),self:pva(),39--[[@cb]] if locked[num]==1 then if isWithinRange(val,lvals[FP][num],3)then locked[num]=0;glf(num,1,0)sendCCDataOut(num,cc,val)end else sendCCDataOut(num,cc,val)end"
},
{
"event": 6,
"config": "--[[@cb]] print('tick')"
}
]
},
{
"controlElementNumber": 3,
"events": [
{
"event": 0,
"config": "--[[@l]] local num,val,r,g,b=self:ind(),self:pva(),255,255,0--[[@glc]] glc(num,1,255,242,0,0)--[[@glp]] glp(num,1,val)--[[@cb]] function lset()for i=0,gec()-2 do if isWithinRange(ele[i]:pva(),lvals[FP][i],3)then locked[i]=0;glf(i,1,0)glp(i,1,lvals[FP][i])else locked[i]=1;glf(i,1,255)end end end;for i=0,gec()-2 do lvals[1][i]=ele[i]:pva()lvals[2][i]=0 end"
},
{
"event": 1,
"config": "--[[@l]] local num,val,cc=self:ind(),self:pva(),40--[[@cb]] if locked[num]==1 then if isWithinRange(val,lvals[FP][num],3)then locked[num]=0;glf(num,1,0)sendCCDataOut(num,cc,val)end else sendCCDataOut(num,cc,val)end"
},
{
"event": 6,
"config": "--[[@cb]] print('tick')"
}
]
},
{
"controlElementNumber": 4,
"events": [
{
"event": 0,
"config": "--[[@l]] local num,val,red,gre,blu=self:ind(),self:pva(),221,143,255--[[@glc]] glc(num,1,red,gre,blu)--[[@glp]] glp(num,1,val)"
},
{
"event": 1,
"config": "--[[@l]] local num,val,cc=self:ind(),self:pva(),41--[[@cb]] if locked[num]==1 then if isWithinRange(val,lvals[FP][num],3)then locked[num]=0;glf(num,1,0)sendCCDataOut(num,cc,val)end else sendCCDataOut(num,cc,val)end"
},
{
"event": 6,
"config": "--[[@cb]] print('tick')"
}
]
},
{
"controlElementNumber": 5,
"events": [
{
"event": 0,
"config": "--[[@l]] local num,val,red,gre,blu=self:ind(),self:pva(),30,255,0--[[@glc]] glc(num,1,red,gre,blu)--[[@glp]] glp(num,1,val)"
},
{
"event": 1,
"config": "--[[@l]] local num,val,cc=self:ind(),self:pva(),42--[[@cb]] if locked[num]==1 then if isWithinRange(val,lvals[FP][num],3)then locked[num]=0;glf(num,1,0)sendCCDataOut(num,cc,val)end else sendCCDataOut(num,cc,val)end"
},
{
"event": 6,
"config": "--[[@cb]] print('tick')"
}
]
},
{
"controlElementNumber": 6,
"events": [
{
"event": 0,
"config": "--[[@l]] local num,val,red,gre,blu=self:ind(),self:pva(),98,0,255--[[@glc]] glc(num,1,red,gre,blu)--[[@glp]] glp(num,1,val)"
},
{
"event": 1,
"config": "--[[@l]] local num,val,cc=self:ind(),self:pva(),43--[[@cb]] if locked[num]==1 then if isWithinRange(val,lvals[FP][num],3)then locked[num]=0;glf(num,1,0)sendCCDataOut(num,cc,val)end else sendCCDataOut(num,cc,val)end"
},
{
"event": 6,
"config": "--[[@cb]] print('tick')"
}
]
},
{
"controlElementNumber": 7,
"events": [
{
"event": 0,
"config": "--[[@l]] local num,val,r,g,b=self:ind(),self:pva(),98,0,255--[[@glc]] glc(num,1,r,g,b,0)--[[@glp]] glp(num,1,val)"
},
{
"event": 1,
"config": "--[[@l]] local num,val,cc=self:ind(),self:pva(),44--[[@cb]] if locked[num]==1 then if isWithinRange(val,lvals[FP][num],3)then locked[num]=0;glf(num,1,0)sendCCDataOut(num,cc,val)end else sendCCDataOut(num,cc,val)end"
},
{
"event": 6,
"config": "--[[@cb]] print('tick')"
}
]
},
{
"controlElementNumber": 8,
"events": [
{
"event": 0,
"config": "--[[@l]] local num,val,red,gre,blu=self:ind(),self:pva(),221,143,255--[[@glc]] glc(num,1,red,gre,blu)--[[@glp]] glp(num,1,val)"
},
{
"event": 1,
"config": "--[[@l]] local num,val,cc=self:ind(),self:pva(),45--[[@cb]] if locked[num]==1 then if isWithinRange(val,lvals[FP][num],3)then locked[num]=0;glf(num,1,0)sendCCDataOut(num,cc,val)end else sendCCDataOut(num,cc,val)end"
},
{
"event": 6,
"config": "--[[@cb]] print('tick')"
}
]
},
{
"controlElementNumber": 9,
"events": [
{
"event": 0,
"config": "--[[@l]] local num,val,red,gre,blu=self:ind(),self:pva(),30,255,0--[[@glc]] glc(num,1,red,gre,blu)--[[@glp]] glp(num,1,val)"
},
{
"event": 1,
"config": "--[[@l]] local num,val,cc=self:ind(),self:pva(),46--[[@cb]] if locked[num]==1 then if isWithinRange(val,lvals[FP][num],3)then locked[num]=0;glf(num,1,0)sendCCDataOut(num,cc,val)end else sendCCDataOut(num,cc,val)end"
},
{
"event": 6,
"config": "--[[@cb]] print('tick')"
}
]
},
{
"controlElementNumber": 10,
"events": [
{
"event": 0,
"config": "--[[@l]] local num,val,red,gre,blu=self:ind(),self:pva(),98,0,255--[[@glc]] glc(num,1,red,gre,blu)--[[@glp]] glp(num,1,val)"
},
{
"event": 1,
"config": "--[[@l]] local num,val,cc=self:ind(),self:pva(),47--[[@cb]] if locked[num]==1 then if isWithinRange(val,lvals[FP][num],3)then locked[num]=0;glf(num,1,0)sendCCDataOut(num,cc,val)end else sendCCDataOut(num,cc,val)end"
},
{
"event": 6,
"config": "--[[@cb]] print('tick')"
}
]
},
{
"controlElementNumber": 11,
"events": [
{
"event": 0,
"config": "--[[@l]] local num,val,r,g,b=self:ind(),self:pva(),98,0,255--[[@glc]] glc(num,1,r,g,b,0)--[[@glp]] glp(num,1,val)"
},
{
"event": 1,
"config": "--[[@l]] local num,val,cc=self:ind(),self:pva(),48--[[@cb]] if locked[num]==1 then if isWithinRange(val,lvals[FP][num],3)then locked[num]=0;glf(num,1,0)sendCCDataOut(num,cc,val)end else sendCCDataOut(num,cc,val)end"
},
{
"event": 6,
"config": "--[[@cb]] print('tick')"
}
]
},
{
"controlElementNumber": 12,
"events": [
{
"event": 0,
"config": "--[[@l]] local num,val,red,gre,blu=self:ind(),self:pva(),221,143,255--[[@glc]] glc(num,1,221,143,255,0)--[[@glp]] glp(num,1,val)"
},
{
"event": 1,
"config": "--[[@l]] local num,val,cc=self:ind(),self:pva(),49--[[@cb]] if locked[num]==1 then if isWithinRange(val,lvals[FP][num],3)then locked[num]=0;glf(num,1,0)sendCCDataOut(num,cc,val)end else sendCCDataOut(num,cc,val)end"
},
{
"event": 6,
"config": "--[[@cb]] print('tick')"
}
]
},
{
"controlElementNumber": 13,
"events": [
{
"event": 0,
"config": "--[[@l]] local num,val,r,g,b=self:ind(),self:pva(),30,255,0--[[@glc]] glc(num,1,r,g,b,0)--[[@glp]] glp(num,1,val)"
},
{
"event": 1,
"config": "--[[@l]] local num,val,cc=self:ind(),self:pva(),50--[[@cb]] if locked[num]==1 then if isWithinRange(val,lvals[FP][num],3)then locked[num]=0;glf(num,1,0)sendCCDataOut(num,cc,val)end else sendCCDataOut(num,cc,val)end"
},
{
"event": 6,
"config": "--[[@cb]] print('tick')"
}
]
},
{
"controlElementNumber": 14,
"events": [
{
"event": 0,
"config": "--[[@l]] local num,val,red,gre,blu=self:ind(),self:pva(),98,0,255--[[@glc]] glc(num,1,red,gre,blu)--[[@glp]] glp(num,1,val)"
},
{
"event": 1,
"config": "--[[@l]] local num,val,cc=self:ind(),self:pva(),51--[[@cb]] if locked[num]==1 then if isWithinRange(val,lvals[FP][num],3)then locked[num]=0;glf(num,1,0)sendCCDataOut(num,cc,val)end else sendCCDataOut(num,cc,val)end"
},
{
"event": 6,
"config": "--[[@cb]] print('tick')"
}
]
},
{
"controlElementNumber": 15,
"events": [
{
"event": 0,
"config": "--[[@l]] local num,val,r,g,b=self:ind(),self:pva(),98,0,255--[[@glc]] glc(num,1,r,g,b,0)--[[@glp]] glp(num,1,val)"
},
{
"event": 1,
"config": "--[[@l]] local num,val,cc=self:ind(),self:pva(),52--[[@cb]] if locked[num]==1 then if isWithinRange(val,lvals[FP][num],3)then locked[num]=0;glf(num,1,0)sendCCDataOut(num,cc,val)end else sendCCDataOut(num,cc,val)end"
},
{
"event": 6,
"config": "--[[@cb]] print('tick')"
}
]
},
{
"controlElementNumber": 255,
"events": [
{
"event": 0,
"config": "--[[@cb]] lvals={{[0]=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},{[0]=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}}locked={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}FP=1;function cFP(p)FP=p;lset()end;INDCBNDS={32,64,96}function isWithinRangeOfArray(value,array,range)for _,item in ipairs(array)do if value>=(item-range)and value<=(item+range)then return true end end;return false end"
},
{
"event": 4,
"config": "--[[@cb]] gpl(gpn())"
},
{
"event": 5,
"config": "--[[@l]] local ch,cmd,param1,param2=midi.ch,midi.cmd,midi.p1,midi.p2"
},
{
"event": 6,
"config": ""
}
]
}
],
"createdAt": "2025-07-08T16:21:57.760Z",
"cloudId": "IGVGzxXglEGOU7EgXLKY",
"owner": "s7dYOXFQRKb0HLB9W2injuKdjNF2"
}