memlnaut-nisps/nisps
monkey-w1n5t0n c986377b4c feat(firmware): reposition gesture — relocate an existing example to a new input
Add a "grab → move → drop" gesture that moves an existing positive
example's output to a new input position, preserving the output. This is
the new core's home for upstream InterfaceRL's drag-store/reposition-commit,
distinct from Explore→Place (which places newly-auditioned scratchpad sounds).

- nisps/ml/feedback.hpp: begin_reposition()/commit_reposition()/repositioning().
  Reuses the Placing state (static_output holds the carried vector) but a
  reposition_ flag makes commit AND the mode-switch teardown SKIP the weight
  restore — the real net is never set aside here, so restoring snapshot_ would
  clobber the live trained net. Guards cancel_place + abort_explore_place.
- firmware glue: state-gate Toggle B. Exploring → reroll/nudge (unchanged);
  Idle → MomB1 grab, MomB2 drop (commit + add_example + train). The 4D variant
  has no joystick button, so the gesture lives on the momentary toggle. Also
  fix a stale top-of-file control-map comment that contradicted the bindings.
- tests: 4 reposition cases (hold without snapshot; commit stores carried
  output with no restore; mode-switch aborts without clobber; begin-only-Idle).
- MAP.md: document the full ExploreAndPlace lifecycle + reposition wiring.

Audio-hold (carrying the sound audibly during the move) remains the existing
unwired static_output() TODO and affects Explore→Place identically.
Firmware compile unverified (no arduino-cli); host tests + lint pass.
2026-06-28 23:45:27 +02:00
..
core feat(slp-workshop): new MEMLCelium-based mode + port Jolt & OU-noise RL learning 2026-06-28 22:15:36 +02:00
dsp feat(nisps/dsp): lean DSP primitives ported from maximilian (meml-1v6) 2026-04-29 16:08:49 +03:00
engines fix: NoOpEngine engine_id → 'thru' to match sound_analysis_midi schema 2026-04-29 16:12:12 +03:00
midi/generated feat(midi-devices): canonical external-synth CC templates + dual codegen 2026-06-28 20:03:17 +02:00
ml feat(firmware): reposition gesture — relocate an existing example to a new input 2026-06-28 23:45:27 +02:00
modes Merge remote-tracking branch 'origin/main' into workshop/synth-fw-audit 2026-06-28 22:29:41 +02:00
wasm feat(manifold): MIDI + game controller inputs; widen ML net to N-D 2026-06-28 21:05:48 +02:00
.gitignore feat: nisps/core foundation — perf, types, concepts, buffers, rng, math 2026-04-29 15:21:52 +03:00
CMakeLists.txt feat(slp-workshop): new MEMLCelium-based mode + port Jolt & OU-noise RL learning 2026-06-28 22:15:36 +02:00