fix: LFO→cutoff modulation, visual knob feedback, persistent hints
- Fix LFO→Filter cutoff: add scaling Gain nodes so LFO (-1..1) maps to meaningful Hz modulation (±cutoff value). Same fix for LFO→Osc freq. Mod scale updates dynamically when user changes the base param value. - Visual modulation indicator: knobs receiving LFO/modulation show a pulsing dashed ring animation (spin + pulse) around the knob arc - Persist hint usage per level: using a hint permanently caps that level at 2 stars — survives reload/restart. No more cheating by restarting! - Hint state stored in separate localStorage key (synthquest-hints) - Admin reset also clears hint history Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -168,6 +168,27 @@ html, body, #root {
|
||||
.knob-fill { fill: none; stroke-width: 3; stroke-linecap: round; }
|
||||
.knob-dot { fill: var(--text); }
|
||||
|
||||
/* Modulation indicator: pulsing ring around modulated knobs */
|
||||
.knob-mod-ring {
|
||||
fill: none;
|
||||
stroke-width: 1.5;
|
||||
stroke-dasharray: 3 2;
|
||||
opacity: 0.7;
|
||||
animation: knob-mod-pulse 1.2s ease-in-out infinite alternate, knob-mod-spin 4s linear infinite;
|
||||
}
|
||||
@keyframes knob-mod-pulse {
|
||||
from { opacity: 0.3; stroke-width: 1; }
|
||||
to { opacity: 0.9; stroke-width: 2; }
|
||||
}
|
||||
@keyframes knob-mod-spin {
|
||||
from { stroke-dashoffset: 0; }
|
||||
to { stroke-dashoffset: 30; }
|
||||
}
|
||||
.knob-modulated .param-label,
|
||||
.knob-container.knob-modulated + .param-value {
|
||||
color: var(--accent2);
|
||||
}
|
||||
|
||||
.knob-editing { display: flex; align-items: center; justify-content: center; }
|
||||
.knob-input {
|
||||
width: 48px; height: 22px; padding: 0 4px;
|
||||
|
||||
Reference in New Issue
Block a user