mixxxdj / mixxx

Mixxx is Free DJ software that gives you everything you need to perform live mixes.
http://mixxx.org
Other
4.25k stars 1.24k forks source link

Saved beat jumps #13216

Open acolombier opened 2 months ago

acolombier commented 2 months ago

This addresses the feature request #13161

Currently, the activating the saved jump result in enabling or disabling the auto jump (different icon used to provided feedback on jump status)

https://github.com/mixxxdj/mixxx/assets/7086688/cd2084a8-a5d9-4b19-9edc-c52e57378a04

TODO:

Depends on #13215

ronso0 commented 1 month ago

Currently this behaves like a loop, i.e. the jump cue is not deactivated after the jump if the the target is behind to cue.

ronso0 commented 1 month ago

Having to deactivate a special mode in order to get the hotcue mode feels. I'd vote for three buttons in the popup:

IMO they can be very close (like the hotcue grid), to somehow mimic radio buttons?

acolombier commented 1 month ago

the jump cue is not deactivated after the jump if the the target is behind to cue.

That's right, and it was on purpose. Do you think it would be best to have it deactivated on run? My thought for the usecase was, when a DJ prepare their track cues, and decide to say that a section should be jumped over, this is likely that they want not to play the section of the track, so we should keep it on at all time. If they decide live to actually play this section, they can trigger the hotcue (hotcue_X_activate/hotcue_X_status=1) which will disable the jump (different icon on LateNight/Palemoon, to be brought on other theme once we've iron the details)

Having to deactivate a special mode in order to get the hotcue mode feels [wrong].

You don't have to. Like for the saved loop, you can use the activate or status CO to change its status to set instead of active. This can be done on the UI (again LateNight/Palemoon only for now) by clicking on the cue, no need to change the type (and lost the jumping destination)

somehow mimic radio buttons?

I like the idea, happy to make it work like this once we are happy with the state of feature

acolombier commented 1 month ago

I have upgraded the button to behave like a radio group. Also, I adjusted slightly the delete button to put the emphases that they are not part of the radio group.

https://github.com/mixxxdj/mixxx/assets/7086688/d8daecfd-30b9-4e5f-b281-0a7455675e25

ronso0 commented 1 month ago

I think at least in LateNight we need better styling for the 'active state' of loop/jump cues. The current inactive jump icon should be the dark/bright active icon, and we could use a highlight border.

I'll tr ysomething.

acolombier commented 1 month ago

I've made some minor UI tweak - does that look better @ronso0 ?

Also, I have made the saved beat jump to disable itself if jumping backward, to prevent them making unwanted loops. My use case for this feature was the ability to jump above certain part of track with the low interest, so I would appreciate we don't disable jump forward when possible so a track can be prepared with auto forwarded sections.

If you think it should be different, I can add a setting in preference.

ronso0 commented 1 month ago

For some reason I can't assign a "free" jump target anymore, it'll always use the current jump size, both for righ- and left-click.

ronso0 commented 1 month ago

For some reason I can't assign a "free" jump target anymore, it'll always use the current jump size, both for righ- and left-click.

Strange, I can't reproduce that anymore.

acolombier commented 1 month ago

That weird indeed. It sounds like a bug I fixed when I rebased main yesterday tho, couldn't it be some cached sources?

ronso0 commented 1 month ago

What I find a bit disturbing is that the jump range in the overview always appears as 'active', unlike saved loops which are less opaque if disabled. (ranges covering the signal is another story on its own...)

acolombier commented 1 month ago

(ranges covering the signal is another story on its own...)

Yep, agreed. This is why this is still a draft ;) I want to get rid of the MarkerRange and use custom Marker which allow to display some kind of "cue with a jump flag" on the from and to positions.

I've paused that work because implementing the above requires to touch on lot of waveform renderers atm, which we are hopefully being retired as part of #13226. I will look at that after. In the meantime, if you have some asset suggestion for the cue design, feel free to help! You probably know by now, but my UI taste are pretty :hankey:

ronso0 commented 1 month ago

Just an idea I had while reading https://mixxx.discourse.group/t/timing-a-fireworks-show/29693/3 Let's add a 4th cue type :laughing: Stop Cue activate it, and as soon as the play pos hits it... stop

ronso0 commented 1 month ago

For some reason I can't assign a "free" jump target anymore, it'll always use the current jump size, both for righ- and left-click.

Might stem from a previous version where the end was not cleared after changing back to hot/jump cue.

acolombier commented 3 weeks ago

Some rather larger rework of this feature. Please note the code quality has taken a bit of a hit, so don't review code style/quality just yet :pray:

I have changed saved jump so

There is likely some weird behaviour/bug to iron out, but I think we are making progress. Let me know your thoughts

https://github.com/mixxxdj/mixxx/assets/7086688/663c2238-ab58-462e-bf86-dbd98b6c31ea