memlnaut-nisps/playground/js/synth
monkey-w1n5t0n 4507db00c8 fix(modular): matrix cells opt-in + per-group drawer for non-C15 engines
Two fixes driven by user reports:

1. MLP wasn't affecting the sound. Matrix cells are now opt-in to the
   MLP output vector rather than always-driven. Default modular paramMeta
   is 32 mod-source params (4 ADSR * A/D/S/R + 8 LFO * rate/morph), down
   from 512. The default patch's MM_Matrix/s00_d08_amp=1.0 now survives
   the first inference tick because it's not in paramMeta — ADSR1 stays
   routed to amp and the MLP drives envelope shape per joystick position.

   Matrix cells still clickable as direct-DSP knobs in modular-ui: setCell
   now routes through engine._setRawByLabel(). A later UI pass can add a
   "expose to MLP" menu entry that calls engine.setExposeMatrixCell(s,d).

   Also removes the earlier exampleCount-based routing gate; no longer
   needed now that the default patch is stable.

2. Per-group curve drawer (hover over section labels on the synth
   visualizer) is now available for all synth engines, not just C15.
   Refactored showGroupDrawer behind a getSectionView(sectionIndex)
   helper that returns a uniform view for either C15 (via SYNTH_SECTIONS
   + groupOverrides) or non-C15 (via nonC15Sections + nonC15GroupCurves
   + engineParamOverrides).

   Group-level curve persists across sub-engine swaps by group name, so
   e.g. tuning the "ADSR 1" curve survives a switch between subtractive
   and fm without being reset.

ModularEngine: adds setExposeMatrixCell(s,d,exposed) +
getExposedMatrixCells() + clears exposed cells on sub-engine swap.
2026-04-11 08:31:19 +02:00
..
additive-engine.js feat(playground): Additive + FM engine integration, live engine switching (meml-mdy, meml-355) 2026-04-03 17:56:35 +01:00
additive-presets.js feat(playground): per-engine param presets for additive + FM (meml-ax4) 2026-04-03 18:26:12 +01:00
arpeggiator-worker.js feat(playground): engine abstraction layer + C15 adapter (meml-byk) 2026-04-03 17:30:28 +01:00
arpeggiator.js feat(playground): engine abstraction layer + C15 adapter (meml-byk) 2026-04-03 17:30:28 +01:00
c15-adapter.js feat(playground): EOC chain wired into audio graph, bypass mode manual sliders (meml-xp3) 2026-04-03 17:49:14 +01:00
c15-bridge.js feat(playground): EOC chain wired into audio graph, bypass mode manual sliders (meml-xp3) 2026-04-03 17:49:14 +01:00
engine-interface.js feat(playground): Faust WASM build pipeline + param auto-discovery (meml-5s3) 2026-04-03 17:30:23 +01:00
faust-engine-base.js fix(playground): FaustEngineBase creates AudioContext if none passed; add stop()/start() methods 2026-04-03 19:08:52 +01:00
faust-param-meta.js feat(tests): add 24 Playwright e2e tests for engine switching + fix hidden param filtering 2026-04-03 19:28:23 +01:00
fm-engine.js feat(playground): Additive + FM engine integration, live engine switching (meml-mdy, meml-355) 2026-04-03 17:56:35 +01:00
fm-presets.js feat(playground): per-engine param presets for additive + FM (meml-ax4) 2026-04-03 18:26:12 +01:00
midi-input.js fix(playground): decouple MIDIInput from C15Bridge — use SynthEngine interface (meml-se4) 2026-04-03 18:20:29 +01:00
modular-engine.js fix(modular): matrix cells opt-in + per-group drawer for non-C15 engines 2026-04-11 08:31:19 +02:00
modular-presets.js feat(playground): add Modular audio mode with shared mod pool 2026-04-11 07:34:41 +02:00
osc-output.js feat(playground): add OSC output bridge for external synth control 2026-03-25 11:55:58 +02:00
param-map.js feat(playground): add synth parameter tooltips, group drawer with per-param curve/mute controls 2026-03-22 21:57:21 +02:00
presets.js feat(playground): add tiered synth parameter preset system 2026-03-23 00:50:56 +02:00