v0.6.2: restore toggle animation + fix flicker, animate window scale, tidy tooltips#20
Merged
Merged
Conversation
… tidy tooltips 1. The switch/toggle (and all hover) animations were silently dead in 0.6.1: the micro-anim driver defaulted each eased property to its TARGET, so the first transition started already-arrived and never played. Default restored to a neutral 0, and the properties are now SEEDED at registration so they always exist -- the LookAndFeel reads a real eased value instead of ever swapping to the binary state, which (together with the geometric hover hit-test) is what made a click occasionally flicker / jump from last frame to first. 2. Window-scale changes now ease the transform over ~170 ms (both axes at once) instead of a single jump, so the window grows/shrinks smoothly and the host's two-step width-then-height resize no longer reads as an L-shape flash. Off when UI Animations is disabled (snaps), and snaps at construction. 3. Removed trailing periods from every tooltip (central tidyTip strip on the setup helpers + the direct setTooltip calls); the few two-sentence tooltips were rephrased to a single dash-joined clause so no mid-string period remains. 4. Hover/press highlight transitions eased a touch more deliberately (75 ms in / 150 ms out / 45 ms press) so the non-linear ramp clearly reads as an animation; the liked toggle-slide timing (55 ms) is unchanged. https://claude.ai/code/session_01Y38PtwPxh2geBLta6yuUwv
skyRolly
pushed a commit
that referenced
this pull request
Jun 17, 2026
…, layout restructure DSP - Crossover drag no longer pitch-shifts: per-sample octaves/sec cutoff slew on every split, the same cap Mono Maker uses (#1). - A/B "weird sound": at the silent duck bottom a forced swap now resets EVERY stateful node (Haas/Velvet/Chorus delay lines, all oversamplers, band + mono crossovers), so a same-algorithm A/B with different delay/rate/Drive can't replay old buffer contents as the duck lifts (#22). Layout (#2/#3) - The scope/meter block returns to its previous size: Advanced now GROWS the window downward by a full-width Multiband bar instead of squeezing the scope. - Phase + balance meters hug the scope with an equal gap (cluster centred), so the scope-to-phase and scope-to-balance gaps always match, both modes. Multiband module - Renamed everywhere to Multiband; default ON, greys out when disabled (#20). - Variable bands stay; new interaction model: width drag only near the width line (#15), add hint over the rest of a band (#14), click-drag adds a split AND positions it in one gesture (#16). - Split delete x shows to the right of a hovered split (#6); reset clamps a split between its neighbours so it can't jump across one (#18). - Double-click a split's number to type a frequency (7.7k / 7.7 / 7700 / 0.5, bare <= 20 = kHz) (#5). - Scroll latch holds its target until the pointer really moves (3 px) (#4); band width scroll is 1 %/notch (#17). - Smoother analyser: Catmull-Rom interpolation kills the low-end stair-stepping (#11); the noise floor is sunk below the frame so silence shows no green line (#10). - Visual: split gets the same feathered glow as the width line (#7), an integrated rounded cap instead of a floating dot (#9), its bottom connects to the frame at rest and breaks only on hover (#12); the add "+" hugs the top edge and is larger (#13); a band-pass crossover hint while dragging a split (#19); shorter tooltip (#8). Knobs/sliders (#21) - A reset (double-click / Option-click) and a typed value now play the eased position sweep when Animations are on; a drag, the scroll wheel and host automation still snap. https://claude.ai/code/session_01Y38PtwPxh2geBLta6yuUwv
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Anamorph 0.6.1 feedback — all 4 items.
1. Toggle/switch animation was completely gone — restored, plus the click flicker fixed.
Root cause: in 0.6.1 the micro-anim driver defaulted each eased property to its target (
getWithDefault(key, target)), so the very first transition started already-arrived (curr == target) and never played or persisted — every switch snapped. Fixes:0(the 0.6.0 behaviour whose motion you liked).onA/hovA/actA) are now seeded at registration, so they always exist. The LookAndFeel therefore always reads a real eased value instead of occasionally falling back to the binary state — that fallback/property swap, combined with the old enter/exit hover events, was the “jump from last frame back to first frame” flicker. With seeding + the geometric hover hit-test (kept from 0.6.1) + 0–1 clamping, an in-progress animation always continues from where it is.2. Window-scale flicker — animated, and hunted past the host.
Confirmed the two-step is host-driven (JUCE issues a single
resizeView, but some hosts apply width then height). The non-host lever I have is to stop presenting it as one jump: the transform now eases over ~170 ms in both axes at once, so the window grows/shrinks smoothly and the host’s staged resize blends into the motion instead of flashing an L-shape. Editor stays opaque with a prompt GL repaint each frame. Snaps instantly when UI Animations is off, and at construction.3. Trailing periods removed from every tooltip.
A central
tidyTipstrip on the three setup helpers covers most; the directsetTooltipcalls are wrapped too; the few two-sentence tooltips (Drive, Amount, Width, Oversampling, Window Size) were rephrased into a single dash-joined clause so no mid-string period remains either.4. Hover/press highlights eased more deliberately.
Hover in 75 ms / out 150 ms, press 45 ms — slow enough that the non-linear ease-out clearly reads as an animation rather than a snap, across knobs, sliders, toggles, combos, buttons and A/B. The liked toggle-slide timing (55 ms) is unchanged.
Gates: 14/14 DSP self-tests · no new compiler warnings · pluginval strictness 10 PASSED.
Note on #2: if a particular host still stutters on the per-frame resize, turning off UI Animations falls back to an instant snap — let me know and I can switch the default the other way.
https://claude.ai/code/session_01Y38PtwPxh2geBLta6yuUwv
Generated by Claude Code