Skip to content

Adjustable arrangement length #49

Description

@britle20

Feature Spec

Related feature document: docs/features/20-adjustable-arrangement-length.md

Goal

Allow users to increase or decrease the arrangement length instead of keeping the arrangement fixed at 16 bars.

Context

Arrangement length should be serializable project state and should drive the ruler, grid, horizontal scroll area, loop boundaries, playback bounds, and later export duration.

Scope

Included:

  • Store arrangement length as serializable state.
  • Default new projects to 16 bars.
  • Add +/- controls in the arrangement toolbar.
  • Derive ruler, grid, loop bounds, and playback bounds from arrangement length.
  • Safely handle reducing length when clips would extend beyond the new end.

Excluded:

  • Infinite timeline.
  • Zoom controls.
  • Track count management.
  • Export rendering.

Constraints

  • Store arrangement length in musical units and derive ticks from PPQ/bar math.
  • Do not delete clip instances beyond a shortened range without explicit confirmation.

Done when

  • Arrangement bars can be added or removed within documented bounds.
  • Ruler/grid/loop bounds update with arrangement length.
  • Playback stays inside the current arrangement bounds.

Verification

  • npm run typecheck --if-present
  • npm run lint --if-present
  • npm run test --if-present
  • npm run build --if-present

Notes

Planning created from the agentic workflow discuss-feature process.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions