I've improved the algorithm I'm using quite a bit, and the animation and music are syncing up really well now. Music with a strong drum beat works best (this song is perfect :-) but the results are pretty good in other cases, too. Right now I have to fiddle with the parameters quite a bit, but I have some ideas on for pre-processing the audio to calculate good parameters automatically.
Latest code is available here: github.com/jl2/spiro-animation
For the music:
Spheres (Hip Hop Instrumental) by Robbero (c) 2013 Licensed under a Creative Commons Attribution (3.0) license. ccmixter.org/files/Robbero/43483