Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Undo BPM Grid Change #12816

Closed
SephReed opened this issue Feb 14, 2024 · 9 comments
Closed

Undo BPM Grid Change #12816

SephReed opened this issue Feb 14, 2024 · 9 comments

Comments

@SephReed
Copy link

Feature Description

I've messed up a few bpm grids by clicking something I didn't mean to. There's no way to go back. Sometimes I can never get them back to where my cues line up with the lines.

@SephReed
Copy link
Author

SephReed commented Feb 15, 2024

I've also deleted cues off the wrong track multiple times, or set cues on the wrong track, or set cues at the wrong time, or move knobs and not liking the change.

There's a lot of actions that can be done imperfectly.

@mxmilkiib
Copy link
Contributor

This is kind of the same as #12774 I think, storing the state of BPM+beatgrid for undo purposes

@ronso0
Copy link
Member

ronso0 commented Feb 15, 2024

The question is which beat state should be stored:

  • the state from the database when Mixxx is started (wouldn't cover newly loaded / unanalyzed tracks)
  • the state when the track is loaded (wouldn't cover library actions on unloaded tracks)
  • the last beat change? might be the beat shift, so any state before the last change that would be lost

@ronso0
Copy link
Member

ronso0 commented Feb 15, 2024

or set cues on the wrong track, or set cues at the wrong time

or move knobs and not liking the change.

Well, how exactly should Mixxx help with user 'errors'?

@mxmilkiib
Copy link
Contributor

Regarding library actions made on a track without loading it; is that "loading" as in to a deck? I.e. not the "loading" of it into memory/an analysis algorithm?

The case of reanalysing an entire, say, 50GB (or very much likely more in some cases) library is something to ponder about how an undo mechanism might work in relation to. (Aside from the other issues you raise, Ronso.) I.e. a lot of memory use, or a lot of disk writes, or both in the case of paging/swap.

This is certainly not a non-trivial thing, as handy as it would be!

@SephReed
Copy link
Author

For my purposes, the state that it was in 5 seconds ago before I clicked something and broke it.

I had a variable BPM track and tried to nudge the BPM a bit, which broke everything. I've also tried tapping a BPM only to find myself in a worse off position with no way back.

@ronso0
Copy link
Member

ronso0 commented Feb 19, 2024

I understand. I doubt such short fixed time would work, for example if you stretch the beatgrid, then skip through the track to verify it matches the visual beats.

IIUC a revert option could work if the Track object holds a backup, it's just the question when to create that.

@m0dB
Copy link
Contributor

m0dB commented Feb 25, 2024

Ideally it should be a stack with undoable (and redoable) actions.

@ronso0
Copy link
Member

ronso0 commented Jun 2, 2024

I'll close this as fixed, now that #12954 has been merged.

I've also deleted cues off the wrong track multiple times, or set cues on the wrong track, or set cues at the wrong time, or move knobs and not liking the change.

I think this is covered by #13307

@ronso0 ronso0 closed this as completed Jun 2, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants