No description
1. Pitch pipeline: IntervalLock stores midiNote/127, sequencer now converts back via pitch*127. Removed pitch RangeMap from projection presets (was double-mapping already-quantized values). 2. Clock step duration: changed from quarter-note grid (60/bpm) to 16th-note grid (60/bpm/4). 8 steps at 120 BPM now = 1 second. 3. Method name: drawWeights → randomiseWeights (matching WasmIML API). 4. Dirty-check: setSequenceInputs now skips re-evaluation when inputs haven't changed (epsilon 1e-5). Avoids 60fps chain evaluation. 5. SwingGroove: swingGrid param now functional — selects 8th note (period 2), 16th note (period 4), or triplet (period 3) swing grid. 6. IntervalLock base octave: starts from C3 (MIDI 48) instead of C0, so default output is in a playable range. |
||
|---|---|---|
| .beads | ||
| .vscode | ||
| data | ||
| modes | ||
| nisps-core | ||
| playground | ||
| src | ||
| 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.