Using max to 'toggle' the monome grid

#1

Hi all - this is my first post here, and it might make some eyes roll, but anyway…

I followed the ‘grid studies’ on the monome site which provided a good way to toggle grid buttons using max’s [matrixctrl] object, but I’m wondering if anyone knows of a way to make toggle functionality without matrixctrl? The main problem I’m running into is how to store all the buttons that are toggled on. Thanks!

#2

i seldom use the grid with Max but when i do i take the quick and dirty approach to script all grid logic with the js object. Even though javascript hates me (needing a hack to instantiate two dimensional arrays…), it feels less weird than doing that in the visual programming way.

1 Like
#3

I’ll back the JavaScript approach, it seems like a lot of the classic scripts do most logic in js.

buuuut, if you don’t want to learn JavaScript, the coll object will functionally store the data you need

#4

JS is awesome and is sometimes how I do things with a grid too.

But for awhile now I’ve mostly switched to using Jitter matrices, because for me it’s ultimately the most flexible thing for layering several grid/arc UI elements

I made this patch awhile back for someone who wanted to get started using Jitter matrices for their grid programming. It’s a simple polyphonic MIDI sequencer. Using the “setcell” and “getcell” messages aren’t my favorite (or most efficient) ways to access matrix data, but this was a proof of concept / example kind of thing anyways.

Copy the code inside and select New from Clipboard in Max's file menu
<pre><code>
----------begin_max5_patcher----------
2986.3oc0c08bqhaE+4j+Jz0Smosy5jf.gPpOz4NSaeamYenu0t6bGLVwlDL
3B37wcm8+8dj.bbBx1RX4fuY2jrAiQ7624ScNG796We0jYEuHplf9an+K5pq
98qu5J0gjG3p1+9pIqheIIKtRcZSRJVsRjWOYZyqUKdoVc7hYYoKhqKJeEUI
JSEUnh6QkEapEn374n+yOiJl8fHotBUWfJEqJdRfPaxyEIhppX3csNtrV8lp
WJP+x+9efVIegEhpopK.7tVj9DbY2Tghg+ZwhLwMwyxDvxUuYMZ1qnh7rWQw
IOlW7blX9hz7EnGEvEtDtPva7uHuL4E0pCVJxDwvQ+qc.IKEtUJ1jqPCs8fq
iqSVBWmuUB24MrT.O51voHdD4VO3KbHKjvBBCwSQ99925MEwht0C8asWg7Mq
RyyD0JxC2dvz4sT1C2f4jIucp.c0ctdxC9GWes7GSOUYylRfk9eaD4IhRTRV
QxiSQOuLMYI54zrLz7x3mARccV7qKEwyAhTIDVTlNGH+JzyB3jfeGO+oX3Rf
185ok+B2O+ER4RRJxS9Sbn5WRtzBFy+7yX0KSqPv+pPZ7pFt.sJttL8koH0q
VmBGNYoH4QohVCal.DEPSkBzuNoH+WmfpJ.xCkDmqHW3Og2CnBBlb5nMx9oM
FK31fc9hv.kPeop1VVj5YEK58IvhaJyAyXPe5KS1OzHLl71mPUfPoc3aETXr
yOT.OVwqUpCJwmzcjzDAtyJ.Mjj3L8FB96G1XO+vawTJMhDEDfofdMEvOknD
oAAxeI+oE7.8yyvnJc0ZvaqjCTfUTd2atOt+cdHJskYHDxszORLAbkyULmO.
hwg9XyEOCWyd7hTq.txGPMm640GULeVuvHjFS.+8gv.cHz+rivUwOJjnDbcC
5td1hzHVi7yCaO5h1iAdmNTygpecsn4FXx8YEwfrn6+.8atiF9IvOq0XOP4m
Nv+vP2WGzizCc79fdZtaw62yPqpWZMh8T9uH3AfXhkBaobdXPtMCydX1C4iB
PgnHDCTXQXeagOMP4EmyG.7CrTf6To8WtAEM4Pwrvj2kFRPD3vJzSE.2mKSL
1Rz5Mxp2GAvTlFoqeX3sQgCCvzwFvoGT7BlsrdhWp2PEugrQFsaxenHMGEbH
CXdiqpPU9mgGwiktzKBC0iRxA8XM8T7bsG3VIxP3IGZWDr9obF52jREwdmUg
XK8UOKNegyQ8eG4YKlIbxf0oGaK3lhp7Tbl0flpR.A7dYsflP+zBJu+7PpxR
SDHeqgseyVp7GfBNI7B.2kE01i518KQFhv9yKCr8sMyp0Yo0pcQpJ7B3BeYb
18SQUqk0qRsyaUsXjGVVTPvFq.EixRqpaJWnb250KiqUGZ6t0KxK5pkyO+u9
m5KBS2FPjkMDt0hqSKx+l9yPS0sBvZxFj23lowCKwpxCR9DJSS774uQ0Rxa6
N4UjbhpbGKD.CVhtunTxywuJJEyQySqT00ZmBFZ6l88CzERBqBF2xX1sY+.9
YeqvpbJ9JPMKVHJqNXD2HZTe30V2tlDOry1DGMlaO.rIVK.EDPYPVpSawc.t
e0N3CHgKLcLIgGRqus06ixhAiRVFWhvTDyZBoIcSvJe.jfsglf66u0be67fT
2bPa.8ahBBGOv8P4wG6cU78zCJqog79.Fy8jP8XhZs.dOaiJ3XoY286AS.Gr
LvfBUMDRn0V.N.XB7Bh01EDvEYU52ESQOroRFF9QAD3.6yTFMew1vDAArlj3
7Y2F9w9tQFPXBuOghk+r.soRB6V+kcszTlOhpyQnzl1cNaScMDC8YwetTzzu
RYOk.FMNqDhC+JRjKa0IDlV0+gtNhJ6AZWtMEqWWTkBaLnBRYQb6gSsQSM2a
5cIN.qoulbp8It3c9q4dI5latoTbOvWGp.kXHZae2OPFFf0H8HoG6oCY9iYz
mJy.M.o9df7YA8DtzH6C83gO6x1tLMtqIm86jNMtCr.fueRjcmL8d1A21Ooo
Z6QsMTzOX.vzaLEzOIdYcI5OkhQ2gdKgmCfTbyzGXe9Tb9OD3Tqc7IfZ1XmD
YRV5ZzWg6RjG7q3WjEV1V7GFxaxfLzdBH5xIARCL28Nn4tdkiga7yCGasilR
c7UY8KxD4KpWhnji6EfRZFID+AXPPF6Zcof8lYsIT904oq.m7LzWKt+9JQsY
N7o314Dv2dB.e4XPnmJr0.niL7sOHOiegQF1YNnmNFtwAicIXb7SVGdnsPZ1
uKaFcDj+RLt94z74EOaKRw97vdI2xrev3XgWV581WoI862ocTAGPklXjKVMA
8SJV6.TQaT8o1.U+KRg+15w+lB.1ZVwqIT.kauBvEVbw6kQB1xId1xD9gpJO
xI1SDdi9nIIKfl2g9GaYCLyWxF3H6mUonQcei0nYnT42ViXBSh3.B9vAE0n.
ruowibrBwJK.qKpG6AaRr0FBM0.Kv9VDGM5aUncniAMdbn0J.XkCfnif6PM3
1yR4eqbu66AK2ap0qs.knLsam6AadFKn72Vpx3UBfo+VSIn2snniT2WfamxB
zNygiozQimNp8cckZaSWU14t1Y2gZ2Jj8qtThkw76ULeq85QCuDlxqtRDUcz
dOG3wz40W9.l7wlOae1vTxkPC3O7zeEnOrGt+FjhremvzQc.kkidg8hd49.s
zNPma.+Qdzrgj+rVpGv56CHv9b8n3e.l5w8v.j9szb.y.YH6GhQfTuEft15N
DNHZr4fF0fAE.PW2OCirmCF8beMeJr1SkxzjVv.FCKB6GuovZODRX+3CCoRY
jwn1g6+gXBevpD4y0QEvW8MRrejkHiZRBMNIvVqGndpa+3SiI0ZvGvuPFZb6
Y.uv9iW0.Fg7.5nWnr20IY4m3Cf0vAqNluulQ2lqwb.OfmTF+OG6g8V0vigc
s9BjOf5NvWfOd78E7QsAaMLz8w8Ad.EN6yytXlBZu8v2+Tp34mRqRmklkV+5
63eU20aVPkzc21kI+rBQLedY7hpjxBHYicp+SBjL5i0KAFdwxcOdSkhV1+Mz
7BO0+ElsXUw72UaoYEkyga9cNhohJll8462z7i8WCrNAPd7JQ6SRWYZbVQUB
jjwKqi2Va0cmOrA7T+sa8.emXUcaolVyO7owiB1xi+dYcUwlxjtq71GRdvLu
CdyEU0o4pmdkcOKYGtjmkVMJ6VKOiVKuSdshLYs5tiNw0hXzZE4h0JzHNTcG
8lTcU570EfRT01mG6f9OO1zlxZwC7074KBeWq62Lx9TvRv6NqsKN9DEZAFSj
mtPCxvG4ez0xyIJidlfqPlCLnk06+nKE0Ep8JamiRfdNwZ1yDTodh7O80hZj
vR9zac5dekO00FpXbx3Rtk1iGUQYVb5FWlovicBtnFsVdNiCO5Z0cGchqkQQ
vHNQdgMR2f3DGuXijWX2fKix3.Sck6v.iba3jk5XRqtzMNsUxD63HmgoitRb
GrRTiVIm3tPE763gHcApLJeWlKPEyDcBF4bjfnYKMV+ReZIFyLIRc21jFikl
9NeBtJibOeKD1mlYoQgV8vmkMd3YT9JN.kbiRj0yE1obS7HvcguGtI6Yj6h.
5LiVIWjtL2jnDL94Paznkled7xYRtYbWDumG9YYwYh2StK7fwLw1l4BkSFwz
HBm5JYzFdXtvzNxD1yIk9gZRLsODN5CUqS9weRuBxA6wTSqEv5FjEyOSLiqo
cEbMqd+y7yHh7GTPbjeHpI6G0Ia8kZRIGotnT6ThoqzohoPSBfPchojINW6n
3SCSlD4mhcE6cLcOmTRtPSzHBibka7ihIWnQPXV3z3jVo.SBXPbgbJvjrhjy
IitMf4c9W5fyRZnFsxzyx1wLXk8OKzsIXVNDDtekMxQ5wI6llOGud8Shxp12
sZMmrJ9gB0oylp9S4+6NXaS4mTJjSTPy4qZ68j3xjko0hj5MkM8Q+k14kehr
A+k4aRaWa.svRVU+Z1Ga381Vv+PbRwrldrKeLTDPdTxSW8ZsGd0lr5tq3Vbn
lAB4UoZcbCaoFUhq+iq++3kAsI.
-----------end_max5_patcher-----------
</code></pre>
#5

