Repository navigation
v2.3.2 — iOS: a paused app sleeps in the background
An iOS-only follow-up to 2.3.1. A paused Orphic DJ no longer keeps the audio hardware busy in the background, so iOS can suspend it and stop the battery drain. Android stays on 2.3.1; this tag carries no Android release.
Background battery (iOS)
- The audio host parks after 30 s paused in the background. Pausing used to only mute, so
AURemoteIOkept rendering the full graph on silence andaudiomxdmixed it, about 20% of a core on an iPad Air 4, and iOS never suspended the app.AudioHostSuspendPolicynow parks the host (stopsAVAudioEngine, releases the session, keeps the engine and graph) once the app has been paused or stopped in the background for 30 s, retrying every 30 s. Play, the lock screen, the widget, speech and foregrounding bring it back through the watchdog's repair path, and foregrounding leaves other apps' music alone. - A parked host stays parked through route changes and interruptions. The watchdog stands down while parked, and an interruption ending no longer reactivates the session for silence.
- UI-only polls pause while backgrounded.
IosAppLifecycledrivessetUiVisiblefrom the app's foreground state, so the meter, Pulsar viz, turntable, spectrum and scope polls stop for nobody, matching Android.
Toolchain
- Kotlin 2.4.20, Compose Multiplatform 1.12.1, Metro 1.4.5, Gradle 9.8.0, plus patch bumps across the catalog.
Tests
- New
AudioHostSuspendPolicyTestandDspSynthEngineParkedHostTestcover the park and resume rules.
Artifacts
iOS build 1026 goes to App Store review. No Android bundle was published for this tag.
Full changelog
v2.3.1...v2.3.2 — iOS background battery fix and toolchain bump. The range also carries AI-edition and Orpheus-app commits that do not ship in the App Store build.