Skip to content

v0.6.2: restore toggle animation + fix flicker, animate window scale, tidy tooltips#20

Merged
skyRolly merged 1 commit into
mainfrom
claude/beautiful-sagan-JAUFI
Jun 15, 2026
Merged

v0.6.2: restore toggle animation + fix flicker, animate window scale, tidy tooltips#20
skyRolly merged 1 commit into
mainfrom
claude/beautiful-sagan-JAUFI

Conversation

@skyRolly

Copy link
Copy Markdown
Owner

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:

  • Default reverted to a neutral 0 (the 0.6.0 behaviour whose motion you liked).
  • The eased properties (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.
  • A toggle that loads in the ON state now eases correctly from its real position on the first click instead of snapping.

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 tidyTip strip on the three setup helpers covers most; the direct setTooltip calls 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

… 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 skyRolly marked this pull request as ready for review June 15, 2026 14:16
@skyRolly skyRolly merged commit de26cc6 into main Jun 15, 2026
4 checks passed
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
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