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.
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:
Excluded:
Constraints
Done when
Verification
Notes
Planning created from the agentic workflow discuss-feature process.