How to move sprites to match the tempo of a song (rhythm game)

I am developing a rhythm game prototype in unity. To get the rhythm game to sound right i need to match up my sprites (notes) to the bpm/tempo of the song i am using.


So to address this I added a calculation into a script to move the sprites, I have a public variable called “beatTempo” and then i calculate the amount the sprites need to move.


beatTempo = beatTempo / 60.0f;


I then transform the sprite by: beatTempo * Time.deltaTime


So in theory the notes should move and match the audio source in my scene if i put in beatTempo = 120 for example.


I found that this calculation works inside of world space just fine but because i am working inside a canvas the calculation makes the sprites move extremely slow in canvas, but they move just fine in normal world space. Does anyone know the difference of units inside a canvas compared to world space so i can match up the bpm to the sprites?

You really shouldn’t be making moving game mechanics inside a canvas. Just create 2D sprites in the world space, and just use the Canvas for the UI.