No description
Phase 3 — RL feedback system: - Background worker thread with job queue, condition variable, atomic flags - Thumbs up/down buttons + CV trigger inputs (Schmitt triggers) - Learn enable toggle + gate input (OR logic) - Noise level tracking (decay on +, increase on −, spread-dependent cap) - Post-change output crossfade (configurable slew, default 10ms) - Rapid feedback queueing with coalescing (max depth 1) - Graceful thread shutdown (shouldStop flag, joins in destructor) Phase 4 — Visual feedback: - NanoVG bar graph display (12 hue-coded bars, noise level, TRAIN indicator) - 12 output level LEDs, LEARN LED (green), training LED (yellow) Phase 5 — Configurability: - RATE knob: exponential decimation from block-rate to audio-rate - Per-output range: unipolar (0-10V) / bipolar (±5V) via context menu - Per-input range: unipolar / bipolar via context menu - 12 attenuverter trimpots (-1 to +1) - SPREAD CV input for knob modulation - CLEAR button with 1-second long-press guard - Output slew configurable via context menu (0-100ms) - State serialization (ranges, noise, slew) via dataToJson/dataFromJson Note: double-buffering uses direct IML access (not shadow copy) pending IML weight get/set API (filed as meml-ft7). |
||
|---|---|---|
| .beads | ||
| .github/workflows | ||
| .vscode | ||
| data | ||
| modes | ||
| nisps-core | ||
| playground | ||
| src | ||
| 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 | ||
| PAFSynthAudioApp.hpp | ||
| 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.