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

toNearestTact() with offset when moving tco #4043

Closed
wants to merge 3 commits into from

Conversation

zonkmachine
Copy link
Member

@zonkmachine zonkmachine commented Dec 7, 2017

A tco that has been moved off-beat with <Left Click> + <Ctrl> will
snap to nearest full tact on the next move action. Remember the offset
and add this on an ordinary move with snap action.

  • Dragging multiple TCO with mixed offsets has erratic behaviour
  • Dragging multiple TCO lags a bit at fast mouse action and zoom < ~200%

Fixes #2300

A tco that has been moved off-beat with <Ctrl> 'move' will snap to
nearest full beat on the next move action. Remember the offset and
add this on an ordinary move with snap to nearest tact.

Fixes LMMS#2300
@tresf
Copy link
Member

tresf commented Dec 8, 2017

For multiple TCOs being dragged, this makes perfect sense. For individual, I feel that the snap behavior should remain. Losing snap behavior seems like a regression from current functionality.

The bug mentioned in #2300 seems to be primarily focused on dragging a group of TCOs.

@gi0e5b06
Copy link

gi0e5b06 commented Dec 8, 2017

@zonkmachine Good. Approved.
@tresf Offset is user data. It should be kept.

@tresf
Copy link
Member

tresf commented Dec 8, 2017

@tresf Offset is user data. It should be kept.

@gi0e5b06 in a grid system, you don't break default snap points unless you have a modifier key.

@zonkmachine
Copy link
Member Author

Dragging multiple TCO with mixed offsets has erratic behaviour with this PR.

@zonkmachine
Copy link
Member Author

I'm trying snapping out of offset with shift modifier.

@Spekular
Copy link
Member

Spekular commented Dec 8, 2017 via email

@tresf
Copy link
Member

tresf commented Dec 8, 2017

Although I agree with trying to stay consistent, I don't think it's fair to begin to compare a misplaced single note with a misplaced TCO. Notes are drawn by single-clicking them. TCOs can be created by various ways. Furthermore a misaligned TCO can be detrimental to the sound of a song if even off by a hair when dealing with syncopation whereas a single note being off is often fine.

TCOs are not easy to delete either. They require a middle-mouse button which a trackpad doesn't offer. The only "consistent" behavior argument that I think is close to that of the piano roll is a BBEditor TCO (since it contains nothing except perhaps a custom color) and even then, they don't seem to remember color properly unless copied/pasted.

Another problem, which may be argued as as separate bug, but must be considered when talking about stable-1.2 (since that's the branch this is against) is that if one is attempting to use the COPY modifier but presses it too late, a non-snapped drag is initialized and a portion is misaligned. Copying/pasting the entire area is not a solution and asking someone to remember yet another shortcut is bad UX.

Again, if you look at the bug this is meant to address, the OP said nothing about single TCOs. The video illustrates multiples.

@tresf
Copy link
Member

tresf commented Dec 8, 2017

even clicking an audio clip will snap it to grid.

That's simply a bug. Clicking it shouldn't snap it, moving it should.

@tresf
Copy link
Member

tresf commented Dec 8, 2017

Clips also keep their offsets when ctrl+dragged to duplicate.

Right, making it even harder to revert an offset'd TCO.

@tresf
Copy link
Member

tresf commented Dec 8, 2017

That said, if we do make this the new default behavior, I would be ok with Drag, Ctrl and release of Ctrl re-releasing the TCO from offset and back to snapping. That would provide the same shortcut to get out of the conundrum that put you there to begin with.

@husamalhomsi
Copy link
Member

I think it's hard to misplace a TCO. Resetting offset manually is as difficult as creating it manually.
I would expect individual TCOs to behave like multiple TCOs.

Probably not for this PR, but I suggest that, for any TCOs, the user should be able to drag them to hit the beginning of the track to reset their offset.

@zonkmachine
Copy link
Member Author

even clicking an audio clip will snap it to grid.

I don't see this.

@gi0e5b06
Copy link

gi0e5b06 commented Dec 8, 2017

Probably not for this PR, but I suggest that, for any TCOs, the user should be able to drag them to hit the beginning of the track to reset their offset.

Not really practical (if your track is long) or logical. I suggest instead a single dialog (or window) to edit all the properties of a TCO (like color, name, offset, startFrame, endFrame, etc) but also any specific property.
A good component to edit times and durations with the three used time units (m:s:ms, bbt, frames) would be needed. Something like in the main toolbar but editable and with frame support.

@Spekular
Copy link
Member

Spekular commented Dec 8, 2017

@zonkmachine I just tested again, RC4 on Windows 10 64-bit. The way I can reproduce it is to zoom in and move a sample track to a "weird" offset that isn't possible at lower zooms, then zoom out and click.

@zonkmachine
Copy link
Member Author

^OK, got it.

@zonkmachine
Copy link
Member Author

Yeah, this turned out a bit too complex. I managed to fix the action for multiple tco's but at the expense of lagging action at fast mouse movement. Especially at zoom < ~200% .

@tresf
Copy link
Member

tresf commented Mar 15, 2018

I've been working more and more with misaligned sample tracks and I have to agree that the offsets have great value when moving/cloning. Getting that sample track aligned just right and then moving it really kills productivity.

That said, if I could resize from left, it would probably be less of an issue.

@BaraMGB
Copy link
Contributor

BaraMGB commented Mar 15, 2018

That said, if I could resize from left, it would probably be less of an issue.

That feature is only in master.

What if we snap both? A whole bar the right and the left side of TCOs toNearestTact()? We could make that snap a little bit more smoother. At the moment it snapped in every case. It should snap like a little magnet.

@tresf
Copy link
Member

tresf commented Mar 15, 2018

I think drag and copy operations should always maintain offset. To quote @gi0e5b06, the offsets are user data that should be kept. The magnetic behavior is great but I feel is separate issue and will introduce some other nuances.

My major concern is the inability to re-snap. Perhaps a right->click, align to grid.

@BaraMGB
Copy link
Contributor

BaraMGB commented Mar 15, 2018

I think drag and copy operations should always maintain offset. To quote @gi0e5b06, the offsets are user data that should be kept.

I don't know a DAW that behave in that way. If the user want maintain the offset they could align the right edge of there TCO with the grid.

@tresf
Copy link
Member

tresf commented Mar 15, 2018

I've posted this to #support on Discord as I don't use other DAWs to be able able to speak to that, but when composing, it's fairly common to drag several items around and copy several items. The inability to maintain offset is crippling to the production process.

@zonkmachine
Copy link
Member Author

Closing. See #4246 and #4262

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.

6 participants