Ah! I have these same problems but on Norns with Lua. My design pattern so far goes like this. Apologies I haven’t used Max in forever.

  1. Make a vector out of your grid. This is an array (does max call it a list? Basically indexed values) where the length is all the buttons. Each value will hold a 1 or 0.
  2. Set all values to 0 (or whatever your app needs as a default) on loadbang
  3. Each key press event, find the index value, then flip the bit in your vector to what it is not.
  4. Set the LED brightness for that index to that value times whatever brightness you want
  5. Refresh the grid LEDs
#6

I’ve been working on this idea - great suggestions. Wondering if anyone knows a quick way to bitflip between 1’s and 0’s in coll?

#7

There are a lot of ways to store data in Max. “Coll” object is one method. Or could be as simple as a toggle with a $ message to turn on/off the LED. Best solution depends on what you are trying to build.

#8

Okay, well after a long time I came up with this patch. It does successfully allow the grid to toggle notes on and off (lit and unlit), but it is incredibly sluggish, as you can probably see just by looking at the code. It’s a start, but if anyone has better ways of working with coll to toggle buttons, it would be much appreciated.

Max Patch code

----------begin_max5_patcher----------
2848.3oc0cs1aiajD7y1+JHD1ucN6NcSNbl4.Bv8+H2ACYIFuJqdXHQuw4Bx
+8iOjer1rnq1RJBGxF6coDqV8zEKNjUyQ+4kWL4lMOTsaR1+L6Wxt3h+7xKt
naSsa3h8+6KlrZ5CyVNcW2aax5peeyM+1jq5eo5pGp617+c4m2toN6mjGekM
2Wurpt9OtqpG8IStp4+y9O6e46lVO6qKVe60aqlU2+NzxO6tJSB4s+x6Z+op
e18ztrXdWjZh9OEeJLque0h0MAp6Cm97F6Ce+Va23ec4ks+3JxrbU0tcSus5
Mooj4xFIEGK8JRcoWQ46mdgRCom7AROPQbaCrUYtOdIrqzINe6u5STTJVdtp
feJO6SR1mzOVQrKACc4m2OZ94NmkvurZy5Mqp9xsaWL+Keq5ONvJpW6pq4iV
QE8DWQuo6iW01GCy2WT86eewtE2rX4h5+nab7wz7W+0cU6SftCzbu3i7xMy9
V074amd6tYa2rbY6ays+0lsbwruU+0lAwa+5K2d05o2rr5qucG5egu+1W3la
WsYd0OrkMam27g+EaYvpwh00cEEpBSmjhJ8+J9hjb8zUcfNYW01ESWtY2rO2
LV1.yjAJbFpaEGwiD+AR5xp4eool0erY1mxe7cubw5pYatec8K+LY7X1hN5a
Q9dAXo8W49gYwpK+DefKZ3v8wTj7pqOe5IAoO6G4PzT57nJc2zYeKaQ6+8QO
2YeQKoOKGASx3vIY9IuBtd282jIY4OOCgi.6sv0WeK8OOuAD4UB5Yh79Tp6N
9G3Rl5tyYp+oenr+wpvZGGOHiRt8wydZ9AEpx0jgzTOOBU6pVNRY7loqu8cO
wrT55OcyS70wlyT7DOooQxS2Almofg7Lbdxye9mGob1NUqQyvP+DGb8xP4id
pUs7Lcf4yyUx1wi6yt79q29cl3f3O0GOd+paddp8CNy3NVISF0qvL9kXmJFL
gjmPeayLnqq1dc+L7e4z1OBj0iPxp4wt7ySb+DR4mwjExa+fWB9iIt5eeda5
LcZj+wgp4nIGQ149+mCJ2WtdmaqW5bdP4vkxYMWXe1CWuX87pGp1k8upZFRl
m8N2lSlKfe+.iDKew8EDNx3Gcj4UWj9i2MilO5WOeZ8z8Y89zt8E1Oubo7p8
a5w21uz8Fe5s17Js29nmGn6twKSWd+9zs4C69M2OPO3tJCtqRIy9pCtu4Jy9
lO39VDY12hA22xBl80O39FoFqJGbeSTiUggGmEpAq3v6rRMZkFdmKnFtDGfe
vQt.rq.0PlLL+RRTiYxvLL0QMnICywTkaTaXVlV7xQs8+0FX5UD1M86UyutQ
PoQE55o00aWby8089+7R8gNMtmNoQuPpU4zYaVspZc8azSuspNqSLs4mYsJT
+60SF6hoJaOCnr2an82CfBfHoyfHo6HlSyaOoTSDqxdHquVLxzWbw9To3EYj
5.FAENwYDbxYxAcQE6ytwm9Rn37L4rtyn2Lu4qauwyG+SnmWzWf6ucyvSneR
NedSVcnmP+p1+He7Sq2t2j.nH.zq3lXQNBfbR.JP.TPBfGAfmDfRD.kj.DP.
DHAHh.HRBPBAPhD.AREEGKDXxnvBAjNJr7QARHEVFo.ojBKmTfjRgkUJCSKk
NwANDBHDnqGQDBzkiDBA1pg5PHvVLTAg.asPUDBrRDZNBAVMBs.g.qHg5QHj
XOaAjSRqRnXRIKqTgrRZUBERKoUIxg7RZUhbHwjVkHeXloxqRjmiPfcND4EH
DnmDgGg.c0nDgPAaVDPHPWKhHDXUIxSHDXUIJbHDXUIJDDBrykn.xIoUIJvj
RVUhBHqjVkn.RKoUIJf7RZUhBHwjVknXXlYNuJQQBg.qJg2gPfsb3EDBrUCu
hPf9hMxQHvVK7EHDXUI7dDBrpD9RDBrpD9.BAVUBOjSRqR3wjRVUhRHqjVkn
DRKoUIJg7RZUhRHwjVknbXlYAuJQoGg.c8nDg.c4HfPftZDQHPWLRHDXqEAG
BA5aJgfPfUkHnHDXUIB4HDXUIBPNIsJQ.SJYYkAHqjVkH.okzpDAHujVkH.I
lzpDwgYlddUhnfPfsdDUDBrkiXNBA1pQr.g.awH5QHPWKJQHvpRDCHDnu2kQ
DBrpDwDBAVUhDjSRqRjvjR1Y3lfrRZUhDjVRqRjf7RZUhDjXRqRjFlYVxqRj
BHDXUIRQDBzkiDBA56krygff9dI6DDDz2KYmhfnjFhbDDAZHJPPDogviff2o
CH0j2pCGlbReu0cP5IuYGNHAk2sCAxP4s6PfTTd+N.l+DLX3Av7mfAGO.l+D
LX4Av7mfAUCf4OACpF.2eBFTM.1+DLnZ.7+IXP0.X.TvfpAvAnfAUCExN4UM
TL8j2gTH+jW0PgDTdUCExP4UMTHEkW0.XFTzfpAvLnnAUCfYPQCpF.yfhFTM
.lAEMnZ.bCJZP0.XGTzfpAvOnnAUCfgPQCpF.GghFTMxgrSdUibL8jleV.4m
7pFEPBpgNq.xP4UMJfTTdUCf4PICpF.ygRFTM.lCkLnZ.LGJYP0.XNTxfpAv
cnjAUCf8PICpF.+gRFTM.FDkLnZ.bHJYP0vCYm7pFdL8jle5g7SdUCOjfxqZ
3gLTCMjEjhZnir.s7gyfrAvsHwYP2.XWjXnsMEfeQhgN2T.FFIFZdSAXYjXn
+MEfoQhgV3T.1FIF5hSAXbjXnQNEf0Qhkd4Lf4o7BHgQHpzL0.loxKgDvTUd
Mj.lqxKhDvjUdUDfYRhoN6L.wfu1DgXvWZRPLnqL.CkDCc3o.rTRLzimBvTI
wPWdJ.akDC84o.LVRLzomBvZIQLnhDw7TdUj3HDU9tPFyT4UQhXpJuJRByU4
UQRXxJuJBvrIwPmeJ.2lD0fJBvtIQszi3dHF7UlRHF7El.DC95RDhAsJBv1I
wPefp.emDCcBpBLdRLzKnpCyS46Yb2HDU5tF2gYp78MtCSUE9mnALWkVEQcX
xJsJhB7fRLzYnJvCJImWEQQO+wF5NTE8THan+PUzyhbtkm1jbHFz0EfKThgt
DUA1PIF5STE8PHYnSQUzigjgdEUELOkWEQFgnRyTULSkWEQwTUdUDEyU4UQT
LYkWEA8nIYnyQUzCmjgdGUQOdRF5dTE87IYn+QUzCnjgNHUQOgRF5gTE8HJU
X44VSfXPqh.7kRLzIoJvXJwPujp4XdJuJR9HDUZlZNloxqhjiop7pH4XtJuJ
RNlrxqh.7nRLzYoJviJwPukp.OpDCcWpB7nRLzeoJviJwPGlp.SpDC8XpBbo
RLzkoJvlJwa44eMBwfVEAXTkXnWSUOlmxqh3GgnRyT8XlJuJhGSU4UQ7XtJu
JhGSVesJxIXQ0oaEBoaIy8UeWLzsLizt8ebYNY2l62N6wEnjmV1pyddkFYd0
t5EqmVuXy5W7tjIOkIuYoTgMRQh375OMOuxmeXgVHhc6R92YJzsKnMCEZ4fB
MSjE8HTYEkHRseuFbvQ5QPFORGC1ZGHx6U2J+g2zQhxPE5WwqNVTl1kqUBRS
4Qg0TREqvo3vR1fGOIixuJm.AOnmwf2tf+eJF1iTY9wPqnao.mLVxAGqHcE8
fiUfQDLdLFAC5eWQ5UzMv3W6x7Zldfw5UmrcrPcz4+TwN5OEG2SQPkSSnYNo
xiC3GVjXnQoig5Rh4fvTwwHRLGDlxOFQJm9Hii9jdnhcxMbnOL5YhRPveRNa
LYrimBwHpXChr9lqAc5c288ps61u2cAcxpo+1lsOsTANY0h0ad96wpIaqZ+R
3p+82c47Sltc1WWT2b0v2us+KgpGJ6WpOmz9ch0102uX+Hd2kPOoaA6r8Krp
c2MsOy5VWOu7ut7+AWznI.C
-----------end_max5_patcher-----------
#9
Max Patch code

