memlnaut-nisps/playground/js
monkey-w1n5t0n 01c1346dfd fix(modular): restore matrix in paramMeta; amp floor via positive-only mod_amp
b290144 made matrix cells opt-in to prevent joystick-silences-voice,
but that broke modular-ui.updateLive(): the matrix DOM stopped
reflecting live MLP outputs because matrixIndexCache was empty when
buildMatrixIndex() walked paramMeta. This was the same regression
6072fe8 had previously fixed.

Fix it structurally at the DSP layer instead: amp_val now computes
as `clamp(base_amp + max(0, mod_amp)) * level * vel_gain`, so matrix
d08_amp cells can only boost the amp floor — never cut it. base_amp
defaults to 1.0 (always audible), and presets that want classic
envelope-gated voices (slow pad, plucky bass, crystal, morphing
drone) drop base_amp to 0 and layer a positive ADSR→amp route on top.

With the DSP guard in place, all 480 matrix cells can safely live
in paramMeta again, and updateLive() gets its live visual feedback
back. Revert the opt-in gate in _rebuildParamMeta and the 32-param
test counts, and add a regression test asserting that every matrix
destination has 48 cells in paramMeta — that's what updateLive needs.
2026-04-11 09:39:58 +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; amp floor via positive-only mod_amp 2026-04-11 09:39:58 +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; amp floor via positive-only mod_amp 2026-04-11 09:39:58 +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