in general, if you need to use the metro script for multiple tasks where each task needs to run at a different rate, you can run it at the fastest rate and then use ops like EVERY #: for things that need lower rates. let’s say you set metro rate to 25ms and this is your metro:
#M
TR.P 1
EVERY 2: TR.P 2
EVERY 5: TR.P 3
trigger 1 will fire on every metro execution, so every 25ms. trigger 2 will fire on each 2nd metro execution, so it will use 25 * 2 = 50ms rate, and trigger 3 will use 5 * 25 = 125ms rate.
for your specific scenario you don’t need that, however. you have several options - leave metro to deal with polling the faderbank and sending values to er-301, and then assign all your grid buttons to the same script and modify it like this:
I G.BTNI
G.BTN.L I 15
DEL 50: G.BTN.L I 0
SC.TR.TOG I
btw, in your implementation it will trigger on both press and release - is that what you want?
alternatively, if you also want to do different things in scripts 1-8, assign the grid buttons to the init script and change it like this:
#I
IF G.GBTN.C 0: $ G.GBTI; BREAK
G.BTX 1 0 0 4 4 0 0 10 4 2
M.ACT 1
when the scene is loaded, there are no pressed buttons, so it will do the initialization portion, otherwise it will serve as your script selector for button presses.