* Calculate hit windows in performance calculator instead of databased difficulty attributes
* Apply mods to beatmap difficulty in osu! performance calculator
* Remove `GreatHitWindow` difficulty attribute for osu!mania
* Remove use of approach rate and overall difficulty attributes for osu!
* Remove use of hit window difficulty attributes in osu!taiko
* Remove use of approach rate attribute in osu!catch
* Remove unused attribute IDs
* Code quality
* Fix `computeDeviationUpperBound` being called before `greatHitWindow` is set
* Use correct `HitWindows` class for osu!taiko hit windows in difficulty calculator
* Remove redundant (and incorrect) hit window creation
* Balance rhythm against hit window changes
* Replace long interval nerf with a new one that uses stamina difficulty
* Turn tabs into spaces
* Update unit tests
---------
Co-authored-by: StanR <hi@stanr.info>
* Penalise reading difficulty of high velocity notes at high densities
* Use System for math functions
* Lawtrohux changes
* Clean up density penalty comment
* Swap midVelocity and highVelocity back around
* code quality pass
---------
Co-authored-by: Jay Lawton <jaime@merkids.com>
Co-authored-by: StanR <hi@stanr.info>
* further considerations for rhythm
* new rhythm balancing
* fix license header
* use isNormal to validate ratio
* adjust tests
---------
Co-authored-by: StanR <hi@stanr.info>
* revert acc scaling shift to previous values
* increase variance in accuracy values across od
* move return values, move nullcheck into return
---------
Co-authored-by: James Wilson <tsunyoku@gmail.com>