Qua SV de-/normalization, "BPM does not affect SV" and SV factor computation #80
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
pr with quaver changes soon tm
SV de-/normalization
Adds SV normalization and denormalization routines to Qua. Normalized means "BPM does not affect SV", denormalized means "BPM affects SV".
Additionally, a new .qua field is added, BPMDoesNotAffectScrollVelocity. When this is set to true, SVs are assumed to be normalized in the .qua itself. If this flag is set before serializing, the .qua will be saved with normalized SVs. cc Quaver/Quaver#631
The normalization and denormalization routines were converted from the plitki implementation, which was very well tested. All tests were converted from there too.
This does not fix= Quaver/Quaver#1189 which means that issue is elsewhere in the Quaver code.
SV factor
I went through a few different iterations with this one, and the one in the PR seems to work best. That isn't to say it works extremely well, but it gets the job done more or less.
For future experiments, I attach a zip-archive of Quaver databases with SV factor computed for 15k osu!mania maps for every commit from my experimental branch. Open them with SQLite Browser, go to the Browse Data tab, click on the SVFactor header to sort by it. Hide unnecessary columns by left-click-dragging on the headers, right clicking and choosing Hide selected columns.
sv-changes-databases.zip