Very common is the approach to have a "beat map". Any kind of data that represents the beats in the song. It can be a texture, datafile or anything else that holds that information. Most of the time it's created manually to create different beats and combinations, versions of speeds for an audio map.
It can be generated procedurally from audio file data, though.
How to get the speed to match the "beat point"? When to spawn an object?
Speed = Distance / Time
.
Distance =
Distance between points of creation of GameObject and of "beat point".
Time =
Audio length and constructed beat map should be enough. With this information you can analyze the data of audio/map to predict when an object must be spawned to reach the exact point. Now it all depends on when you want to spawn that object, if you want it to be very fast after spawn, then you spawn it later with great speed. If you want it to be at a normal speed - then it will need time to reach the player and audio needs time to play to the right moment.
You can even generate a new map with time stamps for spawns of beat objects for particular audio map. You have to make some predictions at some point to be able to match the beat, for most popular style I would say, to predict when
to spawn the object for it to move with certain speed
. Those can be made in runtime, or read from some file calculated previously, or saved in RAM...
I assume games like Osu
don't have this Distance
, they just have time of circles shrinking, bpm... Maps are generally custom made. So approach to calculate visuals depends on the style of the game you are making as well.
So to sum up everything, the values are interdependent. Depends on how many beats you have, on the distance between spawn point and player, and sometimes depends on data provided [some games have the speed of every beat and its appearance encoded in some data file which is created manually]. If you are doing it procedural way, then you can calculate everything basically by using audio data.