Skip to content

Timeline zoom + optional auto-follow for closely spaced markers #3

Description

@patrickiel

What are you trying to practise?

Short, dense passages — a fast lick, a turnaround, a chord change that happens over two or three seconds inside a four-minute track.

To work on those I end up setting several markers within a very small time window. On the full-track timeline that window is a few pixels wide, so the pins land on top of each other: I can't tell which pin is which, and grabbing one to nudge it usually grabs its neighbour. The alternating above/below rows help a bit, but past three or four close markers it stops being workable.

The same thing happens when I want a loop range whose endpoints are a beat apart — picking start and end from overlapping pins is guesswork.

What you have in mind

Zoom on the timeline, so a few seconds of the track can fill the whole width, plus an option for the view to follow the playhead while it's zoomed in.

Zooming

  • Ctrl/Cmd + wheel over the timeline zooms around the pointer (trackpad pinch maps to this automatically, so it comes for free).
  • Shift + wheel (or plain horizontal wheel) pans.
  • Zoom-to-fit is the default state, so nothing changes for anyone who doesn't zoom.
  • Nice-to-have: "zoom to the current range/loop" — the range select (r) already knows the span I care about.

Auto-follow

  • A toggle: when on and the playhead leaves the visible window, the view scrolls to bring it back; when off, the view stays where I put it.
  • Scroll by a page (jump when the playhead hits the edge) rather than keeping it centred — a continuously sliding timeline is distracting while playing along.
  • Manually panning or dragging a marker should temporarily suspend follow until playback restarts or the playhead comes back into view, otherwise the view fights me while I'm editing.
  • The toggle should be remembered in settings. Zoom level itself is probably better treated as transient view state than per-track data.

UI

  • As close to zero added chrome as possible. Ideally no new buttons at all: wheel and hotkeys do the zooming, and the only visible affordance is a subtle indicator when you're not at full-track view (a thin scrollbar-ish bar, or the visible time span shown somewhere) so it's obvious why the timeline no longer covers the whole song.
  • Auto-follow could be a small icon toggle in the existing looper toolbar row (next to +, loop, clock) rather than a new control area.

Hotkeys

The obvious zoom keys are already taken or unavailable:

  • - and = are speed down / speed up.
  • Ctrl++ / Ctrl+- is the browser's own page zoom inside the side panel, so it probably can't be used reliably.

Suggested defaults that don't collide with the current keymap (Space, arrows, Shift+arrows, Home, -, =, m, l, r, c, p) — all remappable in the existing keymap editor anyway:

Key Action
z Zoom in
Shift+z Zoom out
0 Zoom to fit (whole track)
f Toggle auto-follow

Details that matter

  • Marker pins, the loop range band and the playhead all need to render in the zoomed coordinate space, and marker drags should map pointer movement to the zoomed scale (with the Shift fine-drag modifier still applying on top of that).
  • Clamp so you can't scroll past the start/end of the track, and cap max zoom at something sane (a second or two across the panel is plenty).

What you do today instead

  • Set fewer markers than I actually want, and rely on the Shift fine-drag to nudge the ones I do set.
  • Delete and re-add a marker instead of moving it, because that's easier than hitting the right pin.
  • Occasionally widen the browser window / zoom the panel out, which makes everything else smaller and only buys a little resolution.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions