beads: receive MEMLNaut-NISPS issues
This commit is contained in:
parent
20cd059d91
commit
0e0f71d28e
1 changed files with 11 additions and 0 deletions
11
.beads/issues.jsonl
Normal file
11
.beads/issues.jsonl
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
{"id": "src-ucr", "title": "Study nisps-core MLP implementation (Node \u2192 Layer \u2192 MLP)", "description": "Deep-read the core ML engine in nisps-core/include/nisps/. Start from utils.hpp (activation functions, math), then node.hpp (single neuron forward/backward), layer.hpp (vector of nodes, backprop), mlp.hpp + mlp_impl.hpp (full network: Train, TrainBatch, MoveWeights, SmoothUpdateWeights, policy gradient, Xavier init, NaN recovery). Document: weight initialization strategies, forward pass data flow, backprop implementation, gradient accumulation, loss functions (loss.hpp), and the CheckAndFixWeights safety net. Note differences between supervised and RL training paths.", "status": "open", "priority": 1, "issue_type": "task", "created_by": "w1n5t0n", "owner": "w1n5t0n@lnfinitemonkeys.org", "created_at": "2026-03-04T23:13:40Z", "updated_at": "2026-03-04T23:13:40Z"}
|
||||||
|
{"id": "src-vah", "title": "Study Dataset and IML interface (nisps-core)", "description": "Read dataset.hpp + dataset_impl.hpp (max 100 examples, FIFO/RANDOM forget modes, ReplayMemory), sample.hpp (legacy Sample/TrainingSample), then iml.hpp + iml_impl.hpp (the user-facing API). Document: the two-step save_example() hardware workflow vs direct add_example() API, Mode::Inference vs Mode::Training state machine, how training is triggered on mode switch, weight randomisation + restoration pattern, input clamping, and the logger callback system. Compare with the original IMLInterface.hpp to understand what was extracted vs what's firmware-specific.", "status": "open", "priority": 1, "issue_type": "task", "created_by": "w1n5t0n", "owner": "w1n5t0n@lnfinitemonkeys.org", "created_at": "2026-03-04T23:13:40Z", "updated_at": "2026-03-04T23:13:40Z"}
|
||||||
|
{"id": "src-0tr", "title": "Study the original IMLInterface.hpp and InterfaceRL integration", "description": "Read IMLInterface.hpp (276 lines) \u2014 the firmware-side ML interface inheriting InterfaceBase. Document: MLP architecture [n_inputs+bias, 10, 10, 14, n_outputs], training params (1000 iter, LR=1.0, convergence=0.00001), the INFERENCE_MODE/TRAINING_MODE state machine, STORE_VALUE_MODE vs STORE_POSITION_MODE for the two-step example capture, MLRandomise_/MLTraining_ flow, SendParamsToQueue for cross-core output delivery. Then study how InterfaceRL (from memllib submodule) wraps this with RL reward, INPUT_MODES (JOYSTICK, MACHINE_LISTENING, JOYSTICK_AND_MACHINE_LISTENING), and joystick/MIDI binding.", "status": "open", "priority": 1, "issue_type": "task", "created_by": "w1n5t0n", "owner": "w1n5t0n@lnfinitemonkeys.org", "created_at": "2026-03-04T23:13:43Z", "updated_at": "2026-03-04T23:13:43Z"}
|
||||||
|
{"id": "src-6jj", "title": "Study dual-core architecture and inter-core communication", "description": "Read MEMLNaut-NISPS.ino (230 lines) focusing on the dual-core RP2040 design. Document: Core 0 responsibilities (UI loop, ML inference, hardware polling at 5ms), Core 1 responsibilities (audio processing, MIDI polling at 10ms), startup synchronization (4 volatile bool flags + MEMORY_BARRIER/WRITE_VOLATILE/READ_VOLATILE), the audio_block_callback signature and execution context, ROSC entropy seed generation, PERF timing macros, and the compile-time mode selection via #define MEMLNAUT_MODE_TYPE. Map the three inter-core communication patterns: (1) volatile flags + memory barriers, (2) RP2040 queue_t for MIDI/control, (3) SharedBuffer<T,N> for analysis params.", "status": "open", "priority": 1, "issue_type": "task", "created_by": "w1n5t0n", "owner": "w1n5t0n@lnfinitemonkeys.org", "created_at": "2026-03-04T23:13:47Z", "updated_at": "2026-03-04T23:13:47Z"}
|
||||||
|
{"id": "src-mw5", "title": "Study the Mode system and MEMLNautMode C++20 concept", "description": "Read modes/MEMLNautMode.hpp (concept definition) and all four mode implementations: MEMLNautModePAFSynth (3 inputs, PAF synth), MEMLNautModeChannelStrip (4 inputs, channel strip), MEMLNautModeXIASRI (6 audio-feature inputs, reverb/FX), MEMLNautModeSoundAnalysisMIDI (9 inputs, audio+joystick, MIDI output). Document: how the concept enforces the interface without inheritance (duck typing), kN_InputParams per mode, how each mode configures InterfaceRL (input mode, dimensionality), MIDI setup patterns, display view creation, and the SharedBuffer pattern used by analysis modes for cross-core audio feature transport.", "status": "open", "priority": 1, "issue_type": "task", "created_by": "w1n5t0n", "owner": "w1n5t0n@lnfinitemonkeys.org", "created_at": "2026-03-04T23:13:54Z", "updated_at": "2026-03-04T23:13:54Z"}
|
||||||
|
{"id": "src-eie", "title": "Study PAFSynthAudioApp and PAF voice spaces", "description": "Read PAFSynthAudioApp.hpp (358 lines). Document: 4 maxiPAFOperator instances, oscillator chaining (geometric detuning: freq0 \u2192 freq1=freq0*detune1 \u2192 freq2=freq1*detune2 \u2192 freq3=freq2*detune3), effects chain (ring mod \u2192 sine shaper \u2192 delay \u2192 tanh soft-clip), MIDI note queue handling via queue_t, and the 7 voice spaces (VoiceSpace1/2/Perc/Single1/QuadDetune/QuadOct/QuadDist). For each voice space macro, document which PAF operators are active, key parameter routings, and sonic character. Note the VoiceSpace<NPARAMS> struct (name + lambda) and VoiceSpaceFn type alias.", "status": "open", "priority": 1, "issue_type": "task", "created_by": "w1n5t0n", "owner": "w1n5t0n@lnfinitemonkeys.org", "created_at": "2026-03-04T23:14:00Z", "updated_at": "2026-03-04T23:14:00Z"}
|
||||||
|
{"id": "src-v1r", "title": "Study ChannelStripAudioApp and console emulation voice spaces", "description": "Read ChannelStripAudioApp.hpp (641 lines). Document: the full signal chain (pre-gain tanh \u2192 HP+LP input filters \u2192 2x peak + low/high shelf EQ \u2192 dynamics \u2192 post-gain), stereo processing, the inline maxiDynamicsLite implementation (~290 lines: compander with knee, RMS/peak detection, attack/release ADSRLite envelopes, look-ahead delay, bezier knee curves), maxiRingBufLite, controlMessages enum for bypass toggles via queue_t. Then study voicespaces/ChannelStrip/basic.hpp (179 lines): 6 console emulation macros (Neve 1066, SSL 4K/9K, Male/Female Vox, Neve 80). Note the Neve 80 stepped-switch emulation using constexpr arrays + index math.", "status": "open", "priority": 1, "issue_type": "task", "created_by": "w1n5t0n", "owner": "w1n5t0n@lnfinitemonkeys.org", "created_at": "2026-03-04T23:14:06Z", "updated_at": "2026-03-04T23:14:06Z"}
|
||||||
|
{"id": "src-767", "title": "Study XIASRIAudioApp and XiasriAnalysis audio feature extraction", "description": "Read XIASRIAudioApp.hpp (234 lines): reverb/FX engine with 4 delay lines, 6 all-pass filters, 2 comb filters, DC blocker, daisysp PitchShifter, OnePoleSmoother for parameter smoothing. Then read XiasriAnalysis.hpp/.cpp (62+170 lines): the 6-parameter feature extraction pipeline (pitch via zero-crossing + MedianFilter + CircularBuffer, aperiodicity as relative MAD, energy via envelope follower + log scaling, attack as energy derivative, brightness as HP/LP band ratio). Document the per-sample processing pipeline, normalization ranges, and how features flow from Core 1 analysis through SharedBuffer to Core 0 ML input.", "status": "open", "priority": 1, "issue_type": "task", "created_by": "w1n5t0n", "owner": "w1n5t0n@lnfinitemonkeys.org", "created_at": "2026-03-04T23:14:12Z", "updated_at": "2026-03-04T23:14:12Z"}
|
||||||
|
{"id": "src-sas", "title": "Study the playground JS port and verify ML fidelity", "description": "Read all playground/js/nisps/ files (iml.js, mlp.js, layer.js, node.js, dataset.js) and compare line-by-line against nisps-core C++ headers. Document any differences in: activation functions, forward pass, backprop, weight init, moveWeights noise generation, training convergence, dataset management. Then read app.js (446 lines) for the two learning modes (examples vs RL), the RL reward loop (thumbsUp saves+trains+decays noise, thumbsDown amplifies noise+moveWeights), gamepad support, localStorage persistence, presets. Read the UI files (visualizer.js flow-field, joystick.js touch handling, controls.js, param-display.js) to understand the full demo architecture.", "status": "open", "priority": 1, "issue_type": "task", "created_by": "w1n5t0n", "owner": "w1n5t0n@lnfinitemonkeys.org", "created_at": "2026-03-04T23:14:17Z", "updated_at": "2026-03-04T23:14:17Z"}
|
||||||
|
{"id": "src-5xo", "title": "Study memllib and memlp submodule interfaces", "description": "Check out the submodules (git submodule update --init --recursive) and study the key interfaces that the firmware depends on. Focus on: AudioAppBase<NPARAMS> (Setup/Process/ProcessParams/SendParamsToQueue), AudioDriver (GetSampleRate, SetBlockCallback), InterfaceBase (setup, SendParamsToQueue), InterfaceRL (full RL wrapper: bindInterface, bindMIDI, readAnalysisParameters, INPUT_MODES, rlStatsView), MEMLNaut singleton (hardware abstraction), SharedBuffer<T,N> (lock-free inter-core), stereosample_t, memory placement macros (AUDIO_MEM, AUDIO_FUNC, APP_SRAM), timer macros (PERIODIC_RUN_US), and the embedded MLP.h/Dataset.hpp from memlp. Document what each provides and how nisps-core diverges from memlp.", "status": "open", "priority": 1, "issue_type": "task", "created_by": "w1n5t0n", "owner": "w1n5t0n@lnfinitemonkeys.org", "created_at": "2026-03-04T23:14:24Z", "updated_at": "2026-03-04T23:14:24Z"}
|
||||||
|
{"id": "src-kqa", "title": "Write comprehensive architecture notes to memory", "description": "After completing all study issues, synthesize findings into structured memory files. Create: (1) architecture.md \u2014 system overview, dual-core design, data flow diagrams (input \u2192 ML \u2192 voice space \u2192 audio), inter-core patterns. (2) ml-engine.md \u2014 MLP architecture, training modes, RL vs supervised, weight management. (3) audio-dsp.md \u2014 all audio apps, voice spaces, signal chains, feature extraction. (4) playground-port.md \u2014 JS/C++ correspondence, any divergences found. (5) Update MEMORY.md with index and key insights. Goal: these notes should be detailed enough to rewrite the system in any architecture.", "status": "open", "priority": 2, "issue_type": "task", "created_by": "w1n5t0n", "owner": "w1n5t0n@lnfinitemonkeys.org", "created_at": "2026-03-04T23:14:29Z", "updated_at": "2026-03-04T23:14:29Z"}
|
||||||
Loading…
Reference in a new issue