No description
Two fixes for Modular mode: 1. faust-worklet-processor.js: explicitly attach FaustWorkletProcessor to globalThis. Class declarations at the top of a classic script are lexically scoped to that script's evaluation context and do not propagate across separate addModule() calls, so the base class was invisible to subclass processors when they loaded in AudioWorklet- GlobalScope. Symptom: "FaustWorkletProcessor is not defined" at the extends clause of modular-subtractive-processor.js. 2. modular-ui.js + a-app.js: wire live matrix cell updates. Phase C wired matrix cells for writes (click cycles, precise editor) but not for reads — the MLP-driven values never propagated to the DOM. modular-ui now exposes updateLive(outputs), called from routeOutputs on every inference tick. Throttled to ~20 fps internally to avoid DOM thrashing. Only visible sources (within adsrCount/lfoCount) are updated; muted slots stay dark. |
||
|---|---|---|
| .beads | ||
| .claude/worktrees/agent-ae87fe47/playground/js/shapeseq | ||
| .github/workflows | ||
| .vscode | ||
| data | ||
| modes | ||
| nisps-core | ||
| playground | ||
| src | ||
| tests/e2e | ||
| vcv | ||
| voicespaces | ||
| .gitignore | ||
| .gitmodules | ||
| AGENTS.md | ||
| ChannelStripAudioApp.hpp | ||
| CLAUDE.md | ||
| IMLInterface.hpp | ||
| LICENSE | ||
| MEMLNaut-NISPS.ino | ||
| NISPS_CORE_EXTRACTION_PLAN.md | ||
| NISPS_CORE_TASKS.md | ||
| package-lock.json | ||
| package.json | ||
| PAFSynthAudioApp.hpp | ||
| playwright.config.js | ||
| README.md | ||
| ThruAudioApp.hpp | ||
| XiasriAnalysis.cpp | ||
| XiasriAnalysis.hpp | ||
| XIASRIAudioApp.hpp | ||
Neural Interactive Shaping of Parameter Spaces
https://musicallyembodiedml.github.io/memlnaut/approaches/nisps
Web Playground
Try NISPS in your browser — no hardware required:
cd playground
python3 -m http.server
# Open http://localhost:8000
Train a neural network to map joystick positions to generative visuals through interactive machine learning. Two learning modes: direct example mapping and reinforcement learning with thumbs up/down feedback.
The playground UI includes an Expand toggle on the visual surface so you can make the canvas nearly full-screen while compressing parameter/control panels into a minimal strip beneath it.