VortexCoyote / leraine-studio

A cross-platform portable open-source VSRG chart editor written in C++ with SFML.
Mozilla Public License 2.0
14 stars 6 forks source link

Offset shift function #33

Open Opposite34 opened 3 years ago

Opposite34 commented 3 years ago

Basically shifts everything - timing points and notes by a specific amount of ms like how Quaver has it in "Apply offset to map".

This will help with porting for many games (i.e. osu!mania maps use offset on time-stretched downrate while other StepMania and Quaver use offset on the pitched downrate) + will help with shifting offset on variable timing for the aforementioned osu!mania's offset norm as well.

VortexCoyote commented 3 years ago

Alright so my idea is that instead of moving all the notes when specifying the time amount, we should add some kind of offset variable within the audio module. With this we can actually save a lot of performance and compatibility for the stepmania format (since that one has a dedicated offset variable). Since general offset doesn't exist for the osu (and maybe quaver) file format, the offset should be applied on all notes and bpm points within the file export stage. All of this should definitely be easier than moving every every timefield object within the chart data structure