No description
Find a file
monkey-w1n5t0n ea588e79cd refactor(nisps): delete dead engine/mode mass
Phase 1 group 3 (L3, L9, L4, L5, L6, ST1).

- L3: nisps/modes/voice_space.hpp — entirely dead, no includes anywhere.
- L4: deleted SawOsc and SquareOsc. KEPT SineOsc — a verifier caught that the
  original reviewer's grep missed its live consumer (the firmware selftest);
  re-confirmed here before touching the file.
- L9: removed the no-op VoiceSpace enum/table/setter boilerplate from the five
  engines with no real voice spaces; kept it on PAFSynth, VerbFX and
  ChannelStrip, which have real ones. Every engine member was checked against
  nisps/wasm/bindings.cpp, firmware/ and tests/ for callers first.
- L5: ModeBase::input_dirty_ was write-only state — deleted the flag rather
  than making it gate inference, which would have been a behaviour change.
- L6: VerbFXEngine's delay_to_verb_ (computed 12x per block, never read),
  enable_reverb_, enable_delay_to_reverb_ and the unused set_enable_* setters.
- ST1: rewrote the four engine header comment blocks that described
  implementations which do not exist.

L7 (MEMLCeliumEngine's inert feedback path) is deliberately NOT done — tracing
git history showed feedbackGain went 0.1f (live) -> "0; //0.1f" (explicitly
muted, value preserved) -> dropped entirely in the port. That is a muted
feature, not dead weight, and deleting it would silently lose it. Left intact
pending an operator decision; see the phase report.

Gates: run-all-tests.sh ALL GREEN.
2026-07-21 12:48:50 +02:00
.github/workflows chore: delete retired-playground artefacts and root relics 2026-07-21 12:47:58 +02:00
.vscode memlnautmodes, channelstrip 2025-11-19 15:17:37 +00:00
assets/media docs: restructure design docs into docs/specs (adr/plans/recon), update path references 2026-07-13 23:15:46 +03:00
codegen feat(codegen): P5 — TS emission targets manifold/src/modes/generated/ 2026-07-18 12:28:16 +02:00
docs ci: restore verification — reachable submodule pin, codegen + WASM freshness gates 2026-07-21 11:57:32 +02:00
firmware refactor(nisps): delete dead core/ML mass; keep the legacy feedback modes 2026-07-21 12:48:27 +02:00
manifold ci: restore verification — reachable submodule pin, codegen + WASM freshness gates 2026-07-21 11:57:32 +02:00
nisps refactor(nisps): delete dead engine/mode mass 2026-07-21 12:48:50 +02:00
schemas feat(slp-workshop): new MEMLCelium-based mode + port Jolt & OU-noise RL learning 2026-06-28 22:15:36 +02:00
scripts fix(build): resolve a bare EMCC command name in build-wasm.sh 2026-07-21 12:14:21 +02:00
src chore(submodule): re-pin memllib gitlink to the real working commit b37fc53 2026-07-13 23:33:53 +02:00
tests/cpp refactor(nisps): delete dead core/ML mass; keep the legacy feedback modes 2026-07-21 12:48:27 +02:00
vcv feat(vcv): reunify module onto core MLP — thin iml.hpp adapter (P6) 2026-07-18 13:01:28 +02:00
.envrc chore: add .envrc + playground package-lock 2026-06-28 04:14:30 +02:00
.gitignore feat(manifold)!: P1 — retire playground/, manifold is the sole browser app 2026-07-13 23:27:56 +02:00
.gitmodules ci: restore verification — reachable submodule pin, codegen + WASM freshness gates 2026-07-21 11:57:32 +02:00
AGENTS.md docs+ci: P5 doc sync; codegen golden wired into run-all-tests stage 5 2026-07-18 12:45:45 +02:00
ALIGNMENT.md ci: restore verification — reachable submodule pin, codegen + WASM freshness gates 2026-07-21 11:57:32 +02:00
CLAUDE.md chore(agents): converge project instructions 2026-07-13 22:58:26 +02:00
LICENSE Initial commit 2025-04-10 14:17:18 +01:00
MAP.md ci: restore verification — reachable submodule pin, codegen + WASM freshness gates 2026-07-21 11:57:32 +02:00
README.md feat(manifold)!: P1 — retire playground/, manifold is the sole browser app 2026-07-13 23:27:56 +02:00
synth-midi-cc.json feat(midi-devices): canonical external-synth CC templates + dual codegen 2026-06-28 20:03:17 +02:00

Neural Interactive Shaping of Parameter Spaces

https://musicallyembodiedml.github.io/memlnaut/approaches/nisps

Firmware

The hardware firmware targets the MEMLNaut RP2350 build and uses repo-local helper scripts for the known-good build configuration:

git submodule update --init --recursive

scripts/build-firmware.sh
scripts/flash-firmware.sh
scripts/build-and-flash-firmware.sh

Notes:

  • The scripts build for rp2040:rp2040:solderparty_rp2350_stamp_xl with Optimize3.
  • The build forces C++20 because the firmware uses std::span and concepts.
  • build-firmware.sh accepts an optional variant name such as MEMLCelium or BreakOr. Matching remains case-insensitive, so memlcelium still works. If you omit it in an interactive shell, the script parses MEMLNaut-NISPS.ino, prompts for a variant, and rewrites the active MEMLNAUT_MODE_TYPE before building.
  • flash-firmware.sh accepts an optional mountpoint argument, or auto-detects common UF2 bootloader mounts such as /run/media/$USER/RP2350 and /run/media/$USER/RPI-RP2.

Manifold (browser app)

Try NISPS in your browser — no hardware required. Manifold is the React front-end running the same C++ engines + ML as the firmware, compiled to WASM:

cd manifold
bun install
bun run dev

Staging deployment: https://meml.lnfinitemonkeys.org/next/

Train a neural network to map input gestures to synth parameters through interactive machine learning: place examples, or use verdict-based feedback (explore-and-place, geometric dislike).

(The former SolidJS playground was retired in July 2026 — archived on branch archive/playground-solidjs, tag playground-solidjs-final.)