SV changes tools

by Agka


Calculate Nx-looking speed changes.

Description:

The use of this tool is to; given a first SV change that lasts for a fraction (duration) of the intended section, gives you the second SV change to place after that fraction has passed to make that section look as 1x.


Duration (Between 0 and 1) of first SV change:
First SV Change:
Destination rate (Leave as-is if unsure):


Second SV Change:
Unset



Normalize BPM changes to 1x at BPM

Description:

This tool serves two functions. First, you can remove the SV changes from the pasted timing points of your .osu file. Second, you can get SV changes such that the speed of the map will look as if it had the selected BPM. Do note, that the calculations for normalizing speed will ignore already existing SV changes.

BPM to normalize to:
Add original BPM changes along with normalization SVs

Place the contents between [TimingPoints] and [HitObjects] here.

Results will be contained here. Paste these into [TimingPoints].




Create flowing speedups and slowdowns

Description:

This tool is for creating speedups and slowdowns that go from Ax to Bx in N steps from time T0 to T1. If quadratic is enabled, a form of easing will be applied.

Start Time (ms):
End Time (ms):
Steps:
Initial SV:
Final SV:
Quadratic interpolation:
Results




Add Time to Timing Points

Description:

This tool is for making the timing points you give it in the same, except forward in time. Useful for copying and pasting sets of changes.

Time Amount (ms):
Timing points input:

Output:


Arbitrary math function for cyclical SV

Description:

This tool is the most powerful, and the hardest to use. Given your function of domain 0->1 and codomain 0.1->10 (osu! limitations) for C cycles that last D milliseconds, start at T and are divided in N parts, get a timing point that maps from the beginning (zero) to the end (one) of each cycle a SV value. If your function returns a value outside of this range it'll be skipped. It is also guaranteed it'll be called only once per division. In addition, SV changes get rounded to the hundredth place and redundant changes are removed.


Function Collection:


Import...

Export/Import ignore functions that begin with "builtin" on their name!



Function:
(function(){ // declare variables here return (x) => { // return sv values here return 1; }; })()


T - Time Start (ms):
D - Cycle Time Duration (ms):
N - Divisions per cycle:
C - Cycles:
Include SV of last cycle


Output:


Inherited points to uninherited points

Description:

Paste your timing data information here, and get as output the SV changes converted to uninherited timing points.

Input:

Output:


Measure line spam

Description:

For the duration, including start and end, every T ms, put a measure line at B bpm.

Start (ms)
End (ms)
Interval (ms)
BPM

Output:

space time