Skip to content

add loopmove equivalents for beatloop: loopmove_size, loopmove_forward, loopmove_backward #16150

@ronso0

Description

@ronso0

Feature Description

Turns out that beatjump automatically doing loopmove when a loop is active causes some confusion, and also undesired side effects:

  1. beatjump in active loops is not possible / tedious / dangerous
    -> you need to quickly disable the loop, beatjump, re-enable loop -> dangerous as we may cross the loop out marker and fall out of sync when re-enabling the loop
  2. Beatjump moves cue loops #16149 beatjump moves saved loops
  3. usually I want to move the loop just a tiny bit, or by 1/2/4 beats, but my beatjump size is usually 8/16/32 beats
    -> moving the loop requires to change the beat size spinbox

Controller mappings with Loop Move pads are not affected, they can use the existing loopmove_[beats]_foward controls


I propose to add

  • loopmove_size
  • loopmove_forward -> using loopmove_size
  • loopmove_backward -> using loopmove_size

I already opened #16099 which adds the Preferences option "Beatjump moves the active loop"

Regarding the skins:

  1. add optional Loopmove controls, but skins are already pretty crammed.
  2. keep the current spinbox / Fwd / Back button, but add 'Loop'|'Jump' radio buttons that would swap the sections, so either loopmove or beatjump controls are displayed
  3. keep as is and make Shift + Fwd/Back do Loopmove when the auto-loopmove option is disabled
    = add ShiftLeftButton and ShiftRightButton connections to WPushButton, requires to extend the ButtonState enum

For now I'd do 3. Though only for 1-state buttons like the loopmove/beatjump buttons, because I'm afraid that WPushButton::mousePressEvent/mouseReleaseEvent will become unmanagably complex if we do this for multi-state buttons.

TODO

What do you think?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions