MIDI (and the MIDI clock) were started in onStart and stopped in onStop, so turning the screen off — which drives the Activity to onStop — closed the MIDI ports and dropped controller input. Move their lifecycle to onCreate/onDestroy so input persists for the Activity's whole lifetime; onStop keeps only the project autosave. The audio engine already runs a continuous output stream via the started PlaybackService, which keeps the process alive (verified at PERSISTENT_SERVICE_ADJ when backgrounded) to receive events with the screen off. USB MIDI needs no runtime permission, so it works unconditionally. Trade-off: the controller stays claimed by the app while backgrounded, and is released only when the Activity is torn down (task removed / finishing). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
5.1 KiB
5.1 KiB