Plan. Don't use timing markers.
How long is your generator project? You can make it any length (default is 10 seconds). For music oriented projects, you might consider 30 seconds or up to a minute length.
Create your animation for an average time. Remember to set the project length to 1 frame before the completion of the last cycle. For example, set a base animation for 60 BPM over 1 minute.
Retime it in Final Cut. Make it shorter — the animation speeds up. Make it longer — the animation slows down.
Need a certain speed for longer periods of time? Set the length and duplicate it (option-drag). Put the duplicates edge to edge with the original. As long as the project length is 1 frame less than the last cycle, the continuous animation over several instances of the generator should be flawless. If you need to "blade" (or shorten) the generator at the end, enclose it in a compound clip and trim the CC instead, to maintain timing.
If you make an animation that's 60 bpm, 1 minute long, then if you resize it by 50%, the bpm will be 120. To calculate how long to make each bpm clip, use:
60/NeededBPM = fractValue;
fractValue * 60 seconds = retimedLengthSeconds.
take the retimedLengthSeconds decimal remainder and multiply it by project frame rate to get the number of frames.
Select the generator and double click the playhead clock. Type in the retimedLengthSeconds and Frames.
As an example, say you need a 125 BPM effect and the generator was made to 1 minute:
[fixedBPM divided by neededBPM]
60/125 = 0.48
[Result * generator length in seconds]
0.48 * 60 = 28.8 seconds
[take seconds "modulus" and multiply by proj frame rate]
.8 * 30fps (project* frame rate) = 24
Double click the playhead clock (with generator *selected*) and type 28.24 <enter>
if generator is 30 seconds:
.48 * 30 = 24.0 seconds.
etc...