Skip to content

Requantize / Recolor Notes#257

Closed
Psycast wants to merge 8 commits intobetafrom
requantize-notes
Closed

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

Conversation

@Psycast
Copy link
Copy Markdown
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.
* Include notes at the exact end if region when clearing.

This prevent left over notes when pasting notes, scaling notes, switching sides, and the stream generator.

Tempo region clearing already included this condition.

* Ignore default found BPM when none found.

Inform the user no bpm was found instead of giving a bad result.

Fixes #159.

* Update NoteStats on Warp/Fake changes.

- This updates Chart Properties when changed.
- Changes Note Density text to only factor real hittable notes, as warp based files or large fake usage will skew the value.

* Report Note Selection for all actions.

Updates the minimap in line with selections more accurately.

Adds Hud Msg when using Select All shortcut.
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.
Update the note and tempo data with the current state of the chained history, instead of only at the end.

This allows normally incompatible edits such as multiple beat inserts to still be contained within a single Undo/Redo history item.
@Psycast Psycast closed this Mar 11, 2026
@Psycast Psycast deleted the requantize-notes branch March 11, 2026 03:37
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