Skip to content

Automation lanes size by their bottom edge in the arranger - #57

Open
marcin-koziol wants to merge 1 commit into
BurningTreeC:mainfrom
marcin-koziol:automation-lane-height
Open

marcin-koziol wants to merge 1 commit into
BurningTreeC:mainfrom
marcin-koziol:automation-lane-height

Conversation

@marcin-koziol

Copy link
Copy Markdown

Problem

Automation lanes in the arranger had a fixed height of 56 px. On a track showing automation, the only edge that resized anything was the one between the track's own part and its lanes. The bottom edge of the whole block, which is the one people naturally grab, did nothing. So an automation lane could not be made taller to edit its curve more precisely.

Change

  • Each automation lane can be resized by dragging its bottom edge in the header column. The grip extends a few pixels on either side of the edge, with a resize cursor, a single highlight line and a tooltip.
  • Only the dragged lane changes height. The rows below move down, and the track's own part keeps its height.
  • Double-clicking the edge restores the default height.
  • The height is saved with the layout, the same way take-lane heights are:
    • Workspace::automation_lane_heights, keyed by lane id, clamped to 32–400 px. The default height is not stored.
    • Action::SetAutomationLaneHeight. It is not undoable and is treated as view-only by scripts and scenes.
  • AUTO_LANE_H is now the default height (AUTOMATION_LANE_HEIGHT). Lane geometry and row heights read each lane's own height.

Tests

  • New an_automation_lane_resizes_by_its_bottom_edge. It checks that the edge is hit on both sides, that dragging grows only the lane, that the rows below move, and that a double-click restores the default.
  • faderframe-view-arranger: 96 tests pass.
  • faderframe-workspace: 16 tests pass.
  • Clippy reports nothing on the changed crates.

🤖 Generated with Claude Code

Automation lanes were a fixed 56 px: a track showing them could only
size its own part (the edge between it and its lanes), and the bottom of
its block, where one reaches for, did nothing.

Each lane now sizes by its bottom edge in the header column (a few
pixels either side, the cursor and a highlight say so): the lane alone
grows or shrinks, the rows below move, the track's own part keeps its
height. Double-click: the default height again. The height is the
layout's, like a take lane's (Workspace::automation_lane_heights by
lane, 32–400 px, the default not stored; Action::SetAutomationLaneHeight,
not undoable, view-only for scripts and scenes).

Test an_automation_lane_resizes_by_its_bottom_edge.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants