# OpenSpec Change: enterprise-react-audio-midi - **Change ID**: enterprise-react-audio-midi - **Package**: `@suaveplan/react-audio` - **Category**: react - **Target path**: `packages/react/react-audio` - **Status**: PROPOSED — Phase 3 of 3 - **Date**: 2026-05-19 - **Spec delta**: `./specs/react-audio/spec.md` > Phase 3 of the decomposed `enterprise-react-audio` rollout. **Blocked** on Phases 1 and 2 landing first. Adds the MIDI learn-mode panel + `useMidiController` hook to the React surface. ## Summary Ship `` and `useMidiController(controllerId)`. The component reads connected controllers from the provider's `MidiControllerRegistry` (sourced via `@suaveplan/audio-controllers`) and exposes a learn-mode UI: user selects a target parameter, presses a control on the hardware, and the panel calls `bindParameter(plugin, paramId, capturedSource, { smoothingMs })`. Bindings persist via the provider's preset store and re-bind on next mount. This is the smallest of the three phases (1 hook + 1 component + persistence wiring + a11y for the learn-flow). Spec delta has one requirement (MidiControllerSetup learn-mode panel). ## Out of scope - Provider/hook foundation (Phase 1). - Generic component library + presets + Storybook gate (Phase 2). ## Impact After Phase 3 archives, the `@suaveplan/react-audio` package is **complete** — STATUS row flips from `–` to ✅ with the full description of all three phases.