Even when using the default circle, timing is slightly uneven. I think this is probably because we are evaluating actual collisions in requestAnimationFrame, which has an irregular rate.
One possible fix: as soon as we know the radius we can calculate the amount of time until collision and schedule it in advance.
There's also Tone.js #draw, which is supposed to help sync up drawing with Tone.js frames, but I'm not totally sure how it works.
Even when using the default circle, timing is slightly uneven. I think this is probably because we are evaluating actual collisions in requestAnimationFrame, which has an irregular rate.
One possible fix: as soon as we know the radius we can calculate the amount of time until collision and schedule it in advance.
There's also Tone.js #draw, which is supposed to help sync up drawing with Tone.js frames, but I'm not totally sure how it works.