Click the green flag (only once should work) and enjoy @YeetachuAnimation's animation, with improved timing by me (@-Rocket-)!
I've been wondering if the timing tricks I used for the musical finale in "Dancing at the Movies" could work for other animations; saw this one and figured I'd try it, and hey, I think it worked! The key trick here is to not use the "wait [x] seconds" block (which is unreliable due to Scratch lag/fps) and time everything with the "days since 2000" block. I know the meme is that it's the most useless block on Scratch, but it's surprisingly useful when it comes to tracking time accurately, since it doesn't get affected by anything in the project! So, I created a sprite that uses the "days since 2000" block to track the beats of the song, then re-coded the animation to wait for the next beat rather than a certain amount of seconds. This means that, even if the project's lagging, it should still hit the song's beats at the correct time, making for a better viewing experience. The "wait [x] seconds" block can still be used in-between beats for animation; just use the beat tracker as the framework! Hopefully I've explained this well, and that you all watching/reading can use it in your own animations to give them better timing! :D