disting-nt-cpp-plugin-writer
Installation
SKILL.md
The current verified baseline is API v13: 64 logical buses (12 input, 8 output, 44 aux). Pin the distingNT_API submodule and verify the target firmware/API from official Expert Sleepers sources before each release; do not assume this baseline will remain current.
<working_method>
- Inspect the real repository before designing: current branch/status, API submodule commit, build targets, tests, release workflow, docs, and existing parameter indices.
- Define behavior as observable contracts. For instruments, specify voice ownership, allocation/stealing, gate thresholds, pitch conversion, retrigger behavior, sustain/panic handling, and reconfiguration behavior before changing DSP.
- Keep the public control surface small. Expose dedicated inputs only when a signal is inherently audio-rate or per-voice. Prefer the disting NT mapping system for ordinary modulation rather than adding redundant CV input parameters.
- Implement with fixed memory and bounded audio-thread work. Avoid allocation, blocking I/O, logging, and unbounded scans in
step(). - Add native behavioral tests while implementing. Exercise state transitions and discontinuities, not only steady-state audio.
- Update player documentation in the same development slice as the behavior it describes.
- Before a release, run the fact-check, automated verification, ARM inspection, and release checklist in production-workflow.md.
- Treat emulator/native checks, CI, and physical disting NT acceptance as separate evidence. Never report one as proof of another. </working_method>