Skip to content

A loop and a section describe the same span, but neither can become the other #623

Closed

Description

@thcp

A loop and a section are both a start time and an end time on the same track. Getting from one to the other means reading the numbers off and reproducing them by hand.

Both directions come up constantly:

Looping a section. You have marked a chorus. Practising it means setting the loop to the same span, by dragging until the two roughly agree. They rarely agree exactly, and the section you already got right is right there on screen.

Naming a loop. You have found a passage by ear, looping and trimming until the bounds are correct. Keeping it means reading both numbers and rebuilding the span as a section, and the work of finding it is thrown away.

Today pressing Add with a loop armed builds a section at the start of the track instead, wherever the loop actually is. Nothing says why. That reads as the button being broken rather than as a feature that does not exist.

Asked for by @digidirt in discussion #573, and the same pairing in #474.

Constraints for anyone fixing it

Sections cannot overlap, and loops can sit anywhere. A loop drawn across two sections cannot become one without moving something the user did not ask to move. There are three options and they are not equivalent: refuse and say so, trim the new section to the free space, or displace the neighbours. Trimming and displacing both hand back a different region than the one selected, and displacing can move a section that was deliberately pinned. See #622.

Double-click is taken by rename, and .section-label is flex: 1, so it fills nearly the whole block. A double-click gesture would land on rename almost every time. A single click on a section currently does nothing at all, so it is free.

A drag ends in a pointerup too. Anything hung on "the press ended" has to distinguish a click from a drag, or every move silently retargets the loop as well.

Activity

  1. self-assigned this
    on Oct 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions