Skip to content

Ease timeline zoom level restriction#1962

Merged
sapphire-arches merged 7 commits into
SynthstromAudible:communityfrom
trappar:unrestricted-zoom
May 20, 2024
Merged

Ease timeline zoom level restriction#1962
sapphire-arches merged 7 commits into
SynthstromAudible:communityfrom
trappar:unrestricted-zoom

Conversation

@trappar

@trappar trappar commented May 19, 2024

Copy link
Copy Markdown
Contributor

Implements the feature I suggested here: #314

What

The maximum zoom level has been increased. Now, the maximum zoom is the point the point where the entire sequence is represented by a single grid cell.

Why

Personally I never found this limitation to make sense. Why stop me from zooming out beyond my clip? If zoom only affected visibility, it would make sense... but zoom also affects entered note length. By allowing more freedom to zoom, you can access instant entry of note lengths that were previously not possible.

For example, this makes it super quick to enter basic chord progressions.

Given a brand new project, to create a 4 chord progression where each chord lasts for 1-bar:

  1. Zoom all the way out to 1 bar per column (one quick twist)
  2. Expand the sequence to 4 bars (3 clicks on the horizontal control)
  3. Enter your 4 chords on the 4 active grid columns.

Prevously the fastest way I know to do this would be:

  1. Hit shift + horizontal encoder twice (bit fiddly remembering that this equates to creating a 4-bar loop)
  2. Create chords via pressing, holding, and pressing the note end (this takes 2x the number of presses as above)

Total inputs to make a 4-chord tri-tone chord progression with both methods:

  • Restricted zoom: 27
  • Unrestricted zoom: 16

Notes

As a community feature?

I don't think this needs to be a community feature for the following two reasonsL

  1. It only eases an existing restriction.
  2. It does so in a way that shouldn't annoy users, thanks to the delay I introduced when crossing the previous max zoom level threshold. If you're zoomed in and want to return to the previous max zoom level, you can still hold the horizontal encoder down and quickly turn it to the left - it will catch at the prior max zoom for half a second.

What even is "max zoom" anymore?

This PR degrades the ability to understand what clip's getMaxZoom means. The clip's max zoom isn't actually the timeline's max zoom anymore.

Ideally I would have liked to have updated the actual behavior of Clip::getMaxZoom() in src/deluge/model/clip/clip.cpp, but that function is used in many more places than the timeline.

@github-actions

github-actions Bot commented May 19, 2024

Copy link
Copy Markdown
Contributor

Test Results

28 tests  ±0   28 ✅ ±0   0s ⏱️ ±0s
 4 suites ±0    0 💤 ±0 
 4 files   ±0    0 ❌ ±0 

Results for commit 5eab63c. ± Comparison against base commit 0ed09a2.

♻️ This comment has been updated with latest results.

@trappar trappar changed the title Add runtime option for unrestricting zoom out Add "Unrestricted Zoom" community feature May 19, 2024

@m-m-adams m-m-adams left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Small nit but lgtm. As mentioned on discord I'm good to merge as is (in community features) or to add a "catch" at the old max zoom level and just have the feature always on

Comment thread src/deluge/gui/views/timeline_view.cpp Outdated
@trappar trappar changed the title Add "Unrestricted Zoom" community feature Ease timeline zoom level restriction May 19, 2024
Comment thread src/deluge/gui/views/timeline_view.cpp Outdated
Comment thread src/definitions_cxx.hpp Outdated
Comment thread src/deluge/gui/views/timeline_view.cpp Outdated
Comment thread src/deluge/gui/views/timeline_view.cpp Outdated
@trappar trappar force-pushed the unrestricted-zoom branch 2 times, most recently from fd6a73a to a91dcf8 Compare May 19, 2024 21:05

@sapphire-arches sapphire-arches left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

2 minor nitpicks and this should get an entry in CHANGELOG.md, then lgtm

Comment thread src/deluge/gui/views/timeline_view.cpp Outdated
Comment thread src/deluge/gui/views/timeline_view.h Outdated
Comment thread src/deluge/gui/views/timeline_view.h Outdated
@trappar trappar requested a review from sapphire-arches May 19, 2024 22:51
@sapphire-arches sapphire-arches added this pull request to the merge queue May 20, 2024
Merged via the queue into SynthstromAudible:community with commit 39145d0 May 20, 2024
@trappar trappar deleted the unrestricted-zoom branch May 20, 2024 06:21
tastycode pushed a commit to tastycode/DelugeFirmware that referenced this pull request Jul 3, 2024
* Add runtime option for unrestricting zoom out

* Update documentation

* Remove community feature in favor of short delay when crossing clip length zoom level

* Implement changes based on PR feedback

* Refine variable naming

* Update changelog

* Update comments for doxygen
@YPares

YPares commented Jul 24, 2024

Copy link
Copy Markdown

This feature doesn't seem present in the 1.1 firmware. Is it gated behind a setting?

@trappar

trappar commented Jul 24, 2024

Copy link
Copy Markdown
Contributor Author

This feature doesn't seem present in the 1.1 firmware. Is it gated behind a setting?

No, this will be in 1.2. You can try nightly if you want to use it now.

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.

4 participants