v0.6.4: state-set undo/AB/copy, Mono Maker Mix fix, slider/anim polish, tooltip revert#22
Merged
Merged
Conversation
…h, tooltip revert 6. Preset/Undo/Redo/A-B now carry a full STATE SET (params + preset name + dirty baseline), not just parameters, so the displayed name and dirty-star always match the restored sound. PresetManager gains baseline()/setMeta(); the processor stores StateSet in every undo entry and A/B slot, and undo/redo, A/B switch and Copy restore the metadata alongside the params. Verified against the six feedback cases (A-E). State (incl. per-slot name/baseline) is serialised with backward-compat for older sessions. 5. Mono Maker: the driven low band no longer bypasses Mix. The un-driven mono low is kept as the dry low and dry/wet-blended with the SAME per-sample Mix as the highs, so Mix=0 yields the un-driven mono low (no Drive roar) and Mix=1 the driven one; the low's mono-ing still applies at all Mix values. 1. UI Animations toggle adopts its new state immediately on click, so turning it ON plays the switch's own slide and turning it OFF snaps -- the user feels the difference on the switch itself. 2. Slider thumb body fill now brightens in two distinct levels (hover vs press), like the knob face. 3. Knob/slider position only eases during a short window opened by a preset / A-B / undo / algorithm change; scroll-wheel and host automation edits snap so they never lag or mislead. 4. Reverted the tooltip fade-out (it could leave tooltips not showing); back to the plain instant tooltip window. 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.3 feedback — all 6 items.
6. Preset / Undo-Redo / A-B carry a full “state set” (the headline fix).
Root cause was exactly as the feedback diagnosed: parameter data and metadata (preset name + dirty-star) were decoupled. Now every undo entry and every A/B slot stores a
StateSet { params, presetName, baselineSig }, anddirty = (currentSound ≠ baseline).PresetManagergainsbaseline()/setMeta(); undo, redo, A/B switch and Copy all restore the metadata together with the params. Traced against the six cases:Per-slot name/baseline and the live baseline are serialised into the session state (with backward-compat for pre-0.6.4 sessions), so the dirty-star survives reload.
5. Mono Maker / Mix signal-chain fix. The driven low band used to bypass Mix, so with Mix=0 + high Drive the lows roared through. The un-driven mono low is now kept as the dry low and dry/wet-blended with the same per-sample Mix as the highs: Mix=0 → un-driven mono low (no Drive), Mix=1 → driven mono low. The low band’s mono-ing itself still applies at every Mix value. DSP self-test for Mono Maker still passes.
1. UI Animations toggle. It now adopts its new state immediately on click instead of on the next 24 Hz tick, so turning it ON plays the switch’s own slide and OFF snaps — the user feels the on/off difference on the switch itself.
2. Slider thumb body. The centre fill (not the cyan/white edge) now brightens in two distinct levels — a little on hover, more on press — matching the knob face.
3. Scroll / automation no longer eases. Knob and slider position only eases during a short window opened by a preset / A-B / undo / algorithm change; a scroll-wheel notch or host automation edit snaps instantly, so it never lags or misleads.
4. Tooltip fade reverted. The fade-out could leave tooltips not displaying at all, so it’s removed — back to the plain instant tooltip window.
Gates: 14/14 DSP self-tests · no new compiler warnings · pluginval strictness 10 PASSED.
https://claude.ai/code/session_01Y38PtwPxh2geBLta6yuUwv
Generated by Claude Code