Driving visual motion from band energy rather than Hydra's clock produces a tighter in-time feel because energy rises and falls with the groove
Because Hydra’s bpm-clock drifts from Strudel’s transport (no shared transport), array-stepped timing progressively desligns from the music. The more reliable alternative is driving visual motion directly from band energy (a.fft): energy naturally rises and falls with the groove, so an energy-driven visual feels synced to the music even though no clock is shared. The seed mapping and the canonical bank both prioritize a.fft thunks over array-stepped timing for this reason. Reserve array-stepped parameters for elements where approximate timing or drift are acceptable (texture variety, ambient motion).
Examples
.rotate(()=>0.1+a.fft[2]*0.6) feels locked to high-mid energy; rotate([0,1,2]) steps at Hydra’s bpm, which drifts from Strudel within minutes.
Assessment
Compare two rotation implementations: one using an a.fft[2] thunk and one using a Hydra array argument at bpm=120. Predict which will feel more in time after 10 minutes and explain why.