Skip to content

Requantize / Recolor Notes#257

Draft
Psycast wants to merge 4 commits intobetafrom
requantize-notes
Draft

Requantize / Recolor Notes#257
Psycast wants to merge 4 commits intobetafrom
requantize-notes

Conversation

@Psycast
Copy link
Collaborator

@Psycast Psycast commented Feb 5, 2026

Re-quantize / Re-color notes based on the current selected snapping.

This corrects for the time an scroll velocity so that it plays back the same in cmod and xmod. Tries to maintain the correct values when possible.

Doesn't currently work for notes positioned within a warp as time isn't progressing.

Issues to currently resolve:

  • All Beat Inserts in step one is done through multiple calls for beatInsert, which on more extreme cases take up the majority of the compute time.
  • Holds are removed for normal notes, need to factor them into bound calculation and solving.
  • Warped notes could have the scroll values adjusted, but the bpm part isn't needed, more testing needed.

First issue need to be solved before this should be merged, as this step can be extremely slow on larger selections or when undoing.

Basically note recoloring. This aims to preserve the structure of a file by only doing local edits when needed.

This also corrects for BPM speed changes by including scroll edits as well.
This complicates the logic a ton, but cut note/tempo updating to 15% of the previous time on extreme cases.

Also reduces the total history entries to just 1-2 per selection, instead of 1-2 per note.
This solves the 2 separate history entries for beat insert then note editing.

This method is inheritably unsafe to use due to possible desync in history / chart state if misused, but allows for much more possibilities for compressing history entries.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant