memlnaut-nisps/playground/js
monkey-w1n5t0n 6072fe80ac fix(modular): restore matrix in paramMeta + bypass MLP when untrained
Previous fix pulled matrix cells out of paramMeta to avoid the
default-patch-clobbering silence issue. Side effect: paramCount dropped
from 512 to 32, the heatmap strip and synth visualizer shrank
dramatically, and moving the joystick no longer animated matrix cells
(the user's two most recent complaints).

Better approach: put matrix cells back in paramMeta (512 outputs), but
when iml.exampleCount === 0 substitute the normalised default-patch
vector for the raw MLP output in routeOutputs. The engine sees the
default patch exactly, audio works, and the user still sees 512 cells
in the heatmap / matrix grid. As soon as they capture their first
training example the MLP resumes driving everything normally.

ModularEngine.getDefaultNormalizedOutputs() returns the normalised
default value per paramMeta entry, reading from _lastRawByLabel first
(so user edits via click or _setRawByLabel propagate) and falling back
to the walk-entry init field.

modular-ui setCell now prefers engine.setParam over _setRawByLabel when
the cell is in paramMeta, so writes flow through the normal tracking
path and are visible to getDefaultNormalizedOutputs on the next tick.

Verified in headless Chromium: switching to modular, cold start, reading
engine._lastRawByLabel after routeOutputs ticks shows ampRaw=1,
attackRaw=0.01, enableRaw=1 — the default patch is preserved. paramCount
is 512 again. 0 console errors.
2026-04-11 08:50:59 +02:00
..
audio feat(audio-canvas): per-file loop count, beat-synced lengths, param range groups, pitch lock 2026-04-03 20:36:24 +01:00
eoc Merge EOC Delay + Saturation + Master Bus modules (meml-2sl, meml-2zm) 2026-04-03 18:22:00 +01:00
midi feat(playground): engine-aware heatmap + MIDI CC storage on engine switch (meml-qaa) 2026-04-03 17:55:39 +01:00
nisps feat(playground/nisps): warm-start weight transfer on MLP resize (meml-8jc) 2026-04-03 17:27:54 +01:00
shapeseq test(shapeseq): add test runner + smoke tests 2026-04-07 00:03:29 +01:00
synth fix(modular): restore matrix in paramMeta + bypass MLP when untrained 2026-04-11 08:50:59 +02:00
ui fix(modular): restore matrix in paramMeta + bypass MLP when untrained 2026-04-11 08:50:59 +02:00
a-app.js fix(modular): restore matrix in paramMeta + bypass MLP when untrained 2026-04-11 08:50:59 +02:00
app.js fix(playground): prevent 1/2 keys being swallowed by focused sliders 2026-03-22 11:52:30 +02:00
b-app.js feat(playground): expand gamepad support with face buttons and Steam Deck fixes 2026-03-22 22:40:15 +02:00
c-app.js feat(playground): expand gamepad support with face buttons and Steam Deck fixes 2026-03-22 22:40:15 +02:00
event-bus.js refactor(event-bus): extract to shared module 2026-04-06 23:18:47 +01:00