Search by level name, subtitle, ID, or world name. Shows filtered
results as a flat grid with world.level numbering and world color.
Escape key clears search, clear button resets and refocuses input.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Flex children with default flex-shrink:1 were compressing to fit,
hiding the Mision panel content. Force flex-shrink:0 on all sidebar
children so they keep their natural size and the sidebar scrolls.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add adminMode toggle in AdminPanel (green "Admin ON/OFF" button)
- Pass adminMode through GameApp → PuzzleView
- Show purple "🛠 Resolver" button in puzzle toolbar when admin is active
- Auto-solve gives 3 stars instantly and shows completion overlay
- Lets admin skip through all 96 levels for rapid testing
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add min-height: 0 to .gm-puzzle-content and .gm-puzzle-sidebar so
flexbox allows shrinking below content size, enabling overflow-y scroll.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add procedural UI sound effects (connect/disconnect, engine start/stop,
level complete/fail, star earned, hint, navigation) via Tone.js
- Live LFO modulation visualization: knobs animate in real-time showing
modulated value, ghost dot shows base value, number glows cyan
- Fix wire recalculation on zoom/pan/level re-entry (post-layout refresh)
- Fix retry button to keep current patch instead of reloading level
- Fix default param detection: newly added modules now populate all
default params so level checkers work without manual param changes
- Add worlds 7-12: Secuencias y Ritmos, Texturas de Ruido, Síntesis
Sustractiva, Espacio y Stereo, Técnicas Avanzadas, Gran Final
(48 new levels, 144 new possible stars, 288 total stars)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- 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>
- World 2 (Filtros): 8 levels teaching filters, resonance, LFO modulation, acid bass
- World 3 (Envelopes): 8 levels teaching VCA, ADSR, pluck, tremolo, full synth lead
- Star-based world unlock system (12 stars for W2, 24 for W3)
- Level patch persistence: auto-saves player patches, restores on revisit
- Google Maps-style zoom controls (+/−/reset) in both puzzle and sandbox views
- Multi-world navigation in GameApp and WorldMap
- Target audio now supports filter chain for World 2 levels
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Double-clicking a knob opens an inline text input for precise value
entry. Enter confirms, Escape cancels, blur auto-commits. Value is
clamped to the knob's min/max range. Styled to match the synth theme.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Replace elementFromPoint with bounding rect distance search for port
detection. The SVG wire overlay was intercepting pointer events,
requiring users to wait for animations before connecting. Now finds
the closest port-dot within 18px radius regardless of z-index.
- Add hint system: concept text hidden behind "Mostrar Pista" button.
Using the hint permanently caps the level at 2 stars max. Reiniciar
resets the penalty. Visual feedback in objectives and completion screen.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Gamified synth learning inspired by Turing Complete. Progressive puzzle
system teaches oscillators, waveforms, frequency, and mixing through
hands-on module patching. Includes world map, level progression with
3-star rating, target audio playback, solution validation, and
localStorage persistence. Sandbox mode still accessible via button.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The Part events were pre-converted to seconds via Tone.Time().toSeconds(),
making the BPM setting ineffective. Now uses bars:quarters:sixteenths
notation so the Transport BPM actually controls playback speed.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Fix mouse coordinate scaling in piano roll when canvas is zoomed
(getBoundingClientRect returns visual size, now dividing by scale ratio)
- Replace Megaman melody with Super Mario Bros overworld theme
- Tune chiptune preset: faster BPM (200), snappier envelopes, brighter
filter, less delay/distortion for cleaner NES sound
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Fix wires not recalculating positions on zoom until panning
- Add MIDI file import button to Piano Roll (parses .mid files)
- Allow envelope release to go to 0 (was clamped at 0.001)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add step sequencer (16-step with note/gate editing) and piano roll
(canvas-based MIDI editor with draw/erase tools). Includes a Megaman-style
melody in C minor. Chiptune preset now uses piano roll instead of keyboard.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Replace fragile DOM position matching in finishConnection with
data-module-id/data-port-name/data-port-direction attributes
- Add nearby port detection (8px radius) for easier connections
- Wire glow effects with drop-shadow filters
- Port dots z-index above wires for reliable click targeting
- Chiptune demo preset: 2x square osc, envelopes, VCAs, mixer,
filter, delay, distortion, scope — full 8-bit signal chain
- "Chiptune Demo" toolbar button to load the example
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>