No description
Four modules that build on the Layer 0 foundation: - primitive.js: base class with category system (generator/processor/ timing/converter), param schema validation, boundary enforcement (clamp/wrap/scaled), symbolic process() interface, state management for freeze, and applyBoundary() utility for delta control - clock.js: AudioContext lookahead scheduling (25ms interval, 100ms window) replacing setTimeout arpeggiator. Reads pattern descriptions for per-step swing (timeOffset) and ratchet (subdivisions). Emits seq.noteOn/noteOff/step/loopStart via event bus. - projection.js: composable transform chain with 5 transforms (VelocityCurve, GateThreshold, RangeMap, OctaveFolder, StutterMap) and 3 presets (expressive, percussive, fullRange). Pitch quantization deliberately excluded (handled by Interval Lock primitive). - step-viz.js: Canvas2D circular step visualizer with even angular spacing for any step count. Pitch→radius, velocity→node size, accent→color. 60fps-friendly with pre-allocated coordinate buffers. Tap interaction for step toggling. |
||
|---|---|---|
| .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.