The periodic audio glitches were caused by main thread starvation:
~840 events/sec during playback starved the audio buffer.
Changes:
- Master clock 480→120 Hz (still 6x headroom for 300 BPM sixteenths)
- Connection cache: replace O(n) reduce hash with dirty flag (zero work
on cache hit, flag set only when connections actually change)
- Tone.js lookAhead: 100ms→50ms for tighter scheduling
- ModuleNode LFO visualization RAF: 60fps→15fps (every 4th frame)
- ScopeDisplay RAF: 60fps→30fps (every 2nd frame)
Net effect: ~840 events/sec → ~200 events/sec during playback.
Audio processing gets 4x more main thread headroom.
Co-Authored-By: Claude Opus 4.6 (1M context) <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>