Adds a secondary Synth mode (toggled via collapsible left side panel) where the NISPS ML engine's 20 outputs control curated C15 synthesizer parameters (oscillator PM, shapers, filters, reverb, echo, flanger, output mixer) through a WASM AudioWorklet bridge. Includes a chord progression arpeggiator with controls for tempo (BPM), octave range, octave offset, and 4 selectable progressions. The C15 engine runs in an AudioWorklet with lock-free SharedArrayBuffer ring buffer communication. New files: c15/ (WASM assets), js/synth/ (bridge, arpeggiator, param map), serve-coop.py (COOP/COEP headers for SharedArrayBuffer support). |
||
|---|---|---|
| .. | ||
| c15 | ||
| css | ||
| js | ||
| index.html | ||
| README.md | ||
| serve-coop.py | ||
| serve.sh | ||
NISPS Playground
Browser-based interactive demo of the NISPS ML engine.
Run locally
python3 -m http.server
# Open http://localhost:8000
Run the command from the playground/ directory.
What it does
- Maps 2D joystick input (X/Y) through an MLP to 20 visualization parameters.
- Renders a flow-field particle visualization on a Canvas2D surface.
- Supports two learning modes:
- Examples: add explicit input/output pairs and train.
- RL Feedback: give thumbs up/down while exploring outputs.
UI controls
- Expand / Collapse button on the canvas: makes the visual surface nearly full-screen and compresses lower controls into a minimal view.
- Presets: quick demo mappings (
Calm/Chaos,Rainbow,Vortex). - Help (
?) overlay: in-app usage guide. - Follow mode: double-click joystick in RL mode to toggle no-hold interaction.
- Keyboard in Follow mode (RL):
2= thumbs up,1= thumbs down. - Gamepad in RL:
RB= thumbs up,LB= thumbs down.
Files
index.html- page structure.css/style.css- layout and visual styling.js/app.js- app wiring and interaction logic.js/ui/- visualizer, joystick, controls, parameter display.js/nisps/- JavaScript MLP + IML core.