.changelog/3353.md
MIDIResponder protocol for emulator cores to receive/send MIDI messages (Note On/Off, CC, Program Change, Pitch Bend, Poly/Channel Aftertouch). System Common/Real-time (Clock, Start, Stop, Continue) and SysEx are defined as optional protocol methods but not yet dispatched by MIDIDeviceManager — will be implemented in a future PR. Modelled on the existing KeyboardResponder and MouseResponder patterns.SystemIdentifier.supportsMIDI queries the registry.#if canImport(CoreMIDI)) that discovers connected MIDI devices, routes incoming UMP packets to the active MIDIResponder core, filters events by selected source, and exposes @Published TX/RX activity state for status lights.RetroMenuView+MIDIPicker.swift) showing input source and output destination pickers, live RX (green) / TX (orange) activity indicator lights, and an "Auto-detect input device" button that listens for the first incoming MIDI message to identify the device automatically.PVEmulatorCore+MIDI — supportsMIDI / requiresMIDI properties forwarding to MIDIResponder on the bridge; attachMIDIResponder() / detachMIDIResponder() for lifecycle management.