No description
primitives.js (505 lines): All 8 sequencing primitives extending Primitive base class: - EuclideanRhythm: Bjorklund-distributed trigger patterns - ProbabilityGate: PRNG-based trigger filtering + accent assignment - PitchWalker: stateful constrained random walk with gravity - Ratchet: probabilistic step subdivision (1-4x) - SwingGroove: alternating-step timing offsets (max triplet feel) - DensityMorph: trigger placement with clustering control - IntervalLock: 11-scale pitch quantizer (chromatic→diminished) - VelocityShaper: 5 curve types with depth/phase control Includes PRIMITIVE_REGISTRY for chain builder UI. chain.js (319 lines): Sequential pipeline chain evaluator. Buckets primitives by category (generators→processors→converters→ timing), forks deterministic PRNG per primitive, merges multiple generators via additive (OR) or multiplicative (AND) mode (configurable in real time). Flat param distribution by chain position. Full state serialization for freeze support. |
||
|---|---|---|
| .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.