----------begin_max5_patcher----------
1064.3ocwZ1tbapCDF923qBFlyuZcSPR.FetUNSmLBPknDLxiP3lzN8d+nOf
X6ZLnZjoSFarEx7pGsqVsql7yUdAYr2HMA9+q++4648yUdd5lTM308cufc32
xqvM5tETS9NK6kf0laIHuIzM+iJeN4Pey6wh7mo0kOwI4BySON9gv09QPn5B
Zi5c0m8+Z2OotcGsthHzp.O1HqU76sRKzRJGFeIIpWRS+DuumXzKHXs7k+WU
28WqVoda87PbON+Uep5uIwDsEntDCGGSzfXBF.Sz0wzkHVhEjIgCrYqlQ3sX
CG.t3jkANgUlNHHQeY6CwiQGvVOz33qRGsVnbRUWbKmgiPYJTAFJ5Cq2eNkC
YCiFkR2hGX50etFOzhgWCoxOzFDCMATitkPLnAPDdUDyv0kJG09q2Fu6HMM3
RxE.y1SpGgVvlTMgg5HpnXGEzIZqiC5HXkkUiE7D.0f.PHMBQ8uOSWynSbU3
3cDAg+DoFmUowIbobaegQq8gigeH7jvq2VB.CfOL0w1wq4l9OfQCqB67L2.c
5difvkYuwbVaszyQE4AtwBLM1uzIvLdPLitDysSsGY+KW61VwvEJK9zHCRzY
8jD5nsTRWFCa6OnpHOVXRMAXitoElCrexFq2Nw01zbVU0zo4YVnFGdKo4MfG
bx30gr9i5Q55VC9.o3I4uTNtdBKDbZVqvTIl2G35EP1kQzhDpaPOA4nooOIc
oGOOwi6VgBcUt9KVdTedD1LN486DOQl91mRwhwVasU0hZvbqlxj3aIt0.qqQ
1TNycXU8dNQlnXg+i6X0rcjGK4zhGqHEO1PDiEcKUYciR5hgm5nn2vkI5MW9
3Imi7qj2GAWzwic.fRbzgr.f2gCYISO5I79G8AJ46GnMzLZEU79oS6ru8MkM
VKnNNT3IDUwxekTTvwkM4bUf+SR5Muhl+p3Y4jX4ym1tI83mu7GXtwgKuQV4
NVwYITmw3ExA+IsbMqwVSZulKoSZLjov2UGHmhqXM4OHm1jO6.a2IBLpw5z7
oNytoGVAUz5e+3.0boZ+biYCqkm2+j6OJN+izUPZDzZrfxpOoSPSeFzewZgP
VHT+nYVJoDBLkPm2oObK.yV4PaTFdoxgyR43HakNz0PGi96IcrMlZG3RoEZx
UIotPoDKTpe3LKkTGAwzJ4hYuHaEBLSg5s.2e+Ajs9Cf+JqzuSRCsX4VrKBg
GCswkA4hskrQHWr+m5nKWDeyy2eYXc5W6OKgTmx0hPjMyb8ClYIzFKDZqCzw
lvTabwxHKzIxAwcQVpS38HgqICHMrvyKTHvl.TtH9jM53jEy1nykwAM0ef2u
+.g2z0asFxxFegomnSWq+Jslcrvq.NQU0no+5yaN.yk0gIjEg0xMkR8V2+k.
Aph330szN2EIcqTUIJKIUU1UydrADckqq90p+GvtQFpN
-----------end_max5_patcher-----------
1 Like
#10

(To keep the thread human readable, I put the Max patchers inside a “hide details”. I’d like to encourage people to do this! Click the gear in the post-writing menu and you’ll see it as an option)

3 Likes
#11

This is much better, thank you jesse. One question though - on my grid, initially every button has to be pressed once before it behaves normally (e.g. 0 0 is pressed once, doesn’t light up, then is pressed again and lights up and behaves normally after that). Any idea why/how to correct this behavior?

UPDATE: I think the [loadmess] going into the uzi was supposed to be a [loadband] - that fixes it !

1 Like
#12

yep, you got it. just need to get zeros in all those spots to make it work. If you are using brightness levels you can incorporate a counter to use levels instead of a binary system.