EDIT: Since peppy commented that my original explanation of this feature was a bit too long for something so simple (he was right), I have added a shorter, easier to understand version below. If you want a more detailed explanation of the feature, then please read the rest of this post, otherwise, you can skip past it to the next post in this thread. Also, if you want the SPM feature I have mentioned in this post to be added to Osu!, you will need to acknowledge this by posting in this thread, otherwise it may be rejected.
I'm really pleased that Osu! has a SPM (Spins Per Minute) feature for spinners, however, as some people have already noticed when posting their spinner scores, the SPM results are different for spinners with different lengths, and the difficulty of the beatmap also affects the SPM results too. For example, I could be spinning at roughly the same speed on two spinners, and then I would get an average of 1000+ SPM on the first one, and only 500+ SPM on the second. So, after some thought, I have come up with an alternative method for calculating the SPM for spinners, which would give the same results regardless of the spinner length and the difficulty of a beatmap.
Take a look at the image below. As you can see from the image, there are 8 lines joining to the center of the spinner at 45 degree angles, and the lines are named A,B,C,D,E,F,G and H. These 8 lines would be invisible to a player, but would be visible to Osu! to help calculate the SPM value. When a spinner appears on the screen for the first time, no starting point has yet been determined, and if you look at the image below again, you will see that the cursor is between lines B & C. With the cursor in the position that's in the image, if a player started rotating the spinner clockwise, the starting point for the spinner would be line C after he passes through it, and if the person were to go anticlockwise, the starting point would be line B.
When a player starts spinning clockwise and the starting point is line C, then the next line the cursor should pass through is line D. Once a players cursor has gone through all of the 8 lines sequentially for the clockwise direction (C...D,E,F,G,H,A,B), and has passed through line C again, the player will have then achieved one complete rotation for the spinner.
If a person starting spinning clockwise and went through lines C...D,E,F,G and H, then Osu! would expect the next line for the players cursor to pass through to be line A. However, if a player were to stop rotating before passing through line A, and then started rotating anticlockwise, then passes through line H again, Osu! would then set line H as a new starting point for the spinner. Also, if a person were to play Osu! using a touch screen and Osu! expected line A to be the next line for the cursor to pass through, and the cursor passed through line F instead, due to the person lifting the stylus and placing it on the screen in a different location, then Osu! would reset the starting point to line F.
I hope you can all understand my explanation of how this method works, since I'm not always good at translating my ideas into words, so that other people can understand it.adamskii_uk wrote:
Short version
Since the SPM results are different for spinners with different lengths and beatmap difficulty, this makes it difficult to compare spinner scores with other people. So, I have come up with an alternative method for calculating the SPM for spinners, to help fix this problem.
As you can see in the image below, there are 8 lines joining to the center of the spinner at 45 degree angles. These 8 lines would be invisible to a player, but would be visible to Osu!, to help track a players cursor movements whilst performing spinners. This would enable Osu! to know exactly how many cursor rotations have occurred during a spinner, and would provide more accurate SPM results, that would be uneffected by spinner lengths and beatmap difficulties.
I'm really pleased that Osu! has a SPM (Spins Per Minute) feature for spinners, however, as some people have already noticed when posting their spinner scores, the SPM results are different for spinners with different lengths, and the difficulty of the beatmap also affects the SPM results too. For example, I could be spinning at roughly the same speed on two spinners, and then I would get an average of 1000+ SPM on the first one, and only 500+ SPM on the second. So, after some thought, I have come up with an alternative method for calculating the SPM for spinners, which would give the same results regardless of the spinner length and the difficulty of a beatmap.
Take a look at the image below. As you can see from the image, there are 8 lines joining to the center of the spinner at 45 degree angles, and the lines are named A,B,C,D,E,F,G and H. These 8 lines would be invisible to a player, but would be visible to Osu! to help calculate the SPM value. When a spinner appears on the screen for the first time, no starting point has yet been determined, and if you look at the image below again, you will see that the cursor is between lines B & C. With the cursor in the position that's in the image, if a player started rotating the spinner clockwise, the starting point for the spinner would be line C after he passes through it, and if the person were to go anticlockwise, the starting point would be line B.
When a player starts spinning clockwise and the starting point is line C, then the next line the cursor should pass through is line D. Once a players cursor has gone through all of the 8 lines sequentially for the clockwise direction (C...D,E,F,G,H,A,B), and has passed through line C again, the player will have then achieved one complete rotation for the spinner.
If a person starting spinning clockwise and went through lines C...D,E,F,G and H, then Osu! would expect the next line for the players cursor to pass through to be line A. However, if a player were to stop rotating before passing through line A, and then started rotating anticlockwise, then passes through line H again, Osu! would then set line H as a new starting point for the spinner. Also, if a person were to play Osu! using a touch screen and Osu! expected line A to be the next line for the cursor to pass through, and the cursor passed through line F instead, due to the person lifting the stylus and placing it on the screen in a different location, then Osu! would reset the starting point to line F.