Add beatloop anchor to set and adjust loop from either start or end#12745
Add beatloop anchor to set and adjust loop from either start or end#12745daschuer merged 6 commits intomixxxdj:mainfrom
Conversation
e467ee9 to
27154a8
Compare
|
Thank you for strating this topic. Can you take s screenshot of the new button in it skin area? The icon itself does not work well for. It looks like a beat grid edit icon. Did you consider to reuse the icons of the loop-in/out button? I can think of a loop-out button with a lock overlay for the reverse case. Or the full loop icon with a pointer or lock overlay right or left. |
|
The most puzzling question is how make this accessible from the controllers. Did you consider this? We are currently facing the issue that the loop out button alone does nothing or surprising things. Did you consider to make use of it? |
| this, | ||
| [this](double value) { | ||
| if (value > 0) { | ||
| slotBeatLoopAnchorChangeRequest(static_cast<double>( |
There was a problem hiding this comment.
I think you can read the value of m_pCOBeatLoopAnchorToggle right away using toBool() without any connection.
There was a problem hiding this comment.
I've used toBool() but not sure how I can make the toggle work without connection. Could yous how me a example?
There was a problem hiding this comment.
You need to make the control a toggle pushbutton like here:
Line 233 in 7b3e485
There was a problem hiding this comment.
Sorry, I'm not sure how you want me to remove the connection. This should already be a ControlPushButton. In the example you've linked, there also seem to be a connect
m_pSelectBigSpinnyCover = std::make_unique<ControlPushButton>(
ConfigKey("[Skin]", "select_big_spinny_or_cover"), true);
m_pSelectBigSpinnyCover->setButtonMode(ControlPushButton::TOGGLE);
connect(m_pSelectBigSpinnyCover.get(),
&ControlObject::valueChanged,
this,
&SkinLoader::updateSpinnyCoverControls);Just to make sure you haven't missed it, but this connect is for the toggle (loop_anchor_toggle) control, which flip the state of the main CO (loop_anchor), later use in the loop logic. Do you think I can still remove the connect for the toggle? If yes, could you make a code suggestion?
There was a problem hiding this comment.
The toggling is handled inside the control, via ControlPushButton::TOGGLE
You need only to connect the signal when you like to react on the event. But this is not the case here.
There was a problem hiding this comment.
Why do I not want to react to the toggle event here? Since the loop anchor state is stored in an other CO, do I not need to replicate it here? I'm confused
There was a problem hiding this comment.
I think you can do it with just with one CO. But maybe I miss something?
27154a8 to
f08b0f7
Compare
I have put a little screen recording in the PR description. Here is a focus on the section as well
Yeah, I've used the loop-in SVG as a starting point, but I must confess I have no clue what I'm doing in Inkscape. Some help on the icons would be greatly appreciated :) I will update change the
Yep, I have already implemented it on my controller, before doing the UI work in order to test the feature on a real setup. Currently with my S4 MK3 mapping, if you keep the "Sample" pressed, the
Yes, it does now weird thing consistently in the tho modes. At first glance, there seems to be multiple issues, but I believe this will be out of scope for the current piece of work. |
f08b0f7 to
b3246c0
Compare
|
I have rework the icon to follow your suggestion @daschuer Kooha-2024-02-07-11-09-43.webmKooha-2024-02-07-11-19-15.webmThe classic one seems to loose its background when active but I haven't managed to find the CSS rule causing issue yet |
|
Thank you for the new Icon. I think this is good enough to see the intention. We can polish it at any time. No need to learn Inkscape ;-) |
|
Just a side note, didn't test this yet: |
b3246c0 to
a75206b
Compare
|
I have removed the redundant CO ( Kooha-2024-02-08-10-22-24.webmKooha-2024-02-08-10-21-51.webm |
|
I'm wondering how this solves the use case mentioned in #12737 where you want to spontaneously create a loop backwards from the playhead. Wouldn't that require to always keep the loop anchor set to End, but how does this work with the 'regular' beatloop usecase where you want a forward loop? |
|
For my understanding you can switch between these two modes by the new toggle button. I have not yet played with it, but I can imagine that will become my new default. You can kind of listen the first path of the planed loop before enable it. Before you need to remove the loop quickly before the loop end if you notice something is messed up. |
a75206b to
776b730
Compare
776b730 to
70f0639
Compare
I think we should extend this by What do you think? |
|
I'm afraid it may lead to unexpected behavior, since it could mean that one could "accidentally" set a loop on the last X beats rather than on the next X ones. Say you want to put a 64 beats loop on the outro that just started, but it turns out that the outro only has 32 beats, you unexpectedly end up setting the loop on the last 64 beats, leading to a jump back in the verse or chorus preceding the outro. It's worth to point out that, this PR in its current state has already solved the issue #12737, by:
|
|
I have added the the |
|
I'm not happy with the LateNight icons, the lock is too small and has cutouts whic makes it hard to read IMO. |
|
@ronso0 Your review is pending. Are all your topics fixed? |
|
I'm taking a look at the LateNight visuals and will send a commit with some fixes & tweaks soonish. |
|
Are you happy to do it as a subsequent PR or do you think it should come as part of that one? |
Yes, thanks. FWIW I'd prefer if we stick to the rule that the reviewer closes his review convos if the issues/request have been addressed. That allows to quickly check for open issues. |
|
Thank you, I am curious if this will change my habit with beatliops. |







Add the ability to define what is the static point of the loop or which point gets inherited from the current position.
Better wording suggestion would be greatly appreciated!
Kooha-2024-02-07-10-30-13.webm
Resolves #12737