memlnaut-nisps/nisps/modes
w1n5t0n 429da1d1e4 feat(nisps/modes): all 8 concrete mode bindings (meml-beb)
One header per mode, each ~50-130 LOC built atop ModeBase:

  - `paf_synth.hpp` (4 inputs → 33 outputs, 7 voice spaces, note_on/off)
  - `channel_strip.hpp` (4 → 24, 6 voice spaces)
  - `xiasri.hpp` (4 → 24, 1 'Direct' voice space)
  - `verb_fx.hpp` (4 → 47, 12 voice spaces)
  - `memlcelium.hpp` (4 → 56, dual synth + 2-track sequencer; set_playing/update_bpm)
  - `breakor.hpp` (4 → 56, 8-track ratio sequencer; pumps engine NoteOn/Off/Clock
    events into ControlEvent ring buffer)
  - `elysiamorf.hpp` (4 → 40, 8-track FM-pair MIDI-CC sequencer; pumps CC events)
  - `sound_analysis_midi.hpp` (10 → 8; owns AnalysisEngine for input feature
    extraction PLUS NoOpEngine 'thru' for audio passthrough; ML outputs
    converted to MIDI CC events via on_post_inference; opts out of
    output→engine routing via ModeRoutesOutputsToEngine specialisation)

Every mode satisfies `nisps::Mode` (verified via `static_assert` in each
header). Schema `output_size` is verified against engine `param_count()`
at compile time inside ModeBase.

All hardware-specific glue (MEMLNaut::Instance, pico/util/queue, MIDIInOut,
display widgets, button callbacks) is intentionally absent — that lives in
firmware/glue and playground/src/modes per architecture.md §4.3.
2026-04-29 16:26:49 +03:00
..
generated fix: wire generated C++ schemas to nisps::Curve from core/math.hpp 2026-04-29 15:43:42 +03:00
base.hpp feat(nisps/modes): scaffolding for platform-agnostic mode layer (meml-beb) 2026-04-29 16:26:33 +03:00
breakor.hpp feat(nisps/modes): all 8 concrete mode bindings (meml-beb) 2026-04-29 16:26:49 +03:00
channel_strip.hpp feat(nisps/modes): all 8 concrete mode bindings (meml-beb) 2026-04-29 16:26:49 +03:00
elysiamorf.hpp feat(nisps/modes): all 8 concrete mode bindings (meml-beb) 2026-04-29 16:26:49 +03:00
memlcelium.hpp feat(nisps/modes): all 8 concrete mode bindings (meml-beb) 2026-04-29 16:26:49 +03:00
paf_synth.hpp feat(nisps/modes): all 8 concrete mode bindings (meml-beb) 2026-04-29 16:26:49 +03:00
sound_analysis_midi.hpp feat(nisps/modes): all 8 concrete mode bindings (meml-beb) 2026-04-29 16:26:49 +03:00
verb_fx.hpp feat(nisps/modes): all 8 concrete mode bindings (meml-beb) 2026-04-29 16:26:49 +03:00
voice_space.hpp feat(nisps/modes): scaffolding for platform-agnostic mode layer (meml-beb) 2026-04-29 16:26:33 +03:00
xiasri.hpp feat(nisps/modes): all 8 concrete mode bindings (meml-beb) 2026-04-29 16:26:49 +03:00