Well… if you trigger 1, it will push commands onto the stack multiple times, so it’ll happen multiple times when script 8 fires.
To guarantee a max of one per beat, you could reserve a variable to set flags for each input. It’s a litlte less elegant programming-wise I suppose, but whatever works:
1:
BSET Z 1
2:
BSET Z 2
8:
IF NZ BGET Z 1: // do script 1 stuff here
IF NZ BGET Z 2: // do script 2 stuff here, etc.
Z 0
Yet another way to do this would be using delays, but again, if you trigger 1 twice within the same beat you’d double up on delayed commands.
1:
DEL SUB Z LAST 8: // do script 1 stuff here
2:
DEL SUB Z LAST 8: // do script 2 stuff here, etc.
8:
Z LAST 8