I have a vertical scrolling rhythm game, here is the commented code of the basic logic of the game neccesary to understand the question
int scrollSpeed = 500 //time in ms that take the note to get from the top to the bottom
float currentTime = 0 //time in ms of the song playing
List<int> noteTimings = new List() //List of the time in ms that the player should hit them, sorted in ascending order
for(i=0; i<noteTimings.Count; i++) {
int noteTiming = noteTimings[i];
float notePosition = (noteTiming-currentTime) / scrollSpeed;
}
The note position will be a value, 1 meaning the note is at the top of the screen and 0 at the bottom where the player should hit it.
What I want to do
I want to make a multiplier that will multiply the speed of the notes. With the actual code multiplying the note speed while playing will make the notes jump, for example if I multiply the note speed by two the notes will have the double of separation than before, and that would look like the notes moved INSTANTLY, but I want that double separation to be done before changing the speed so it looks linear and well when playing
edit: here's an example of how I want it to look: https://youtube.com/watch?v=ZBtNjb8E1n4 As you can see it changes velocity, this is done by changing the timing points so the velocity slow down or speed up depending on a multiplier