It turns out that I has made an idiot simple mistake. The on beat code that reads bc=if(rate,bc,bc+1); should have been bc=if(rate,0,bc+1); .
Feel free to slap me for my stupidity.
I've attached the working version in case any one wants to steal the code and alter it to make their own moving points/objects 'animations'.
EDIT: The code can be cleaned up a bit, there is at least one redundant statement in there.
EDIT 2: Rovastar, I wanted to make them move every four beats because these points are going to be base points for reactive 3d objects, I just thought that it would be mega cool if they changed formation every now and again.