f2e-spec icon indicating copy to clipboard operation
f2e-spec copied to clipboard

Song GAP adjustment in gameplay

Open kangalio opened this issue 2 years ago • 2 comments

Suggestion

It would be awesome to be able to adjust per-song offset (GAP) in-game while playing. Similar to how global offsets can already be adjusted (Ctrl+,/./-/=/[/])

Use case

This is useful for off-sync songs. Changing sync in Performous directly is much quicker than having to change the .txt and reload Performous over and over again

Extra info/examples/attachments

I know this feature from Stepmania. It uses F5/F6 I believe to change offset. It's implemented by changing the sync in the in-memory chart struct and then writing the new struct to the disk, overwriting the old chart file.

If Performous can write a chart to disk from memory (as opposed to just reading), it could use the same approach.

Alternatively, Performous could keep track of the byte offset of the #GAP field content within the file, and then just replace that byte range with the new value.

Yet alternatively, Performous could leave the file on-disk unmodified and instead save offset adjustments in the database.xml

kangalio avatar Jan 01 '23 01:01 kangalio

Neat suggestion! This would make timing songs from usdb with random videos also possible/easier 👍

@kangalioo do you also want to save the offset back to the file?

Baklap4 avatar Jan 02 '23 12:01 Baklap4

do you also want to save the offset back to the file?

Two of three suggested implementation approaches would involve that, yes. But perhaps the approach that leaves song files unmodified would be cleanest

kangalio avatar Jan 02 '23 16:01 kangalio